commit 1431fce67f75e5f0acaa77f508502a00603177de (HEAD, refs/remotes/origin/master) Author: Eli Zaretskii Date: Fri Dec 3 10:02:46 2021 +0200 Revert "Support display of non-ASCII characters with aligned columns" This reverts commit 608267c71e11da9c757c269a5e22e62ef04d0bfe. diff --git a/src/xdisp.c b/src/xdisp.c index 80c8457795..9f93799783 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -28812,21 +28812,6 @@ normal_char_height (struct font *font, int c) return ascent + descent; } -/* Return the "standard" pixel width of a character from FACE's font, - if the font is fixed-pitch, zero otherwise. */ -static int -get_normal_width (struct face *face) -{ - struct font *ascii_font = face->ascii_face->font; - /* Heuristics: fixed-pitch fonts have the value of MAX-WIDTH not - much larger than AVERAGE-WIDTH. */ - bool fixed_pitch = - ascii_font->average_width == ascii_font->space_width - && ascii_font->average_width != 0 - && ascii_font->max_width < 3 * ascii_font->average_width; - return fixed_pitch ? ascii_font->space_width : 0; -} - /* EXPORT for RIF: Set *LEFT and *RIGHT to the left and right overhang of GLYPH on frame F. Overhangs of glyphs other than type CHAR_GLYPH are @@ -30924,17 +30909,6 @@ gui_produce_glyphs (struct it *it) it->phys_ascent = pcm->ascent + boff; it->phys_descent = pcm->descent - boff; it->pixel_width = pcm->width; - if (align_columns_display) - { - int unit_width = get_normal_width (face); - if (unit_width > 0) - { - int ncolumns = - (it->pixel_width - 1 + unit_width) / unit_width; - - it->pixel_width = ncolumns * unit_width; - } - } /* Don't use font-global values for ascent and descent if they result in an exceedingly large line height. */ if (it->override_ascent < 0) @@ -31512,17 +31486,6 @@ gui_produce_glyphs (struct it *it) it->glyph_row->contains_overlapping_glyphs_p = true; it->pixel_width = cmp->pixel_width; - if (align_columns_display) - { - int unit_width = get_normal_width (face); - if (unit_width > 0) - { - int ncolumns = - (it->pixel_width - 1 + unit_width) / unit_width; - - it->pixel_width = ncolumns * unit_width; - } - } it->ascent = it->phys_ascent = cmp->ascent; it->descent = it->phys_descent = cmp->descent; IT_APPLY_FACE_BOX(it, face); @@ -31568,17 +31531,6 @@ gui_produce_glyphs (struct it *it) it->glyph_row->contains_overlapping_glyphs_p = true; it->ascent = it->phys_ascent = metrics.ascent; it->descent = it->phys_descent = metrics.descent; - if (align_columns_display) - { - int unit_width = get_normal_width (face); - if (unit_width > 0) - { - int ncolumns = - (it->pixel_width - 1 + unit_width) / unit_width; - - it->pixel_width = ncolumns * unit_width; - } - } } IT_APPLY_FACE_BOX(it, face); @@ -35655,15 +35607,6 @@ variable are ignored and the default 0.25 is used instead. */); Value is a number or a cons (WIDTH-DPI . HEIGHT-DPI). */); Vdisplay_pixels_per_inch = make_float (72.0); - DEFVAR_BOOL ("align-columns-display", align_columns_display, - doc: /* Whether to align columns on GUI frames. -If this is non-nil characters displayed on GUI frames will be -aligned to produce straight columns. This is achieved by -enlarging the pixel width of characters to an integral -multiple of pixels taken by ASCII characters of the same face. -This affects only fixed-pitch fonts. */); - align_columns_display = false; - #ifdef GLYPH_DEBUG DEFVAR_INT ("debug-end-pos", debug_end_pos, doc: /* Don't ask. */); #endif commit ba063f8141e6bdbd3865ff9af1aa6b390b5b05fe Author: Po Lu Date: Fri Dec 3 14:31:20 2021 +0800 Send scroll stop events to xwidgets when built with XInput 2 * src/xwidget.c (xwidget_scroll): Set xg_event->scroll.is_stop when appropriate. diff --git a/src/xwidget.c b/src/xwidget.c index a5b96d0110..9b9f364ce4 100644 --- a/src/xwidget.c +++ b/src/xwidget.c @@ -1098,6 +1098,9 @@ xwidget_scroll (struct xwidget_view *view, double x, double y, xg_event->scroll.delta_y = dy; xg_event->scroll.device = find_suitable_pointer (view->frame); + if (!(fabs (dx) > 0) || !(fabs (dy) > 0)) + xg_event->scroll.is_stop = TRUE; + g_object_ref (xg_event->any.window); gtk_main_do_event (xg_event); commit 1afa295aed81357fddf9694bfe68ed0e6d159a2d Author: Po Lu Date: Fri Dec 3 13:55:39 2021 +0800 Improve velocity calculation in momentum scrolling * lisp/pixel-scroll.el (pixel-scroll-precision-momentum-factor): Remove option. (pixel-scroll-precision-initial-velocity-factor) (pixel-scroll-precision-momentum-min-velocity): New user options. (pixel-scroll-accumulate-velocity): Clear velocity ring if sign is different. (pixel-scroll-calculate-velocity): Use current time. (pixel-scroll-start-momentum): Use better algorithm. diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el index 3c764ff65a..1c2d95613e 100644 --- a/lisp/pixel-scroll.el +++ b/lisp/pixel-scroll.el @@ -121,8 +121,14 @@ This is only effective if supported by your mouse or touchpad." :type 'float :version "29.1") -(defcustom pixel-scroll-precision-momentum-factor 0.95 - "Factor by which to reduce scroll velocity on each momentum scroll" +(defcustom pixel-scroll-precision-momentum-min-velocity 10.0 + "The minimum scrolled pixels per second before momentum scrolling starts." + :group 'mouse + :type 'float + :version "29.1") + +(defcustom pixel-scroll-precision-initial-velocity-factor 0.25 + "Factor applied to the initial velocity before momentum scrolling begins." :group 'mouse :type 'float :version "29.1") @@ -524,8 +530,13 @@ It is a vector of the form [ VELOCITY TIME ]." (defun pixel-scroll-accumulate-velocity (delta) "Accumulate DELTA into the current window's kinetic scroll state." (let* ((state (pixel-scroll-kinetic-state)) + (ring (aref state 0)) (time (aref state 1))) - (when (and time (> (- (float-time) time) 0.5)) + (when (or (and time (> (- (float-time) time) 0.5)) + (and (not (ring-empty-p ring)) + (not (eq (< delta 0) + (< (cdr (ring-ref ring 0)) + 0))))) (aset state 0 (make-ring 10))) (ring-insert (aref state 0) (cons (aset state 1 (float-time)) @@ -538,8 +549,7 @@ It is a vector of the form [ VELOCITY TIME ]." (total 0)) (dolist (tem elts) (setq total (+ total (cdr tem)))) - (/ total (* (- (caar elts) - (caar (last elts))) + (/ total (* (- (float-time) (caar elts)) 100)))) (defun pixel-scroll-start-momentum (event) @@ -555,26 +565,40 @@ It is a vector of the form [ VELOCITY TIME ]." (while-no-input (unwind-protect (progn (aset state 0 (pixel-scroll-calculate-velocity state)) - (let ((velocity (/ (aref state 0) 3)) - (time-spent 0)) - (if (> velocity 0) - (while (and (> velocity 0.2) - (<= time-spent pixel-scroll-precision-momentum-seconds)) - (pixel-scroll-precision-scroll-up (ceiling velocity)) - (setq velocity (* velocity pixel-scroll-precision-momentum-factor)) - (redisplay t) - (sit-for pixel-scroll-precision-momentum-tick) - (setq time-spent (+ time-spent - pixel-scroll-precision-momentum-tick)))) - (while (and (< velocity -0.4) - (<= time-spent - pixel-scroll-precision-momentum-seconds)) - (pixel-scroll-precision-scroll-down (floor (abs velocity))) - (setq velocity (* velocity pixel-scroll-precision-momentum-factor)) - (redisplay t) - (sit-for pixel-scroll-precision-momentum-tick) - (setq time-spent (+ time-spent - pixel-scroll-precision-momentum-tick))))) + (when (> (abs (aref state 0)) + pixel-scroll-precision-momentum-min-velocity) + (let* ((velocity (* (aref state 0) + pixel-scroll-precision-initial-velocity-factor)) + (original-velocity velocity) + (time-spent 0)) + (if (> velocity 0) + (while (and (> velocity 0) + (<= time-spent + pixel-scroll-precision-momentum-seconds)) + (when (> (round velocity) 0) + (pixel-scroll-precision-scroll-up (round velocity))) + (setq velocity (- velocity + (/ original-velocity + (/ pixel-scroll-precision-momentum-seconds + pixel-scroll-precision-momentum-tick)))) + (redisplay t) + (sit-for pixel-scroll-precision-momentum-tick) + (setq time-spent (+ time-spent + pixel-scroll-precision-momentum-tick)))) + (while (and (< velocity 0) + (<= time-spent + pixel-scroll-precision-momentum-seconds)) + (when (> (round (abs velocity)) 0) + (pixel-scroll-precision-scroll-down (round + (abs velocity)))) + (setq velocity (+ velocity + (/ (abs original-velocity) + (/ pixel-scroll-precision-momentum-seconds + pixel-scroll-precision-momentum-tick)))) + (redisplay t) + (sit-for pixel-scroll-precision-momentum-tick) + (setq time-spent (+ time-spent + pixel-scroll-precision-momentum-tick)))))) (aset state 0 (make-ring 10)) (aset state 1 nil)))))))) commit c66eb524537f98667507024e5f21e0b24038c964 Merge: 67191f7eee 9c222b9c1a Author: Stefan Kangas Date: Fri Dec 3 06:30:26 2021 +0100 Merge from origin/emacs-28 9c222b9c1a Port to C compilers that lack size-0 arrays fed35a8951 Port emacsclient to Solaris 10 f35d6a9c73 * CONTRIBUTE: Improve commit message instructions e0ee1d003a Work around IBM XL C compiler bug 6b99b6eb8b * admin/make-tarball.txt: Various clarifications. bbf4140091 * admin/diff-tar-files: Don't assume .tar.gz. 0a50ad11db * lisp/tab-bar.el (tab-bar-close-other-tabs): Fix regression. commit 9c222b9c1a7f91497a37567b4d7de3a511fff069 (refs/remotes/origin/emacs-28) Author: Paul Eggert Date: Thu Dec 2 19:01:33 2021 -0800 Port to C compilers that lack size-0 arrays The C standard does not allow size-zero arrays, so redo struct Lisp_Subr to not use size-zero arrays when native compilation is not being used. Formerly, the code was using size-zero arrays (a GNU C extension) to avoid using memory unnecessarily when HAVE_NATIVE_COMP is not defined. Replace this hack with the more-traditional hack of putting the relevant members inside ‘#ifdef HAVE_NATIVE_COMP’. * src/alloc.c (cleanup_vector, mark_object): * src/comp.c (make_subr): * src/data.c (Fsubr_native_lambda_list, Fsubr_native_comp_unit): * src/eval.c (init_eval_once, funcall_lambda): * src/lisp.h (SUBR_NATIVE_COMPILEDP, SUBR_NATIVE_COMPILED_DYNP) (SUBR_TYPE): * src/lread.c (Fload): Conditionally compile with ‘#ifdef HAVE_NATIVE_COMP’ instead of with ‘if (NATIVE_COMP_FLAG)’. Redo members like native_comp_u[0] to be plain native_comp_u. Put all uses of these members inside ‘#ifdef HAVE_NATIVE_COMP’. * src/lisp.h (struct Lisp_Subr): Members native_comp_u, native_c_name, lambda_list, type are now all ifdeffed out if HAVE_NATIVE_COMP is not defined, instead of being size-zero arrays. All uses changed. * src/pdumper.c (dump_subr, dump_cold_native_subr) (dump_do_dump_relocation): * src/comp.h (NATIVE_COMP_FLAG): Remove; no longer needed. diff --git a/src/alloc.c b/src/alloc.c index 0c04d5cde0..e2184d7ba8 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -3152,26 +3152,26 @@ cleanup_vector (struct Lisp_Vector *vector) module_finalize_function (function); } #endif - else if (NATIVE_COMP_FLAG - && PSEUDOVECTOR_TYPEP (&vector->header, PVEC_NATIVE_COMP_UNIT)) +#ifdef HAVE_NATIVE_COMP + else if (PSEUDOVECTOR_TYPEP (&vector->header, PVEC_NATIVE_COMP_UNIT)) { struct Lisp_Native_Comp_Unit *cu = PSEUDOVEC_STRUCT (vector, Lisp_Native_Comp_Unit); unload_comp_unit (cu); } - else if (NATIVE_COMP_FLAG - && PSEUDOVECTOR_TYPEP (&vector->header, PVEC_SUBR)) + else if (PSEUDOVECTOR_TYPEP (&vector->header, PVEC_SUBR)) { struct Lisp_Subr *subr = PSEUDOVEC_STRUCT (vector, Lisp_Subr); - if (!NILP (subr->native_comp_u[0])) + if (!NILP (subr->native_comp_u)) { /* FIXME Alternative and non invasive solution to this cast? */ xfree ((char *)subr->symbol_name); - xfree (subr->native_c_name[0]); + xfree (subr->native_c_name); } } +#endif } /* Reclaim space used by unmarked vectors. */ @@ -6773,15 +6773,17 @@ mark_object (Lisp_Object arg) break; case PVEC_SUBR: +#ifdef HAVE_NATIVE_COMP if (SUBR_NATIVE_COMPILEDP (obj)) { set_vector_marked (ptr); struct Lisp_Subr *subr = XSUBR (obj); mark_object (subr->native_intspec); - mark_object (subr->native_comp_u[0]); - mark_object (subr->lambda_list[0]); - mark_object (subr->type[0]); + mark_object (subr->native_comp_u); + mark_object (subr->lambda_list); + mark_object (subr->type); } +#endif break; case PVEC_FREE: diff --git a/src/comp.c b/src/comp.c index 1381d982aa..43feac6490 100644 --- a/src/comp.c +++ b/src/comp.c @@ -5154,21 +5154,29 @@ make_subr (Lisp_Object symbol_name, Lisp_Object minarg, Lisp_Object maxarg, if (CONSP (minarg)) { /* Dynamic code. */ - x->s.lambda_list[0] = maxarg; +#ifdef HAVE_NATIVE_COMP + x->s.lambda_list = maxarg; +#endif maxarg = XCDR (minarg); minarg = XCAR (minarg); } else - x->s.lambda_list[0] = Qnil; + { +#ifdef HAVE_NATIVE_COMP + x->s.lambda_list = Qnil; +#endif + } x->s.function.a0 = func; x->s.min_args = XFIXNUM (minarg); x->s.max_args = FIXNUMP (maxarg) ? XFIXNUM (maxarg) : MANY; x->s.symbol_name = xstrdup (SSDATA (symbol_name)); x->s.native_intspec = intspec; x->s.doc = XFIXNUM (doc_idx); - x->s.native_comp_u[0] = comp_u; - x->s.native_c_name[0] = xstrdup (SSDATA (c_name)); - x->s.type[0] = type; +#ifdef HAVE_NATIVE_COMP + x->s.native_comp_u = comp_u; + x->s.native_c_name = xstrdup (SSDATA (c_name)); + x->s.type = type; +#endif Lisp_Object tem; XSETSUBR (tem, &x->s); diff --git a/src/comp.h b/src/comp.h index c4af4193d0..96bb52a14b 100644 --- a/src/comp.h +++ b/src/comp.h @@ -20,16 +20,6 @@ along with GNU Emacs. If not, see . */ #ifndef COMP_H #define COMP_H -/* To keep ifdefs under control. */ -enum { - NATIVE_COMP_FLAG = -#ifdef HAVE_NATIVE_COMP - 1 -#else - 0 -#endif -}; - #include struct Lisp_Native_Comp_Unit diff --git a/src/data.c b/src/data.c index 0d3376f090..b2c395831a 100644 --- a/src/data.c +++ b/src/data.c @@ -891,9 +891,11 @@ function or t otherwise. */) { CHECK_SUBR (subr); - return SUBR_NATIVE_COMPILED_DYNP (subr) - ? XSUBR (subr)->lambda_list[0] - : Qt; +#ifdef HAVE_NATIVE_COMP + if (SUBR_NATIVE_COMPILED_DYNP (subr)) + return XSUBR (subr)->lambda_list; +#endif + return Qt; } DEFUN ("subr-type", Fsubr_type, @@ -917,7 +919,7 @@ DEFUN ("subr-native-comp-unit", Fsubr_native_comp_unit, (Lisp_Object subr) { CHECK_SUBR (subr); - return XSUBR (subr)->native_comp_u[0]; + return XSUBR (subr)->native_comp_u; } DEFUN ("native-comp-unit-file", Fnative_comp_unit_file, diff --git a/src/eval.c b/src/eval.c index 0f792b487e..3ac1afc17b 100644 --- a/src/eval.c +++ b/src/eval.c @@ -219,17 +219,14 @@ void init_eval_once (void) { /* Don't forget to update docs (lispref node "Local Variables"). */ - if (!NATIVE_COMP_FLAG) - { - max_specpdl_size = 1800; /* See bug#46818. */ - max_lisp_eval_depth = 800; - } - else - { - /* Original values increased for comp.el. */ - max_specpdl_size = 2500; - max_lisp_eval_depth = 1600; - } +#ifndef HAVE_NATIVE_COMP + max_specpdl_size = 1800; /* See bug#46818. */ + max_lisp_eval_depth = 800; +#else + /* Original values increased for comp.el. */ + max_specpdl_size = 2500; + max_lisp_eval_depth = 1600; +#endif Vrun_hooks = Qnil; pdumper_do_now_and_after_load (init_eval_once_for_pdumper); } @@ -3236,11 +3233,13 @@ funcall_lambda (Lisp_Object fun, ptrdiff_t nargs, else if (MODULE_FUNCTIONP (fun)) return funcall_module (fun, nargs, arg_vector); #endif +#ifdef HAVE_NATIVE_COMP else if (SUBR_NATIVE_COMPILED_DYNP (fun)) { - syms_left = XSUBR (fun)->lambda_list[0]; + syms_left = XSUBR (fun)->lambda_list; lexenv = Qnil; } +#endif else emacs_abort (); diff --git a/src/lisp.h b/src/lisp.h index 480c389a3b..af8a845193 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -2083,10 +2083,12 @@ struct Lisp_Subr Lisp_Object native_intspec; }; EMACS_INT doc; - Lisp_Object native_comp_u[NATIVE_COMP_FLAG]; - char *native_c_name[NATIVE_COMP_FLAG]; - Lisp_Object lambda_list[NATIVE_COMP_FLAG]; - Lisp_Object type[NATIVE_COMP_FLAG]; +#ifdef HAVE_NATIVE_COMP + Lisp_Object native_comp_u; + char *native_c_name; + Lisp_Object lambda_list; + Lisp_Object type; +#endif } GCALIGNED_STRUCT; union Aligned_Lisp_Subr { @@ -4773,19 +4775,19 @@ extern char *emacs_root_dir (void); INLINE bool SUBR_NATIVE_COMPILEDP (Lisp_Object a) { - return SUBRP (a) && !NILP (XSUBR (a)->native_comp_u[0]); + return SUBRP (a) && !NILP (XSUBR (a)->native_comp_u); } INLINE bool SUBR_NATIVE_COMPILED_DYNP (Lisp_Object a) { - return SUBR_NATIVE_COMPILEDP (a) && !NILP (XSUBR (a)->lambda_list[0]); + return SUBR_NATIVE_COMPILEDP (a) && !NILP (XSUBR (a)->lambda_list); } INLINE Lisp_Object SUBR_TYPE (Lisp_Object a) { - return XSUBR (a)->type[0]; + return XSUBR (a)->type; } INLINE struct Lisp_Native_Comp_Unit * diff --git a/src/lread.c b/src/lread.c index b3f9e6ff52..9bb5f66adf 100644 --- a/src/lread.c +++ b/src/lread.c @@ -1271,7 +1271,10 @@ Return t if the file exists and loads successfully. */) || suffix_p (file, MODULES_SECONDARY_SUFFIX) #endif #endif - || (NATIVE_COMP_FLAG && suffix_p (file, NATIVE_ELISP_SUFFIX))) +#ifdef HAVE_NATIVE_COMP + || suffix_p (file, NATIVE_ELISP_SUFFIX) +#endif + ) must_suffix = Qnil; /* Don't insist on adding a suffix if the argument includes a directory name. */ @@ -1351,8 +1354,11 @@ Return t if the file exists and loads successfully. */) bool is_module = false; #endif - bool is_native_elisp = - NATIVE_COMP_FLAG && suffix_p (found, NATIVE_ELISP_SUFFIX) ? true : false; +#ifdef HAVE_NATIVE_COMP + bool is_native_elisp = suffix_p (found, NATIVE_ELISP_SUFFIX); +#else + bool is_native_elisp = false; +#endif /* Check if we're stuck in a recursive load cycle. diff --git a/src/pdumper.c b/src/pdumper.c index a8f8d6fa00..a655759903 100644 --- a/src/pdumper.c +++ b/src/pdumper.c @@ -2859,13 +2859,18 @@ dump_subr (struct dump_context *ctx, const struct Lisp_Subr *subr) struct Lisp_Subr out; dump_object_start (ctx, &out, sizeof (out)); DUMP_FIELD_COPY (&out, subr, header.size); - if (NATIVE_COMP_FLAG && !NILP (subr->native_comp_u[0])) +#ifdef HAVE_NATIVE_COMP + bool native_comp = !NILP (subr->native_comp_u); +#else + bool native_comp = false; +#endif + if (native_comp) out.function.a0 = NULL; else dump_field_emacs_ptr (ctx, &out, subr, &subr->function.a0); DUMP_FIELD_COPY (&out, subr, min_args); DUMP_FIELD_COPY (&out, subr, max_args); - if (NATIVE_COMP_FLAG && !NILP (subr->native_comp_u[0])) + if (native_comp) { dump_field_fixup_later (ctx, &out, subr, &subr->symbol_name); dump_remember_cold_op (ctx, @@ -2879,19 +2884,16 @@ dump_subr (struct dump_context *ctx, const struct Lisp_Subr *subr) dump_field_emacs_ptr (ctx, &out, subr, &subr->intspec); } DUMP_FIELD_COPY (&out, subr, doc); - if (NATIVE_COMP_FLAG) - { - dump_field_lv (ctx, &out, subr, &subr->native_comp_u[0], WEIGHT_NORMAL); - if (!NILP (subr->native_comp_u[0])) - dump_field_fixup_later (ctx, &out, subr, &subr->native_c_name[0]); +#ifdef HAVE_NATIVE_COMP + dump_field_lv (ctx, &out, subr, &subr->native_comp_u, WEIGHT_NORMAL); + if (!NILP (subr->native_comp_u)) + dump_field_fixup_later (ctx, &out, subr, &subr->native_c_name); - dump_field_lv (ctx, &out, subr, &subr->lambda_list[0], WEIGHT_NORMAL); - dump_field_lv (ctx, &out, subr, &subr->type[0], WEIGHT_NORMAL); - } + dump_field_lv (ctx, &out, subr, &subr->lambda_list, WEIGHT_NORMAL); + dump_field_lv (ctx, &out, subr, &subr->type, WEIGHT_NORMAL); +#endif dump_off subr_off = dump_object_finish (ctx, &out, sizeof (out)); - if (NATIVE_COMP_FLAG - && ctx->flags.dump_object_contents - && !NILP (subr->native_comp_u[0])) + if (native_comp && ctx->flags.dump_object_contents) /* We'll do the final addr relocation during VERY_LATE_RELOCS time after the compilation units has been loaded. */ dump_push (&ctx->dump_relocs[VERY_LATE_RELOCS], @@ -3421,9 +3423,9 @@ dump_cold_native_subr (struct dump_context *ctx, Lisp_Object subr) dump_remember_fixup_ptr_raw (ctx, - subr_offset + dump_offsetof (struct Lisp_Subr, native_c_name[0]), + subr_offset + dump_offsetof (struct Lisp_Subr, native_c_name), ctx->offset); - const char *c_name = XSUBR (subr)->native_c_name[0]; + const char *c_name = XSUBR (subr)->native_c_name; dump_write (ctx, c_name, 1 + strlen (c_name)); } #endif @@ -5360,20 +5362,16 @@ dump_do_dump_relocation (const uintptr_t dump_base, } case RELOC_NATIVE_SUBR: { - if (!NATIVE_COMP_FLAG) - /* This cannot happen. */ - emacs_abort (); - /* When resurrecting from a dump given non all the original native compiled subrs may be still around we can't rely on a 'top_level_run' mechanism, we revive them one-by-one here. */ struct Lisp_Subr *subr = dump_ptr (dump_base, reloc_offset); struct Lisp_Native_Comp_Unit *comp_u = - XNATIVE_COMP_UNIT (subr->native_comp_u[0]); + XNATIVE_COMP_UNIT (subr->native_comp_u); if (!comp_u->handle) error ("NULL handle in compilation unit %s", SSDATA (comp_u->file)); - const char *c_name = subr->native_c_name[0]; + const char *c_name = subr->native_c_name; eassert (c_name); void *func = dynlib_sym (comp_u->handle, c_name); if (!func) commit fed35a89517aa4e282273f7e3c75bafd4e698ce4 Author: Paul Eggert Date: Thu Dec 2 18:43:43 2021 -0800 Port emacsclient to Solaris 10 Without this patch, the build fails on Solaris 10 with the diagnostic “Undefined symbol acl_trivial first referenced in file ../lib/libgnu.a(file-has-acl.o)”. * lib-src/Makefile.in (LIB_HAS_ACL): New macro. (emacsclient${EXEEXT}): Link with $(LIB_HAS_ACL). diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in index e6cda73367..f5d9db932a 100644 --- a/lib-src/Makefile.in +++ b/lib-src/Makefile.in @@ -184,6 +184,8 @@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ LIB_GETRANDOM = @LIB_GETRANDOM@ ## Whatever libraries are needed for euidaccess LIB_EACCESS=@LIB_EACCESS@ +## Libraries needed for file_has_acl +LIB_HAS_ACL=@LIB_HAS_ACL@ ## empty or -lwsock2 for MinGW LIB_WSOCK32=@LIB_WSOCK32@ @@ -400,7 +402,7 @@ pop.o: ${srcdir}/pop.c ${srcdir}/pop.h ${srcdir}/../lib/min-max.h $(config_h) emacsclient${EXEEXT}: ${srcdir}/emacsclient.c $(NTLIB) $(config_h) $(AM_V_CCLD)$(CC) ${ALL_CFLAGS} $< \ $(NTLIB) $(LOADLIBES) \ - $(LIB_WSOCK32) $(LIB_EACCESS) $(LIBS_ECLIENT) -o $@ + $(LIB_WSOCK32) $(LIB_EACCESS) $(LIB_HAS_ACL) $(LIBS_ECLIENT) -o $@ emacsclientw${EXEEXT}: ${srcdir}/emacsclient.c $(NTLIB) $(CLIENTRES) $(config_h) $(AM_V_CCLD)$(CC) ${ALL_CFLAGS} $(CLIENTRES) -mwindows $< \ commit f35d6a9c732e575e8f7115a8c2e29536db01636d Author: Karl Fogel Date: Thu Dec 2 20:38:25 2021 -0600 * CONTRIBUTE: Improve commit message instructions diff --git a/CONTRIBUTE b/CONTRIBUTE index 5740004637..7c3421ed75 100644 --- a/CONTRIBUTE +++ b/CONTRIBUTE @@ -185,20 +185,26 @@ ChangeLog file, where they can be corrected. It saves time to get them right the first time, so here are guidelines for formatting them: - Start with a single unindented summary line explaining the change; - do not end this line with a period. If that line starts with a - semicolon and a space "; ", the commit message will be ignored when - generating the ChangeLog file. Use this for minor commits that do - not need separate ChangeLog entries, such as changes in etc/NEWS. + do not end this line with a period. If possible, try to keep the + summary line to 50 characters or fewer; this is for compatibility + with certain Git commands that print that line in width-constrained + contexts. -- After the summary line, there should be an empty line, then - unindented ChangeLog entries. + If the summary line starts with a semicolon and a space "; ", the + commit message will be ignored when generating the ChangeLog file. + Use this for minor commits that do not need separate ChangeLog + entries, such as changes in etc/NEWS. + +- After the summary line, there should be an empty line. + +- Unindented ChangeLog entries normally come next. However, if the + commit couldn't be properly summarized in the brief summary line, + you can put a paragraph (after the empty line and before the + individual ChangeLog entries) that further describes the commit. - Limit lines in commit messages to 78 characters, unless they consist of a single word of at most 140 characters; this is enforced by a - commit hook. It's nicer to limit the summary line to 50 characters; - this isn't enforced. If the change can't be summarized so briefly, - add a paragraph after the empty line and before the individual file - descriptions. + commit hook. - If only a single file is changed, the summary line can be the normal file first line (starting with the asterisk). Then there is no commit e0ee1d003ac84ba32b6c23575ddaeabb932cd6e1 Author: Paul Eggert Date: Thu Dec 2 18:18:39 2021 -0800 Work around IBM XL C compiler bug * src/fileio.c (Fcopy_file): Work around a compiler bug in IBM XL C for AIX, V12.1 (5765-J02, 5725-C72). Without this patch, the compiler incorrectly complains “Initialization between types "int" and "struct timespec" is not allowed” and “Initialization between types "long" and "struct timespec" is not allowed”. diff --git a/src/fileio.c b/src/fileio.c index 3c13d3fe41..7e3bebca9e 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -2386,7 +2386,9 @@ permissions. */) if (!NILP (keep_time)) { - struct timespec ts[] = { get_stat_atime (&st), get_stat_mtime (&st) }; + struct timespec ts[2]; + ts[0] = get_stat_atime (&st); + ts[1] = get_stat_mtime (&st); if (futimens (ofd, ts) != 0) xsignal2 (Qfile_date_error, build_string ("Cannot set file date"), newname); commit 67191f7eee3f2a4e83897c3d820f8c13c629dedb Author: Po Lu Date: Fri Dec 3 10:12:29 2021 +0800 Make momentum scrolling much nicer * lisp/pixel-scroll.el (pixel-scroll-precision-momentum-tick): Set default value to 0.01. (pixel-scroll-precision-momentum-seconds): New user option. (pixel-scroll-start-momentum): Improvements to momentum algorithm. diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el index 00d9bf684e..3c764ff65a 100644 --- a/lisp/pixel-scroll.el +++ b/lisp/pixel-scroll.el @@ -109,12 +109,18 @@ This is only effective if supported by your mouse or touchpad." :type 'boolean :version "29.1") -(defcustom pixel-scroll-precision-momentum-tick 0.16 +(defcustom pixel-scroll-precision-momentum-tick 0.01 "Number of seconds between each momentum scroll." :group 'mouse :type 'float :version "29.1") +(defcustom pixel-scroll-precision-momentum-seconds 1.75 + "The maximum duration in seconds of momentum scrolling." + :group 'mouse + :type 'float + :version "29.1") + (defcustom pixel-scroll-precision-momentum-factor 0.95 "Factor by which to reduce scroll velocity on each momentum scroll" :group 'mouse @@ -546,26 +552,31 @@ It is a vector of the form [ VELOCITY TIME ]." (setq state (pixel-scroll-kinetic-state)) (when (and (aref state 1) (listp (aref state 0))) - (unwind-protect (progn - (aset state 0 - (/ (pixel-scroll-calculate-velocity state) 2)) - (let ((velocity (* (aref state 0) - pixel-scroll-precision-momentum-tick))) - (if (> velocity 0) - (while (> velocity 1) - (pixel-scroll-precision-scroll-up (round velocity)) - (setq velocity (* velocity - pixel-scroll-precision-momentum-factor)) - (redisplay t) - (sit-for pixel-scroll-precision-momentum-tick))) - (while (< velocity -1) - (pixel-scroll-precision-scroll-down (round (abs velocity))) - (setq velocity (* velocity - pixel-scroll-precision-momentum-factor)) - (redisplay t) - (sit-for pixel-scroll-precision-momentum-tick)))) - (aset state 0 (make-ring 10)) - (aset state 1 nil))))))) + (while-no-input + (unwind-protect (progn + (aset state 0 (pixel-scroll-calculate-velocity state)) + (let ((velocity (/ (aref state 0) 3)) + (time-spent 0)) + (if (> velocity 0) + (while (and (> velocity 0.2) + (<= time-spent pixel-scroll-precision-momentum-seconds)) + (pixel-scroll-precision-scroll-up (ceiling velocity)) + (setq velocity (* velocity pixel-scroll-precision-momentum-factor)) + (redisplay t) + (sit-for pixel-scroll-precision-momentum-tick) + (setq time-spent (+ time-spent + pixel-scroll-precision-momentum-tick)))) + (while (and (< velocity -0.4) + (<= time-spent + pixel-scroll-precision-momentum-seconds)) + (pixel-scroll-precision-scroll-down (floor (abs velocity))) + (setq velocity (* velocity pixel-scroll-precision-momentum-factor)) + (redisplay t) + (sit-for pixel-scroll-precision-momentum-tick) + (setq time-spent (+ time-spent + pixel-scroll-precision-momentum-tick))))) + (aset state 0 (make-ring 10)) + (aset state 1 nil)))))))) ;;;###autoload (define-minor-mode pixel-scroll-precision-mode commit ef2c386829418a2c279ddf0ed217ee725bebed2f Author: Po Lu Date: Fri Dec 3 08:59:24 2021 +0800 * lisp/pixel-scroll.el (pixel-scroll-start-momentum): Fix algorithm. diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el index a45a4d41c3..00d9bf684e 100644 --- a/lisp/pixel-scroll.el +++ b/lisp/pixel-scroll.el @@ -549,7 +549,8 @@ It is a vector of the form [ VELOCITY TIME ]." (unwind-protect (progn (aset state 0 (/ (pixel-scroll-calculate-velocity state) 2)) - (let ((velocity (aref state 0))) + (let ((velocity (* (aref state 0) + pixel-scroll-precision-momentum-tick))) (if (> velocity 0) (while (> velocity 1) (pixel-scroll-precision-scroll-up (round velocity)) commit 6b99b6eb8bc5ee5b7ee8c17a636c9ba154702b5c Author: Stefan Kangas Date: Thu Dec 2 23:57:23 2021 +0100 * admin/make-tarball.txt: Various clarifications. diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt index 22276080c5..872cb00ca2 100644 --- a/admin/make-tarball.txt +++ b/admin/make-tarball.txt @@ -5,7 +5,7 @@ Instructions to create pretest or release tarballs. -*- coding: utf-8 -*- Steps to take before starting on the first pretest in any release sequence: -0. The release branch (e.g. emacs-26) should already have been made +0. The release branch (e.g. emacs-28) should already have been made and you should use it for all that follows. Diffs from this branch should be going to the emacs-diffs mailing list. @@ -14,12 +14,13 @@ Steps to take before starting on the first pretest in any release sequence: 2. Consider increasing the value of the variable 'customize-changed-options-previous-release' in cus-edit.el to - refer to a newer version of Emacs. (This is probably needed only - when preparing the first pretest for a major Emacs release.) + refer to a newer version of Emacs. (This is now done when cutting + the release branch, see admin/release-branch.txt.) Commit cus-edit.el if changed. 3. Remove any old pretests from https://alpha.gnu.org/gnu/emacs/pretest. You can use 'gnupload --delete' (see below for more gnupload details). + (We currently don't bother with this.) General steps (for each step, check for possible errors): @@ -89,7 +90,7 @@ General steps (for each step, check for possible errors): admin/release-process must be completed. Set the version number to that of the actual release (commit in - one, as described above). Pick a date about a week from now when + one, as described above). Pick a date about a week from now when you intend to make the release. Use M-x add-release-logs to add entries to etc/HISTORY and the ChangeLog file. It's best not to commit these files until the release is actually made. Merge the @@ -163,8 +164,15 @@ General steps (for each step, check for possible errors): If this is the first pretest of a major release, just comparing with the previous release may overlook many new files. You can try - something like 'find . | sort' in a clean repository, and compare the - results against the new tar contents. + something like 'find . | sort' in a clean repository, and + compare the results against the new tar contents. Another + alternative is using something like: + + tar cf - emacs-NEW | tar t -C /tmp | grep -Ev "\.(o|d)$" | sort + + Where emacs-NEW is the directory containing your clean repository. + The output of this command might be easier to compare to the + tarball than the one you get from find. 7. tar -xf emacs-NEW.tar; cd emacs-NEW ./configure --prefix=/tmp/emacs && make check && make install @@ -194,6 +202,14 @@ General steps (for each step, check for possible errors): git tag -a TAG -m "Emacs TAG" SHA1 git push --tags + In the past, we were not always consistent with the annotation + (i.e. -m "Emacs TAG"). The preferred format is like this for a + pretest, release candidate and final release: + + git tag -a emacs-28.0.90 -m "Emacs 28.0.90 pretest" + git tag -a emacs-28.1-rc1 -m "Emacs 28.1 RC1" + git tag -a emacs-28.1 -m "Emacs 28.1 release" + 9. Decide what compression schemes to offer. For a release, at least gz and xz: gzip --best --no-name -c emacs-NEW.tar > emacs-NEW.tar.gz @@ -256,6 +272,11 @@ General steps (for each step, check for possible errors): because replies that invariably are not announcements also get sent out as if they were.) + To create the included SHA1 and SHA256 checksums, run: + + sha1sum emacs-NEW.tar.xz + sha256sum emacs-NEW.tar.xz + 12. After a release, update the Emacs pages as described below. 13. Bump the Emacs version on the release branch. commit bbf4140091da0938df2ebcf9b0cf5f31c11365f6 Author: Stefan Kangas Date: Thu Dec 2 23:51:35 2021 +0100 * admin/diff-tar-files: Don't assume .tar.gz. diff --git a/admin/diff-tar-files b/admin/diff-tar-files index cdcc512ae6..2fe15401d0 100755 --- a/admin/diff-tar-files +++ b/admin/diff-tar-files @@ -35,7 +35,7 @@ old_tmp=/tmp/old.$$ new_tmp=/tmp/new.$$ trap "rm -f $old_tmp $new_tmp; exit 1" 1 2 15 -tar tzf "$old_tar" | sed -e 's,^[^/]*,,' | sort > $old_tmp -tar tzf "$new_tar" | sed -e 's,^[^/]*,,' | sort > $new_tmp +tar tf "$old_tar" | sed -e 's,^[^/]*,,' | sort > $old_tmp +tar tf "$new_tar" | sed -e 's,^[^/]*,,' | sort > $new_tmp diff -u $old_tmp $new_tmp rm -f $new_tmp $old_tmp commit f5f5297a9254bb2da751da184eaf03a919a1766a Author: Michael Albinus Date: Thu Dec 2 19:31:43 2021 +0100 * etc/NEWS: Mention change in `insert-directory' derivates. Fix typos. diff --git a/etc/NEWS b/etc/NEWS index eda12142fe..227409db25 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -43,7 +43,7 @@ development files are present on your system, and configure Emacs with *** Double buffering is now enabled on the Haiku operating system. Unlike X, there is no compile-time option to enable or disable double-buffering. If you wish to disable double-buffering, change the -frame parameter `inhibit-double-buffering' instead. +frame parameter 'inhibit-double-buffering' instead. ** Emacs now installs the ".pdmp" file using a unique fingerprint in the name. The file is typically installed using a file name akin to @@ -56,7 +56,7 @@ If your X server has support and you have the XInput 2 development headers installed, you can configure Emacs with the option '--with-xinput2' to enable this support. -The named feature `xinput2' can be used to test for the presence of +The named feature 'xinput2' can be used to test for the presence of XInput 2 support from Lisp programs. @@ -101,7 +101,7 @@ on the mode lines (along with 'mode-line-inactive'). ** The mode line now uses a proportional font by default. To get the old monospaced mode line back, customize the 'mode-line-active' and 'mode-line-inactive' faces not to inherit from -the 'variable-pitch' face, or add this to your ~/.emacs: +the 'variable-pitch' face, or add this to your "~/.emacs": (set-face-attribute 'mode-line-active nil :inherit 'mode-line) (set-face-attribute 'mode-line-inactive nil :inherit 'mode-line) @@ -132,13 +132,15 @@ This is in addition to previously-supported ways of discovering 24-bit color support: either via the "RGB" or "setf24" capabilities, or if the 'COLORTERM' environment variable is set to the value "truecolor". +** ERT + +++ -** New ERT variables 'ert-batch-print-length' and 'ert-batch-print-level'. +*** New ERT variables 'ert-batch-print-length' and 'ert-batch-print-level'. These variables will override 'print-length' and 'print-level' when printing Lisp values in ERT batch test results. --- -** Redefining an ERT test in batch mode now signals an error +*** Redefining an ERT test in batch mode now signals an error. Executing 'ert-deftest' with the same name as an existing test causes the previous definition to be discarded, which was probably not intended when this occurs in batch mode. To remedy the error, rename @@ -178,7 +180,7 @@ command also works for non-Emoji characters.) --- *** 'C-h b' uses outlining by default. -Set 'describe-bindings-outline' to nil to get the old behaviour. +Set 'describe-bindings-outline' to nil to get the old behavior. --- *** Jumping to function/variable source now saves mark before moving point. @@ -320,8 +322,8 @@ the current buffer. +++ *** Buffer names can now be stored in registers. -For instance, to enable jumping to the *Messages* buffer with -`C-x r j m': +For instance, to enable jumping to the "*Messages*" buffer with +'C-x r j m': (set-register ?m '(buffer . "*Messages*")) @@ -392,7 +394,7 @@ the common "utm_" trackers from URLs. To get the monospace font back, you can put something like the following in your .gnus file: - (set-face-attribute 'gnus-header nil :inherit 'unspecified) + (set-face-attribute 'gnus-header nil :inherit 'unspecified) --- *** The default value of 'gnus-treat-fold-headers' is now 'head'. @@ -601,8 +603,8 @@ updating the thumbnail file. *** New user option 'dired-free-space'. Dired will now, by default, include the free space in the first line -instead of having it on a separate line. To get the previous -behaviour back, say: +instead of having it on a separate line. To get the previous behavior +back, say: (setq dired-free-space 'separate) @@ -751,6 +753,10 @@ with recent versions of Firefox. ** The function 'image-dired-get-exif-data' is now obsolete. Use 'exif-parse-file' and 'exif-field' instead. +--- +** 'insert-directory' alternatives should not change the free disk space line. +This change is now applied in 'dired-insert-directory'. + * Lisp Changes in Emacs 29.1 @@ -771,7 +777,7 @@ This allows setting a minimum display width for a region of text. +++ ** New event type 'touch-end'. This event is sent whenever the user's finger moves off the mouse -wheel on some mice, and when the user's finger moves off the touchpad. +wheel on some mice, or when the user's finger moves off the touchpad. ** Keymaps and key definitions @@ -1058,7 +1064,7 @@ This function is used to control where and if an xwidget stores cookies set by web pages on disk. ** New variable 'help-buffer-under-preparation'. -This variable is bound to t during the preparation of a *Help* buffer. +This variable is bound to t during the preparation of a "*Help*" buffer. * Changes in Emacs 29.1 on Non-Free Operating Systems commit 0a50ad11dbc949669ec2c03091aa6f6b81288b0f Author: Juri Linkov Date: Thu Dec 2 20:12:05 2021 +0200 * lisp/tab-bar.el (tab-bar-close-other-tabs): Fix regression. * test/lisp/tab-bar-tests.el: New file. (tab-bar-tests-close-other-tabs-with-arg): Test for regression that closed the selected tab after selecting it. diff --git a/lisp/tab-bar.el b/lisp/tab-bar.el index ca1087e827..cfd766d549 100644 --- a/lisp/tab-bar.el +++ b/lisp/tab-bar.el @@ -1572,18 +1572,17 @@ happens interactively)." (let* ((tabs (funcall tab-bar-tabs-function)) (current-index (tab-bar--current-tab-index tabs)) (keep-index (if (integerp tab-number) - (1- (max 0 (min tab-number (length tabs)))) + (1- (max 1 (min tab-number (length tabs)))) current-index)) - (keep-tab (nth keep-index tabs)) (index 0)) - (when keep-tab + (when (nth keep-index tabs) (unless (eq keep-index current-index) (tab-bar-select-tab (1+ keep-index)) (setq tabs (funcall tab-bar-tabs-function))) (dolist (tab tabs) - (unless (or (eq tab keep-tab) + (unless (or (eq index keep-index) (run-hook-with-args-until-success 'tab-bar-tab-prevent-close-functions tab ;; `last-tab-p' logically can't ever be true diff --git a/test/lisp/tab-bar-tests.el b/test/lisp/tab-bar-tests.el new file mode 100644 index 0000000000..7212ce8916 --- /dev/null +++ b/test/lisp/tab-bar-tests.el @@ -0,0 +1,51 @@ +;;; tab-bar-tests.el --- Tests for tab-bar.el -*- lexical-binding: t; -*- + +;; Copyright (C) 2021 Free Software Foundation, Inc. + +;; Author: Juri Linkov + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . + +;;; Code: + +(require 'ert) + +(defun tab-bar-tests-close-other-tabs (arg) + (tab-bar-tabs-set nil) + (tab-rename "1") + (tab-new) (tab-rename "2") ;; (tab-switch "2") + (tab-new) (tab-rename "3") ;; (tab-switch "3") + (should (eq (length (tab-bar-tabs)) 3)) + (should (equal (alist-get 'name (tab-bar--current-tab-find)) "3")) + (tab-bar-close-other-tabs arg) + (should (equal (alist-get 'name (tab-bar--current-tab-find)) + (if arg (number-to-string (max 1 (min arg 3))) "3"))) + (should (eq (length (tab-bar-tabs)) 1)) + (should (eq (length tab-bar-closed-tabs) 2)) + (tab-undo) + (tab-undo) + (should (equal (tab-undo) "No more closed tabs to undo")) + (should (eq (length (tab-bar-tabs)) 3)) + (should (eq (length tab-bar-closed-tabs) 0))) + +(ert-deftest tab-bar-tests-close-other-tabs-default () + (tab-bar-tests-close-other-tabs nil)) + +(ert-deftest tab-bar-tests-close-other-tabs-with-arg () + (dotimes (i 5) (tab-bar-tests-close-other-tabs i))) + +(provide 'tab-bar-tests) +;;; tab-bar-tests.el ends here commit 8203c2cd3053d94e6a81807cdcd18f1354db273f Author: Eli Zaretskii Date: Thu Dec 2 19:46:26 2021 +0200 ; * src/xdisp.c (syms_of_xdisp) : Doc fix. diff --git a/src/xdisp.c b/src/xdisp.c index fdcf6a611e..80c8457795 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -35660,7 +35660,8 @@ Value is a number or a cons (WIDTH-DPI . HEIGHT-DPI). */); If this is non-nil characters displayed on GUI frames will be aligned to produce straight columns. This is achieved by enlarging the pixel width of characters to an integral -multiple of pixels taken by ASCII characters of the same face. */); +multiple of pixels taken by ASCII characters of the same face. +This affects only fixed-pitch fonts. */); align_columns_display = false; #ifdef GLYPH_DEBUG commit 608267c71e11da9c757c269a5e22e62ef04d0bfe Author: Eli Zaretskii Date: Thu Dec 2 19:44:46 2021 +0200 Support display of non-ASCII characters with aligned columns * src/xdisp.c (get_normal_width): New function. (gui_produce_glyphs): Use 'get_normal_width' to widen on display characters whose width is not an integral multiple of the "standard" width. (syms_of_xdisp) : New boolean variable. diff --git a/src/xdisp.c b/src/xdisp.c index 9f93799783..fdcf6a611e 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -28812,6 +28812,21 @@ normal_char_height (struct font *font, int c) return ascent + descent; } +/* Return the "standard" pixel width of a character from FACE's font, + if the font is fixed-pitch, zero otherwise. */ +static int +get_normal_width (struct face *face) +{ + struct font *ascii_font = face->ascii_face->font; + /* Heuristics: fixed-pitch fonts have the value of MAX-WIDTH not + much larger than AVERAGE-WIDTH. */ + bool fixed_pitch = + ascii_font->average_width == ascii_font->space_width + && ascii_font->average_width != 0 + && ascii_font->max_width < 3 * ascii_font->average_width; + return fixed_pitch ? ascii_font->space_width : 0; +} + /* EXPORT for RIF: Set *LEFT and *RIGHT to the left and right overhang of GLYPH on frame F. Overhangs of glyphs other than type CHAR_GLYPH are @@ -30909,6 +30924,17 @@ gui_produce_glyphs (struct it *it) it->phys_ascent = pcm->ascent + boff; it->phys_descent = pcm->descent - boff; it->pixel_width = pcm->width; + if (align_columns_display) + { + int unit_width = get_normal_width (face); + if (unit_width > 0) + { + int ncolumns = + (it->pixel_width - 1 + unit_width) / unit_width; + + it->pixel_width = ncolumns * unit_width; + } + } /* Don't use font-global values for ascent and descent if they result in an exceedingly large line height. */ if (it->override_ascent < 0) @@ -31486,6 +31512,17 @@ gui_produce_glyphs (struct it *it) it->glyph_row->contains_overlapping_glyphs_p = true; it->pixel_width = cmp->pixel_width; + if (align_columns_display) + { + int unit_width = get_normal_width (face); + if (unit_width > 0) + { + int ncolumns = + (it->pixel_width - 1 + unit_width) / unit_width; + + it->pixel_width = ncolumns * unit_width; + } + } it->ascent = it->phys_ascent = cmp->ascent; it->descent = it->phys_descent = cmp->descent; IT_APPLY_FACE_BOX(it, face); @@ -31531,6 +31568,17 @@ gui_produce_glyphs (struct it *it) it->glyph_row->contains_overlapping_glyphs_p = true; it->ascent = it->phys_ascent = metrics.ascent; it->descent = it->phys_descent = metrics.descent; + if (align_columns_display) + { + int unit_width = get_normal_width (face); + if (unit_width > 0) + { + int ncolumns = + (it->pixel_width - 1 + unit_width) / unit_width; + + it->pixel_width = ncolumns * unit_width; + } + } } IT_APPLY_FACE_BOX(it, face); @@ -35607,6 +35655,14 @@ variable are ignored and the default 0.25 is used instead. */); Value is a number or a cons (WIDTH-DPI . HEIGHT-DPI). */); Vdisplay_pixels_per_inch = make_float (72.0); + DEFVAR_BOOL ("align-columns-display", align_columns_display, + doc: /* Whether to align columns on GUI frames. +If this is non-nil characters displayed on GUI frames will be +aligned to produce straight columns. This is achieved by +enlarging the pixel width of characters to an integral +multiple of pixels taken by ASCII characters of the same face. */); + align_columns_display = false; + #ifdef GLYPH_DEBUG DEFVAR_INT ("debug-end-pos", debug_end_pos, doc: /* Don't ask. */); #endif commit a8bfdf2efc41479efecee4dff71fe8a341cb5729 Author: Stefan Kangas Date: Thu Dec 2 18:30:16 2021 +0100 update_autogen: Improve error handling slightly * admin/update_autogen: Check exit status of cd. Use single quoting for trap condition. diff --git a/admin/update_autogen b/admin/update_autogen index 2b6a46051c..99297a9c0d 100755 --- a/admin/update_autogen +++ b/admin/update_autogen @@ -44,7 +44,7 @@ PD=${0%/*} [ "$PD" = "$0" ] && PD=. # if PATH includes PWD ## This should be the admin directory. -cd $PD +cd $PD || exit cd ../ [ -d admin ] || die "Could not locate admin directory" @@ -102,7 +102,7 @@ done tempfile=/tmp/$PN.$$ -trap "rm -f $tempfile 2> /dev/null" EXIT +trap 'rm -f $tempfile 2> /dev/null' EXIT while getopts ":hcfqA:CL" option ; do commit db56f2c264fe7cd7ec2bd3ed7bc96a7473b4983b Author: Stefan Kangas Date: Thu Dec 2 18:17:14 2021 +0100 update_autogen: Remove unused -H flag We now update ChangeLog files only when preparing a new release, so this flag is never used. Keeping it risks confusing more than it helps. * admin/update_autogen: Remove the -H flag as it is no longer used. diff --git a/admin/update_autogen b/admin/update_autogen index d83760a571..2b6a46051c 100755 --- a/admin/update_autogen +++ b/admin/update_autogen @@ -63,7 +63,6 @@ Options: commit them (caution). -q: be quiet; only give error messages, not status messages. -A: only update autotools files, copying into specified dir. --H: also update ChangeLog.${changelog_n} -L: also update ldefs-boot.el. -C: start from a clean state. Slower, but more correct. EOF @@ -80,13 +79,10 @@ clean= autogendir= # was "autogen" ldefs_flag=1 lboot_flag= -changelog_flag= ## Parameters. ldefs_in=lisp/loaddefs.el ldefs_out=lisp/ldefs-boot.el -changelog_n=$(sed -n 's/CHANGELOG_HISTORY_INDEX_MAX *= *//p' Makefile.in) -changelog_files="ChangeLog.$changelog_n" sources="configure.ac lib/Makefile.am" ## Files to copy into autogendir. ## Everything: @@ -109,7 +105,7 @@ tempfile=/tmp/$PN.$$ trap "rm -f $tempfile 2> /dev/null" EXIT -while getopts ":hcfqA:HCL" option ; do +while getopts ":hcfqA:CL" option ; do case $option in (h) usage ;; @@ -125,8 +121,6 @@ while getopts ":hcfqA:HCL" option ; do (C) clean=1 ;; - (H) changelog_flag=1 ;; - (L) lboot_flag=1 ;; (\?) die "Bad option -$OPTARG" ;; @@ -321,14 +315,6 @@ modified=$(status $genfiles $ldefs_out $grammar_out) || die commit "loaddefs" $modified || die "commit error" -## Less important than the other stuff, so do it last. -[ ! "$changelog_flag" ] || { - make change-history-nocommit || die "make change-history error" - modified=$(status $changelog_files) || die - commit "ChangeLog" $modified || die "commit error" -} - - exit 0 ### update_autogen ends here commit cf49f6ef656dcb681b904149b2dd95de71ff2668 Author: Stefan Kangas Date: Thu Dec 2 18:15:41 2021 +0100 ; update_autogen: Remove -I flag handling completely * admin/update_autogen: Fix my previous commit to now completely remove any trace of the -I flag. diff --git a/admin/update_autogen b/admin/update_autogen index ff5a338886..d83760a571 100755 --- a/admin/update_autogen +++ b/admin/update_autogen @@ -53,7 +53,7 @@ cd ../ usage () { cat 1>&2 < /dev/null" EXIT -while getopts ":hcfqA:HCIL" option ; do +while getopts ":hcfqA:HCL" option ; do case $option in (h) usage ;; commit 48d1e6e9d9217918b68daac9b23140bf8e36c2bf Merge: 8ff1a9d00b f38dfa56a0 Author: Stefan Kangas Date: Thu Dec 2 17:34:10 2021 +0100 Merge from origin/emacs-28 f38dfa56a0 ; Update loaddefs files. b3d4b18507 ; make change-history-commit 334ff0232e * lisp/repeat.el: Use same logic for repeat-check-key and ... 8230a47ecc * lisp/help.el (help--analyze-key): Prefer posn-set-point ... # Conflicts: # lisp/ldefs-boot.el commit 8ff1a9d00bfe1b4b3b1aae5e2792c5f58e501aee Merge: fa2e812894 740ae2818f Author: Stefan Kangas Date: Thu Dec 2 17:34:10 2021 +0100 ; Merge from origin/emacs-28 The following commit was skipped: 740ae2818f Bump Emacs version to 28.0.90 commit fa2e812894b999eba8afc4b146ca5e70fa9bd1c8 Merge: a97fce7a89 aa1d7dd867 Author: Stefan Kangas Date: Thu Dec 2 17:34:10 2021 +0100 Merge from origin/emacs-28 aa1d7dd867 ; * etc/AUTHORS: Update. 6294e60205 ; * admin/authors.el (authors-aliases): More fixes. 40fc31ea28 ; * ChangeLog.3: Update. 2be090d5d3 ; * ChangeLog.3: Minor fixes. 9963b11bf7 ; * admin/authors.el (authors-aliases): Further updates. 50b40e1d4f ; * lisp/org/ob-julia.el: Fix Author header for authors.el. 84166ea2e6 CC Mode: Recognise "struct foo {" as introducing a type de... commit a97fce7a894f1d5848842a7c37684d01eff48deb Author: Lars Ingebrigtsen Date: Thu Dec 2 17:33:00 2021 +0100 Fix characters.el build issue * lisp/international/characters.el (glyphless--bidi-control-characters): Don't use names here, because it's too early (bug#52240). diff --git a/lisp/international/characters.el b/lisp/international/characters.el index 38f5efaa3b..a2156ee01a 100644 --- a/lisp/international/characters.el +++ b/lisp/international/characters.el @@ -1520,16 +1520,18 @@ Setup `char-width-table' appropriate for non-CJK language environment." (aset char-acronym-table (+ #xE0021 i) (format " %c TAG" (+ 33 i)))) (aset char-acronym-table #xE007F "->|TAG") ; CANCEL TAG +;; We can't use the \N{name} things here, because this file is used +;; too early in the build process. (defvar glyphless--bidi-control-characters - '( ?\N{left-to-right embedding} - ?\N{right-to-left embedding} - ?\N{left-to-right override} - ?\N{right-to-left override} - ?\N{left-to-right isolate} - ?\N{right-to-left isolate} - ?\N{first strong isolate} - ?\N{pop directional formatting} - ?\N{pop directional isolate})) + '(#x202a ; ?\N{left-to-right embedding} + #x202b ; ?\N{right-to-left embedding} + #x202d ; ?\N{left-to-right override} + #x202e ; ?\N{right-to-left override} + #x2066 ; ?\N{left-to-right isolate} + #x2067 ; ?\N{right-to-left isolate} + #x2068 ; ?\N{first strong isolate} + #x202c ; ?\N{pop directional formatting} + #x2069)) ; ?\N{pop directional isolate}) (defun update-glyphless-char-display (&optional variable value) "Make the setting of `glyphless-char-display-control' take effect. commit 4c7faf33776c6566fdb374ae2b54960fc70c3228 Author: Lars Ingebrigtsen Date: Thu Dec 2 16:47:42 2021 +0100 Fix previous macroexp--warn-wrap change * lisp/emacs-lisp/macroexp.el (macroexp--warn-wrap): Don't call byte-compile-warning-enabled-p with zero parameters. diff --git a/lisp/emacs-lisp/macroexp.el b/lisp/emacs-lisp/macroexp.el index 48d9c680cb..a20c424e2b 100644 --- a/lisp/emacs-lisp/macroexp.el +++ b/lisp/emacs-lisp/macroexp.el @@ -136,11 +136,12 @@ Other uses risk returning non-nil value that point to the wrong file." (defvar macroexp--warned (make-hash-table :test #'equal :weakness 'key)) (defun macroexp--warn-wrap (msg form category) - (let ((when-compiled (lambda () - (when (if (listp category) - (apply #'byte-compile-warning-enabled-p category) - (byte-compile-warning-enabled-p category)) - (byte-compile-warn "%s" msg))))) + (let ((when-compiled + (lambda () + (when (if (consp category) + (apply #'byte-compile-warning-enabled-p category) + (byte-compile-warning-enabled-p category)) + (byte-compile-warn "%s" msg))))) `(progn (macroexp--funcall-if-compiled ',when-compiled) ,form))) commit c469efbd8361cffff72fb6a4aeaeea40c5adf110 Author: Filipp Gunbin Date: Thu Dec 2 16:15:32 2021 +0300 * lisp/gnus/gnus-art.el (gnus--variable-pitch-p): Don't error out if face nil diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 07cb68667f..b7701f10a5 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -2213,11 +2213,12 @@ unfolded." (goto-char (point-max))))))) (defun gnus--variable-pitch-p (face) - (or (eq face 'variable-pitch) - (let ((parent (face-attribute face :inherit))) - (if (eq parent 'unspecified) - nil - (seq-some #'gnus--variable-pitch-p (ensure-list parent)))))) + (when face + (or (eq face 'variable-pitch) + (let ((parent (face-attribute face :inherit))) + (if (eq parent 'unspecified) + nil + (seq-some #'gnus--variable-pitch-p (ensure-list parent))))))) (defun gnus-article-treat-fold-headers () "Fold message headers." commit 9ea5a915bd1b9458af1587d63170888346e8baec Author: Lars Ingebrigtsen Date: Thu Dec 2 13:21:20 2021 +0100 Make `C-c C-w' copy the executable bits to the new file * lisp/files.el (write-file): When visiting an executable file, make the new file executable, too (bug#18915). diff --git a/etc/NEWS b/etc/NEWS index 55733c6895..eda12142fe 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -75,6 +75,12 @@ time. * Changes in Emacs 29.1 +--- +** 'write-file' will now copy some file mode bits. +If the current buffer is visiting a file that is executable, the +'C-c C-w' command will now make the new file executable, too. + ++++ ** New user option 'process-error-pause-time'. This determines how long to pause Emacs after a process filter/sentinel error has been handled. diff --git a/lisp/files.el b/lisp/files.el index 07279c4c87..9ed63a60f8 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -4745,7 +4745,6 @@ using \\\\[next-history-element]. If optional second arg CONFIRM is non-nil, this function asks for confirmation before overwriting an existing file. Interactively, confirmation is required unless you supply a prefix argument." -;; (interactive "FWrite file: ") (interactive (list (if buffer-file-name (read-file-name "Write file: " @@ -4756,33 +4755,44 @@ Interactively, confirmation is required unless you supply a prefix argument." default-directory) nil nil)) (not current-prefix-arg))) - (or (null filename) (string-equal filename "") - (progn - ;; If arg is a directory name, - ;; use the default file name, but in that directory. - (if (directory-name-p filename) - (setq filename (concat filename - (file-name-nondirectory - (or buffer-file-name (buffer-name)))))) - (and confirm - (file-exists-p filename) - ;; NS does its own confirm dialog. - (not (and (eq (framep-on-display) 'ns) - (listp last-nonmenu-event) - use-dialog-box)) - (or (y-or-n-p (format-message - "File `%s' exists; overwrite? " filename)) - (user-error "Canceled"))) - (set-visited-file-name filename (not confirm)))) - (set-buffer-modified-p t) - ;; Make buffer writable if file is writable. - (and buffer-file-name - (file-writable-p buffer-file-name) - (setq buffer-read-only nil)) - (save-buffer) - ;; It's likely that the VC status at the new location is different from - ;; the one at the old location. - (vc-refresh-state)) + (let ((old-modes + (and buffer-file-name + ;; File may have gone away; ignore errors in that case. + (ignore-errors (file-modes buffer-file-name))))) + (or (null filename) (string-equal filename "") + (progn + ;; If arg is a directory name, + ;; use the default file name, but in that directory. + (if (directory-name-p filename) + (setq filename (concat filename + (file-name-nondirectory + (or buffer-file-name (buffer-name)))))) + (and confirm + (file-exists-p filename) + ;; NS does its own confirm dialog. + (not (and (eq (framep-on-display) 'ns) + (listp last-nonmenu-event) + use-dialog-box)) + (or (y-or-n-p (format-message + "File `%s' exists; overwrite? " filename)) + (user-error "Canceled"))) + (set-visited-file-name filename (not confirm)))) + (set-buffer-modified-p t) + ;; Make buffer writable if file is writable. + (and buffer-file-name + (file-writable-p buffer-file-name) + (setq buffer-read-only nil)) + (save-buffer) + ;; If the old file was executable, then make the new file + ;; executable, too. + (when (and old-modes + (not (zerop (logand #o111 old-modes)))) + (set-file-modes buffer-file-name + (logior (logand #o111 old-modes) + (file-modes buffer-file-name)))) + ;; It's likely that the VC status at the new location is different from + ;; the one at the old location. + (vc-refresh-state))) (defun file-extended-attributes (filename) "Return an alist of extended attributes of file FILENAME. commit a516ab79c300517d5c3ab68c45ff9c90bda6c67a Author: Lars Ingebrigtsen Date: Thu Dec 2 12:53:59 2021 +0100 Add a new variable 'process-error-pause-time' * doc/lispref/processes.texi (Asynchronous Processes): Document it. * lisp/cus-start.el (standard): Customize. * src/process.c (read_process_output_error_handler) (exec_sentinel_error_handler): Use it. (syms_of_process): New variable process-error-pause-time (bug#19457). diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi index 8a9cb2a8f8..ac5d4d1627 100644 --- a/doc/lispref/processes.texi +++ b/doc/lispref/processes.texi @@ -966,6 +966,15 @@ use the function @code{process-tty-name} (@pxref{Process Information}). @end defvar +@defvar process-error-pause-time +If a process sentinel/filter function has an error, Emacs will (by +default) pause Emacs for @code{process-error-pause-time} seconds after +displaying this error, so that users will see the error in question. +However, this can lead to situations where Emacs becomes unresponsive +(if there's a lot of these errors happening), so this can be disabled +by setting @code{process-error-pause-time} to 0. +@end defvar + @node Deleting Processes @section Deleting Processes @cindex deleting processes diff --git a/etc/NEWS b/etc/NEWS index d783fc019c..55733c6895 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -75,6 +75,10 @@ time. * Changes in Emacs 29.1 +** New user option 'process-error-pause-time'. +This determines how long to pause Emacs after a process +filter/sentinel error has been handled. + +++ ** New face 'variable-pitch-text'. This face is like 'variable-pitch' (from which it inherits), but is diff --git a/lisp/cus-start.el b/lisp/cus-start.el index 53cad99692..579beae123 100644 --- a/lisp/cus-start.el +++ b/lisp/cus-start.el @@ -575,6 +575,7 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of (ns-scroll-event-delta-factor ns float "29.1") ;; process.c (delete-exited-processes processes-basics boolean) + (process-error-pause-time processes-basics integer "29.1") ;; syntax.c (parse-sexp-ignore-comments editing-basics boolean) (words-include-escapes editing-basics boolean) diff --git a/src/process.c b/src/process.c index 241ffe9a8d..483da4d7e4 100644 --- a/src/process.c +++ b/src/process.c @@ -5994,7 +5994,8 @@ read_process_output_error_handler (Lisp_Object error_val) cmd_error_internal (error_val, "error in process filter: "); Vinhibit_quit = Qt; update_echo_area (); - Fsleep_for (make_fixnum (2), Qnil); + if (process_error_pause_time > 0) + Fsleep_for (make_fixnum (process_error_pause_time), Qnil); return Qt; } @@ -7421,7 +7422,8 @@ exec_sentinel_error_handler (Lisp_Object error_val) cmd_error_internal (error_val, "error in process sentinel: "); Vinhibit_quit = Qt; update_echo_area (); - Fsleep_for (make_fixnum (2), Qnil); + if (process_error_pause_time > 0) + Fsleep_for (make_fixnum (process_error_pause_time), Qnil); return Qt; } @@ -8577,6 +8579,12 @@ Enlarge the value only if the subprocess generates very large (megabytes) amounts of data in one go. */); read_process_output_max = 4096; + DEFVAR_INT ("process-error-pause-time", process_error_pause_time, + doc: /* The number of seconds to pause after handling process errors. +This isn't used for all process-related errors, but is used when a +sentinel or a process filter function has an error. */); + process_error_pause_time = 1; + DEFSYM (Qinternal_default_interrupt_process, "internal-default-interrupt-process"); DEFSYM (Qinterrupt_process_functions, "interrupt-process-functions"); commit d45e72fe5a9205b2e146d27e8e26233ee8518331 Author: Po Lu Date: Thu Dec 2 19:35:09 2021 +0800 Improve momentum scrolling algorithm * lisp/pixel-scroll.el (pixel-scroll-precision-momentum-tick): (pixel-scroll-precision-momentum-factor): New user options. (pixel-scroll-kinetic-state, pixel-scroll-accumulate-velocity): Set scroll momentum ring size to 10. (pixel-scroll-start-momentum): Improve algorithm. diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el index 092d7215d3..a45a4d41c3 100644 --- a/lisp/pixel-scroll.el +++ b/lisp/pixel-scroll.el @@ -109,6 +109,18 @@ This is only effective if supported by your mouse or touchpad." :type 'boolean :version "29.1") +(defcustom pixel-scroll-precision-momentum-tick 0.16 + "Number of seconds between each momentum scroll." + :group 'mouse + :type 'float + :version "29.1") + +(defcustom pixel-scroll-precision-momentum-factor 0.95 + "Factor by which to reduce scroll velocity on each momentum scroll" + :group 'mouse + :type 'float + :version "29.1") + (defun pixel-scroll-in-rush-p () "Return non-nil if next scroll should be non-smooth. When scrolling request is delivered soon after the previous one, @@ -501,14 +513,14 @@ wheel." It is a vector of the form [ VELOCITY TIME ]." (or (window-parameter nil 'kinetic-state) (set-window-parameter nil 'kinetic-state - (vector (make-ring 4) nil)))) + (vector (make-ring 10) nil)))) (defun pixel-scroll-accumulate-velocity (delta) "Accumulate DELTA into the current window's kinetic scroll state." (let* ((state (pixel-scroll-kinetic-state)) (time (aref state 1))) (when (and time (> (- (float-time) time) 0.5)) - (aset state 0 (make-ring 45))) + (aset state 0 (make-ring 10))) (ring-insert (aref state 0) (cons (aset state 1 (float-time)) delta)))) @@ -532,23 +544,26 @@ It is a vector of the form [ VELOCITY TIME ]." (state nil)) (with-selected-window window (setq state (pixel-scroll-kinetic-state)) - (when (aref state 1) + (when (and (aref state 1) + (listp (aref state 0))) (unwind-protect (progn (aset state 0 - (pixel-scroll-calculate-velocity state)) + (/ (pixel-scroll-calculate-velocity state) 2)) (let ((velocity (aref state 0))) (if (> velocity 0) - (while (> velocity 0) - (pixel-scroll-precision-scroll-up 1) - (setq velocity (1- velocity)) - (sit-for 0.1) - (redisplay t)) - (while (< velocity 0) - (pixel-scroll-precision-scroll-down 1) - (setq velocity (1+ velocity)) - (sit-for 0.1) - (redisplay t))))) - (aset state 0 (make-ring 45)) + (while (> velocity 1) + (pixel-scroll-precision-scroll-up (round velocity)) + (setq velocity (* velocity + pixel-scroll-precision-momentum-factor)) + (redisplay t) + (sit-for pixel-scroll-precision-momentum-tick))) + (while (< velocity -1) + (pixel-scroll-precision-scroll-down (round (abs velocity))) + (setq velocity (* velocity + pixel-scroll-precision-momentum-factor)) + (redisplay t) + (sit-for pixel-scroll-precision-momentum-tick)))) + (aset state 0 (make-ring 10)) (aset state 1 nil))))))) ;;;###autoload commit aa6a05c146e94c0afc35b5354d68da55aecb2db7 Author: Eli Zaretskii Date: Thu Dec 2 13:04:45 2021 +0200 Fix display of free disk space in Dired * lisp/dired.el (dired--insert-disk-space): Fix 'first' display on MS-Windows. (dired-free-space): Clarify the meaning of 'first'. diff --git a/lisp/dired.el b/lisp/dired.el index c8add87a00..d03c79df40 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -210,12 +210,13 @@ If a character, new links are unconditionally marked with that character." :group 'dired-mark) (defcustom dired-free-space 'first - "Whether to display free disk space in dired buffers. + "Whether and how to display the amount of free disk space in Dired buffers. If nil, don't display. If `separate', display on a separate line (along with used count). -If `first', display the free disk space on the first line." +If `first', display only the free disk space on the first line, +following the directory name." :type '(choice (const :tag "On a separate line" separate) - (const :tag "On the first line" first) + (const :tag "On the first line, after directory name" first) (const :tag "Don't display" nil)) :version "29.1" :group 'dired) @@ -1658,7 +1659,10 @@ see `dired-use-ls-dired' for more details.") (point)) ((eq dired-free-space 'first) (goto-char beg) - (when (and (looking-at " */") + (when (and (looking-at + (if (memq system-type '(windows-nt ms-dos)) + " *[A-Za-z]:/" + " */")) (progn (end-of-line) (eq (char-after (1- (point))) ?:))) commit e2494bdaeea309c6b270dc09beba34da5f193573 Author: Eli Zaretskii Date: Thu Dec 2 12:43:51 2021 +0200 ; * lisp/dired-x.el (dired-virtual): Doc fix. (Bug#20992) diff --git a/lisp/dired-x.el b/lisp/dired-x.el index 499d5cd2f0..855e58e16c 100644 --- a/lisp/dired-x.el +++ b/lisp/dired-x.el @@ -580,7 +580,9 @@ files in the active region if `dired-mark-region' is non-nil." (defalias 'virtual-dired 'dired-virtual) (defun dired-virtual (dirname &optional switches) - "Try to make the current buffer into a Dired buffer. + "Treat the current buffer as a Dired buffer showing directory DIRNAME. +Interactively, prompt for DIRNAME. + This command is rarely useful, but may be convenient if you want to peruse and move around in the output you got from \"ls -lR\" (or something similar), without having access to the actual @@ -588,8 +590,8 @@ file system. Most Dired commands that don't consult the file system will work as advertised, but commands that try to alter the file system -will usually fail. (If the output is from the current system, -most of those commands, too, will work fine.) +will usually fail. (However, if the output is from the current +system, most of those commands will work fine.) If you have saved a Dired buffer in a file you can use \\[dired-virtual] to resume it in a later session. commit dfc7338828a8db6cf177633f942efcb0d7930aaa Author: Eli Zaretskii Date: Thu Dec 2 12:34:37 2021 +0200 ; * lisp/international/characters.el: Fix a typo in last change. diff --git a/lisp/international/characters.el b/lisp/international/characters.el index c9fc8c76a5..38f5efaa3b 100644 --- a/lisp/international/characters.el +++ b/lisp/international/characters.el @@ -1628,7 +1628,7 @@ GROUP must be one of these symbols: excluding characters that have graphic images, such as U+00AD (SHY). `bidi-control': A subset of `format-control', but only characters - that are relevant for bidirectional formatting controls, + that are relevant for bidirectional formatting control, like U+2069 (PDI) and U+202B (RLE). `variation-selectors': Characters in the range U+FE00..U+FE0F, used for commit 6927841ecba6494858cc3af7c0500e6cd3c4923a Author: Eli Zaretskii Date: Thu Dec 2 12:32:17 2021 +0200 Fix recent changes related to 'glyphless-display-mode' * lisp/textmodes/glyphless-mode.el (glyphless-mode-types): Fix spelling of "bidirectional". * lisp/international/characters.el (char-acronym-table): Fix acronyms for LRI and RLI: use their accepted shorthands. (glyphless-char-display-control): Fix spelling of doc string. * doc/lispref/display.texi (Glyphless Chars): Fix spelling and add a cross-reference. diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 80ef24b270..b82473f9c2 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -8282,8 +8282,9 @@ images, such as U+00AD @sc{soft hyphen}. @item bidi-control This is a subset of @code{format-control}, but only includes -characters that are related to bi-directional control, like U+2069 -@sc{pop directional isolate} and U+202A @sc{left-to-right embedding}. +characters that are related to bidirectional formatting control, like +U+2069 @sc{pop directional isolate} and U+202A @sc{left-to-right +embedding}. @xref{Bidirectional Display}. Characters of Unicode General Category [Cf], such as U+200E @sc{left-to-right mark}, but excluding characters that have graphic diff --git a/lisp/international/characters.el b/lisp/international/characters.el index c7d54318ef..c9fc8c76a5 100644 --- a/lisp/international/characters.el +++ b/lisp/international/characters.el @@ -1493,8 +1493,8 @@ Setup `char-width-table' appropriate for non-CJK language environment." (aset char-acronym-table #x202D "LRO") ; LEFT-TO-RIGHT OVERRIDE (aset char-acronym-table #x202E "RLO") ; RIGHT-TO-LEFT OVERRIDE (aset char-acronym-table #x2060 "WJ") ; WORD JOINER -(aset char-acronym-table #x2066 "LTRI") ; LEFT-TO-RIGHT ISOLATE -(aset char-acronym-table #x2067 "RTLI") ; RIGHT-TO-LEFT ISOLATE +(aset char-acronym-table #x2066 "LRI") ; LEFT-TO-RIGHT ISOLATE +(aset char-acronym-table #x2067 "RLI") ; RIGHT-TO-LEFT ISOLATE (aset char-acronym-table #x2069 "PDI") ; POP DIRECTIONAL ISOLATE (aset char-acronym-table #x206A "ISS") ; INHIBIT SYMMETRIC SWAPPING (aset char-acronym-table #x206B "ASS") ; ACTIVATE SYMMETRIC SWAPPING @@ -1628,8 +1628,8 @@ GROUP must be one of these symbols: excluding characters that have graphic images, such as U+00AD (SHY). `bidi-control': A subset of `format-control', but only characters - that are relevant for bi-directional control, like - U+2069 (PDI) and U+202B (RLE). + that are relevant for bidirectional formatting controls, + like U+2069 (PDI) and U+202B (RLE). `variation-selectors': Characters in the range U+FE00..U+FE0F, used for selecting alternate glyph presentations, such as diff --git a/lisp/textmodes/glyphless-mode.el b/lisp/textmodes/glyphless-mode.el index 9751b9f143..177ba42c9c 100644 --- a/lisp/textmodes/glyphless-mode.el +++ b/lisp/textmodes/glyphless-mode.el @@ -34,7 +34,7 @@ The value can be any of the groups supported by (const :tag "C0 Control" c0-control) (const :tag "C1 Control" c1-control) (const :tag "Format Control" format-control) - (const :tag "Bi-directional Control" bidi-control) + (const :tag "Bidirectional Control" bidi-control) (const :tag "Variation Selectors" variation-selectors) (const :tag "No Font" no-font))) :group 'display) commit 3f98188b864fb4f16a7c2878a96c880ec55452dd Author: Lars Ingebrigtsen Date: Thu Dec 2 10:47:18 2021 +0100 Make dired-virtual doc string less confusing * lisp/dired-x.el (dired-virtual): Make the doc string less confusing (bug#20992). diff --git a/lisp/dired-x.el b/lisp/dired-x.el index de21dcf7a6..499d5cd2f0 100644 --- a/lisp/dired-x.el +++ b/lisp/dired-x.el @@ -580,17 +580,16 @@ files in the active region if `dired-mark-region' is non-nil." (defalias 'virtual-dired 'dired-virtual) (defun dired-virtual (dirname &optional switches) - "Put this Dired buffer into Virtual Dired mode. - -In Virtual Dired mode, all commands that do not actually consult the -filesystem will work. - -This is useful if you want to peruse and move around in an ls -lR -output file, for example one you got from an ftp server. With -ange-ftp, you can even Dired a directory containing an ls-lR file, -visit that file and turn on Virtual Dired mode. But don't try to save -this file, as `dired-virtual' indents the listing and thus changes the -buffer. + "Try to make the current buffer into a Dired buffer. +This command is rarely useful, but may be convenient if you want +to peruse and move around in the output you got from \"ls +-lR\" (or something similar), without having access to the actual +file system. + +Most Dired commands that don't consult the file system will work +as advertised, but commands that try to alter the file system +will usually fail. (If the output is from the current system, +most of those commands, too, will work fine.) If you have saved a Dired buffer in a file you can use \\[dired-virtual] to resume it in a later session. commit 7ca865dc52a31374c68dc870246353db5acc023c Author: Lars Ingebrigtsen Date: Thu Dec 2 10:19:10 2021 +0100 Add `cl-constantly' function * lisp/emacs-lisp/cl-lib.el (cl-constantly): Add Common Lisp function missing (bug#21584). diff --git a/lisp/emacs-lisp/cl-lib.el b/lisp/emacs-lisp/cl-lib.el index 317a4c6230..b01a32ca60 100644 --- a/lisp/emacs-lisp/cl-lib.el +++ b/lisp/emacs-lisp/cl-lib.el @@ -560,4 +560,9 @@ of record objects." (t (advice-remove 'type-of #'cl--old-struct-type-of)))) +(defun cl-constantly (value) + "Return a function that takes any number of arguments, but returns VALUE." + (lambda (&rest _) + value)) + ;;; cl-lib.el ends here diff --git a/test/lisp/emacs-lisp/cl-lib-tests.el b/test/lisp/emacs-lisp/cl-lib-tests.el index 854e371b32..a0facc81db 100644 --- a/test/lisp/emacs-lisp/cl-lib-tests.el +++ b/test/lisp/emacs-lisp/cl-lib-tests.el @@ -551,4 +551,9 @@ (should cl-old-struct-compat-mode) (cl-old-struct-compat-mode (if saved 1 -1)))) +(ert-deftest cl-constantly () + (should (equal (mapcar (cl-constantly 3) '(a b c d)) + '(3 3 3 3)))) + + ;;; cl-lib-tests.el ends here commit 5db380abad0482ae74aa71761f0da2b2351ce97a Author: Jim Porter Date: Wed Dec 1 21:55:31 2021 -0800 Ensure there are no duplicate separators when creating a context menu Previously, if there were three or more consecutive menu separators, not all of them would be removed. * lisp/mouse.el (context-menu-map): Ensure no duplicate separators (bug#52237). diff --git a/lisp/mouse.el b/lisp/mouse.el index 3ab9fbcdfe..ec43aecdd0 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el @@ -330,10 +330,10 @@ the function `context-menu-filter-function'." ;; Remove duplicate separators (let ((l menu)) (while (consp l) - (when (and (equal (cdr-safe (car l)) menu-bar-separator) - (equal (cdr-safe (cadr l)) menu-bar-separator)) - (setcdr l (cddr l))) - (setq l (cdr l)))) + (if (and (equal (cdr-safe (car l)) menu-bar-separator) + (equal (cdr-safe (cadr l)) menu-bar-separator)) + (setcdr l (cddr l)) + (setq l (cdr l))))) (when (functionp context-menu-filter-function) (setq menu (funcall context-menu-filter-function menu click))) commit d353c08d2bf25ea8e42ae4664c3a276d549937b5 Author: Daniel Fleischer Date: Thu Dec 2 09:11:21 2021 +0100 browse-url-button-regexp: Recognize gemini: links Gemini is a relatively new text-based web protocol, similar to gopher. There's the "elpher" package to browse gopher and gemini pages. Adding it to the regexp will make Emacs be aware of gemini links, e.g. in ERC. * lisp/net/browse-url.el (browse-url-button-regexp): Add support for the gemini: URL type. diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el index 011e43c447..d39cc361e5 100644 --- a/lisp/net/browse-url.el +++ b/lisp/net/browse-url.el @@ -221,7 +221,7 @@ be used instead." (defcustom browse-url-button-regexp (concat - "\\b\\(\\(www\\.\\|\\(s?https?\\|ftp\\|file\\|gopher\\|" + "\\b\\(\\(www\\.\\|\\(s?https?\\|ftp\\|file\\|gopher\\|gemini\\|" "nntp\\|news\\|telnet\\|wais\\|mailto\\|info\\):\\)" "\\(//[-a-z0-9_.]+:[0-9]*\\)?" (let ((chars "-a-z0-9_=#$@~%&*+\\/[:word:]") commit 20ab7e07afef7a878565bac97f63bafe5f9d6e04 Author: Michael Levine Date: Thu Dec 2 09:06:19 2021 +0100 Fix usage of deprecated syntax in some cedet tests * test/lisp/cedet/srecode/fields-tests.el (srecode-field-utest-impl): Fix deprecated syntax. diff --git a/test/lisp/cedet/srecode/fields-tests.el b/test/lisp/cedet/srecode/fields-tests.el index 5f634a5e4c..3c66f219bd 100644 --- a/test/lisp/cedet/srecode/fields-tests.el +++ b/test/lisp/cedet/srecode/fields-tests.el @@ -57,8 +57,7 @@ It is filled with some text." (end-of-line) (forward-word -1) - (setq f (srecode-field "Test" - :name "TEST" + (setq f (srecode-field :name "TEST" :start 6 :end 8)) @@ -99,19 +98,17 @@ It is filled with some text." (reg nil) (fields (list - (srecode-field "Test1" :name "TEST-1" :start 5 :end 10) - (srecode-field "Test2" :name "TEST-2" :start 15 :end 20) - (srecode-field "Test3" :name "TEST-3" :start 25 :end 30) + (srecode-field :name "TEST-1" :start 5 :end 10) + (srecode-field :name "TEST-2" :start 15 :end 20) + (srecode-field :name "TEST-3" :start 25 :end 30) - (srecode-field "Test4" :name "TEST-4" :start 35 :end 35)) - )) + (srecode-field :name "TEST-4" :start 35 :end 35)))) (when (not (= (length srecode-field-archive) 4)) (error "Region Test: Found %d fields. Expected 4" (length srecode-field-archive))) - (setq reg (srecode-template-inserted-region "REG" - :start 4 + (setq reg (srecode-template-inserted-region :start 4 :end 40)) (srecode-overlaid-activate reg) @@ -183,10 +180,10 @@ It is filled with some text." ;; Test variable linkage. (let* ((srecode-field-archive nil) - (f1 (srecode-field "Test1" :name "TEST" :start 6 :end 8)) - (f2 (srecode-field "Test2" :name "TEST" :start 28 :end 30)) - (f3 (srecode-field "Test3" :name "NOTTEST" :start 35 :end 40)) - (reg (srecode-template-inserted-region "REG" :start 4 :end 40))) + (f1 (srecode-field :name "TEST" :start 6 :end 8)) + (f2 (srecode-field :name "TEST" :start 28 :end 30)) + (f3 (srecode-field :name "NOTTEST" :start 35 :end 40)) + (reg (srecode-template-inserted-region :start 4 :end 40))) (srecode-overlaid-activate reg) (when (not (string= (srecode-overlaid-text f1) commit 35075267a67b6474416e0e413d0d60c1f5f5fc36 Author: Lars Ingebrigtsen Date: Thu Dec 2 08:31:37 2021 +0100 Add a bidi-control target for `glyphless-char-display-control' * doc/lispref/display.texi (Glyphless Chars): Document bidi-control. * lisp/international/characters.el (char-acronym-table): Add the ISOLATE characters. (update-glyphless-char-display): Implement bidi-control, and mark all Cf characters we don't know about as UNK. (glyphless--bidi-control-characters): New variable. (glyphless-char-display-control): Add a new type -- bidi-control. * lisp/textmodes/glyphless-mode.el (glyphless-mode-types): Add a new type -- bidi-control. diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 275c15e5d4..80ef24b270 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -8280,6 +8280,15 @@ Characters of Unicode General Category [Cf], such as U+200E @sc{left-to-right mark}, but excluding characters that have graphic images, such as U+00AD @sc{soft hyphen}. +@item bidi-control +This is a subset of @code{format-control}, but only includes +characters that are related to bi-directional control, like U+2069 +@sc{pop directional isolate} and U+202A @sc{left-to-right embedding}. + +Characters of Unicode General Category [Cf], such as U+200E +@sc{left-to-right mark}, but excluding characters that have graphic +images, such as U+00AD @sc{soft hyphen}. + @item variation-selectors Unicode VS-1 through VS-16 (U+FE00 through U+FE0F), which are used to select between different glyphs for the same codepoints (typically diff --git a/lisp/international/characters.el b/lisp/international/characters.el index 3b8924f503..c7d54318ef 100644 --- a/lisp/international/characters.el +++ b/lisp/international/characters.el @@ -1493,6 +1493,9 @@ Setup `char-width-table' appropriate for non-CJK language environment." (aset char-acronym-table #x202D "LRO") ; LEFT-TO-RIGHT OVERRIDE (aset char-acronym-table #x202E "RLO") ; RIGHT-TO-LEFT OVERRIDE (aset char-acronym-table #x2060 "WJ") ; WORD JOINER +(aset char-acronym-table #x2066 "LTRI") ; LEFT-TO-RIGHT ISOLATE +(aset char-acronym-table #x2067 "RTLI") ; RIGHT-TO-LEFT ISOLATE +(aset char-acronym-table #x2069 "PDI") ; POP DIRECTIONAL ISOLATE (aset char-acronym-table #x206A "ISS") ; INHIBIT SYMMETRIC SWAPPING (aset char-acronym-table #x206B "ASS") ; ACTIVATE SYMMETRIC SWAPPING (aset char-acronym-table #x206C "IAFS") ; INHIBIT ARABIC FORM SHAPING @@ -1517,6 +1520,17 @@ Setup `char-width-table' appropriate for non-CJK language environment." (aset char-acronym-table (+ #xE0021 i) (format " %c TAG" (+ 33 i)))) (aset char-acronym-table #xE007F "->|TAG") ; CANCEL TAG +(defvar glyphless--bidi-control-characters + '( ?\N{left-to-right embedding} + ?\N{right-to-left embedding} + ?\N{left-to-right override} + ?\N{right-to-left override} + ?\N{left-to-right isolate} + ?\N{right-to-left isolate} + ?\N{first strong isolate} + ?\N{pop directional formatting} + ?\N{pop directional isolate})) + (defun update-glyphless-char-display (&optional variable value) "Make the setting of `glyphless-char-display-control' take effect. This function updates the char-table `glyphless-char-display', @@ -1527,8 +1541,9 @@ option `glyphless-char-display'." (dolist (elt value) (let ((target (car elt)) (method (cdr elt))) - (or (memq method '(zero-width thin-space empty-box acronym hex-code)) - (error "Invalid glyphless character display method: %s" method)) + (unless (memq method '( zero-width thin-space empty-box + acronym hex-code bidi-control)) + (error "Invalid glyphless character display method: %s" method)) (cond ((eq target 'c0-control) (glyphless-set-char-table-range glyphless-char-display #x00 #x1F method) @@ -1543,24 +1558,29 @@ option `glyphless-char-display'." ((eq target 'variation-selectors) (glyphless-set-char-table-range glyphless-char-display #xFE00 #xFE0F method)) - ((eq target 'format-control) + ((or (eq target 'format-control) + (eq target 'bidi-control)) (when unicode-category-table (map-char-table (lambda (char category) - (if (eq category 'Cf) - (let ((this-method method) - from to) - (if (consp char) - (setq from (car char) to (cdr char)) - (setq from char to char)) - (while (<= from to) - (when (/= from #xAD) - (if (eq method 'acronym) - (setq this-method - (aref char-acronym-table from))) + (when (eq category 'Cf) + (let ((this-method method) + from to) + (if (consp char) + (setq from (car char) to (cdr char)) + (setq from char to char)) + (while (<= from to) + (when (/= from #xAD) + (when (eq method 'acronym) + (setq this-method + (or (aref char-acronym-table from) + "UNK"))) + (when (or (eq target 'format-control) + (memq from + glyphless--bidi-control-characters)) (set-char-table-range glyphless-char-display - from this-method)) - (setq from (1+ from)))))) + from this-method))) + (setq from (1+ from)))))) unicode-category-table))) ((eq target 'no-font) (set-char-table-extra-slot glyphless-char-display 0 method)) @@ -1607,6 +1627,9 @@ GROUP must be one of these symbols: such as U+200C (ZWNJ), U+200E (LRM), but excluding characters that have graphic images, such as U+00AD (SHY). + `bidi-control': A subset of `format-control', but only characters + that are relevant for bi-directional control, like + U+2069 (PDI) and U+202B (RLE). `variation-selectors': Characters in the range U+FE00..U+FE0F, used for selecting alternate glyph presentations, such as @@ -1635,6 +1658,7 @@ function (`update-glyphless-char-display'), which updates :options '((c0-control glyphless-char-display-method) (c1-control glyphless-char-display-method) (format-control glyphless-char-display-method) + (bidi-control glyphless-char-display-method) (variation-selectors glyphless-char-display-method) (no-font (glyphless-char-display-method :value hex-code))) :set 'update-glyphless-char-display diff --git a/lisp/textmodes/glyphless-mode.el b/lisp/textmodes/glyphless-mode.el index 3aeb360084..9751b9f143 100644 --- a/lisp/textmodes/glyphless-mode.el +++ b/lisp/textmodes/glyphless-mode.el @@ -34,6 +34,7 @@ The value can be any of the groups supported by (const :tag "C0 Control" c0-control) (const :tag "C1 Control" c1-control) (const :tag "Format Control" format-control) + (const :tag "Bi-directional Control" bidi-control) (const :tag "Variation Selectors" variation-selectors) (const :tag "No Font" no-font))) :group 'display) commit aaf0e62048e9d19d9ec6c403b45ab4a878df512c Author: Stefan Monnier Date: Wed Dec 1 22:59:35 2021 -0500 * lisp/cedet/semantic/bovine/c.el (semantic-tag-protection): Silence warning We used to get cedet/semantic/bovine/c.el:1462:25: Warning: value returned from (string= s "static") is unused * lisp/cedet/semantic/bovine/c.el (semantic-tag-protection): Merge two `when` into an `if` and set `prot` instead of throwing away a result. Use `pcase` while we're at it. diff --git a/lisp/cedet/semantic/bovine/c.el b/lisp/cedet/semantic/bovine/c.el index c7d59def1f..19e2fee2ba 100644 --- a/lisp/cedet/semantic/bovine/c.el +++ b/lisp/cedet/semantic/bovine/c.el @@ -1466,36 +1466,32 @@ Override function for `semantic-tag-protection'." (prot nil)) ;; Check the modifiers for protection if we are not a child ;; of some class type. - (when (or (not parent) (not (eq (semantic-tag-class parent) 'type))) - (while (and (not prot) mods) - (if (stringp (car mods)) - (let ((s (car mods))) - ;; A few silly defaults to get things started. - (cond ((or (string= s "extern") - (string= s "export")) - 'public) - ((string= s "static") - 'private)))) - (setq mods (cdr mods)))) - ;; If we have a typed parent, look for :public style labels. - (when (and parent (eq (semantic-tag-class parent) 'type)) + (if (not (and parent (eq (semantic-tag-class parent) 'type))) + (while (and (not prot) mods) + (if (stringp (car mods)) + (let ((s (car mods))) + ;; A few silly defaults to get things started. + (setq prot (pcase s + ((or "extern" "export") 'public) + ("static" 'private))))) + (setq mods (cdr mods))) + ;; If we have a typed parent, look for :public style labels. (let ((pp (semantic-tag-type-members parent))) (while (and pp (not (semantic-equivalent-tag-p (car pp) tag))) (when (eq (semantic-tag-class (car pp)) 'label) (setq prot - (cond ((string= (semantic-tag-name (car pp)) "public") - 'public) - ((string= (semantic-tag-name (car pp)) "private") - 'private) - ((string= (semantic-tag-name (car pp)) "protected") - 'protected))) + (pcase (semantic-tag-name (car pp)) + ("public" 'public) + ("private" 'private) + ("protected" 'protected))) ) (setq pp (cdr pp))))) (when (and (not prot) (eq (semantic-tag-class parent) 'type)) (setq prot - (cond ((string= (semantic-tag-type parent) "class") 'private) - ((string= (semantic-tag-type parent) "struct") 'public) - (t 'unknown)))) + (pcase (semantic-tag-type parent) + ("class" 'private) + ("struct" 'public) + (_ 'unknown)))) (or prot (if (and parent (semantic-tag-of-class-p parent 'type)) 'public commit c6dd8dd22338fddb68a8284a63302c712824f598 Author: Stefan Monnier Date: Wed Dec 1 22:51:39 2021 -0500 * lisp/emacs-lisp/macroexp.el: Improve last change Don't burp when `byte-compile-warning-enabled-p` is not yet defined. And use the call that we had already instead of adding a new one. (macroexp--warn-wrap): Allow `category` to be a list to pass to `byte-compile-warning-enabled-p`. (macroexp-macroexpand): Simplify accordingly. diff --git a/lisp/emacs-lisp/macroexp.el b/lisp/emacs-lisp/macroexp.el index 66c276e7b7..48d9c680cb 100644 --- a/lisp/emacs-lisp/macroexp.el +++ b/lisp/emacs-lisp/macroexp.el @@ -137,7 +137,9 @@ Other uses risk returning non-nil value that point to the wrong file." (defun macroexp--warn-wrap (msg form category) (let ((when-compiled (lambda () - (when (byte-compile-warning-enabled-p category) + (when (if (listp category) + (apply #'byte-compile-warning-enabled-p category) + (byte-compile-warning-enabled-p category)) (byte-compile-warn "%s" msg))))) `(progn (macroexp--funcall-if-compiled ',when-compiled) @@ -216,12 +218,11 @@ is executed without being compiled first." (let* ((fun (car form)) (obsolete (get fun 'byte-obsolete-info))) (macroexp-warn-and-return - (and (byte-compile-warning-enabled-p 'obsolete fun) - (macroexp--obsolete-warning - fun obsolete - (if (symbolp (symbol-function fun)) - "alias" "macro"))) - new-form 'obsolete)) + (macroexp--obsolete-warning + fun obsolete + (if (symbolp (symbol-function fun)) + "alias" "macro")) + new-form (list 'obsolete fun))) new-form))) (defun macroexp--unfold-lambda (form &optional name) commit 603bdc8d38ce4325380d29423939e5287e8aac17 Author: Po Lu Date: Thu Dec 2 11:01:59 2021 +0800 Add some primitive momentum-based precision scrolling The algorithm used to scroll the display kinetically is very simple and needs improvement. Someone should work on that eventually. * lisp/pixel-scroll.el (pixel-scroll-precision-use-momentum): New user option. (pixel-scroll-precision-mode-map): Add `pixel-scroll-start-momentum'. (pixel-scroll-kinetic-state): (pixel-scroll-accumulate-velocity): (pixel-scroll-calculate-velocity): New functions. (pixel-scroll-start-momentum): New command. * src/xterm.c (handle_one_xevent): Fix touch-end event generation. diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el index 2d6531a2d1..092d7215d3 100644 --- a/lisp/pixel-scroll.el +++ b/lisp/pixel-scroll.el @@ -68,6 +68,7 @@ (require 'mwheel) (require 'subr-x) +(require 'ring) (defvar pixel-wait 0 "Idle time on each step of pixel scroll specified in second. @@ -97,9 +98,17 @@ is always with pixel resolution.") (let ((map (make-sparse-keymap))) (define-key map [wheel-down] #'pixel-scroll-precision) (define-key map [wheel-up] #'pixel-scroll-precision) + (define-key map [touch-end] #'pixel-scroll-start-momentum) map) "The key map used by `pixel-scroll-precision-mode'.") +(defcustom pixel-scroll-precision-use-momentum nil + "If non-nil, continue to scroll the display after wheel movement stops. +This is only effective if supported by your mouse or touchpad." + :group 'mouse + :type 'boolean + :version "29.1") + (defun pixel-scroll-in-rush-p () "Return non-nil if next scroll should be non-smooth. When scrolling request is delivered soon after the previous one, @@ -475,9 +484,11 @@ wheel." (mwheel-scroll event nil) (with-selected-window window (condition-case nil - (if (< delta 0) - (pixel-scroll-precision-scroll-down (- delta)) - (pixel-scroll-precision-scroll-up delta)) + (progn + (if (< delta 0) + (pixel-scroll-precision-scroll-down (- delta)) + (pixel-scroll-precision-scroll-up delta)) + (pixel-scroll-accumulate-velocity delta)) ;; Do not ding at buffer limits. Show a message instead. (beginning-of-buffer (message (error-message-string '(beginning-of-buffer)))) @@ -485,6 +496,61 @@ wheel." (message (error-message-string '(end-of-buffer))))))))) (mwheel-scroll event nil)))) +(defun pixel-scroll-kinetic-state () + "Return the kinetic scroll state of the current window. +It is a vector of the form [ VELOCITY TIME ]." + (or (window-parameter nil 'kinetic-state) + (set-window-parameter nil 'kinetic-state + (vector (make-ring 4) nil)))) + +(defun pixel-scroll-accumulate-velocity (delta) + "Accumulate DELTA into the current window's kinetic scroll state." + (let* ((state (pixel-scroll-kinetic-state)) + (time (aref state 1))) + (when (and time (> (- (float-time) time) 0.5)) + (aset state 0 (make-ring 45))) + (ring-insert (aref state 0) + (cons (aset state 1 (float-time)) + delta)))) + +(defun pixel-scroll-calculate-velocity (state) + "Calculate velocity from the kinetic state vector STATE." + (let* ((ring (aref state 0)) + (elts (ring-elements ring)) + (total 0)) + (dolist (tem elts) + (setq total (+ total (cdr tem)))) + (/ total (* (- (caar elts) + (caar (last elts))) + 100)))) + +(defun pixel-scroll-start-momentum (event) + "Start kinetic scrolling for the touch event EVENT." + (interactive "e") + (when pixel-scroll-precision-use-momentum + (let ((window (mwheel-event-window event)) + (state nil)) + (with-selected-window window + (setq state (pixel-scroll-kinetic-state)) + (when (aref state 1) + (unwind-protect (progn + (aset state 0 + (pixel-scroll-calculate-velocity state)) + (let ((velocity (aref state 0))) + (if (> velocity 0) + (while (> velocity 0) + (pixel-scroll-precision-scroll-up 1) + (setq velocity (1- velocity)) + (sit-for 0.1) + (redisplay t)) + (while (< velocity 0) + (pixel-scroll-precision-scroll-down 1) + (setq velocity (1+ velocity)) + (sit-for 0.1) + (redisplay t))))) + (aset state 0 (make-ring 45)) + (aset state 1 nil))))))) + ;;;###autoload (define-minor-mode pixel-scroll-precision-mode "Toggle pixel scrolling. diff --git a/src/xterm.c b/src/xterm.c index fe26e41421..3f7b956034 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -10025,11 +10025,12 @@ handle_one_xevent (struct x_display_info *dpyinfo, val->emacs_value += delta; if (mwheel_coalesce_scroll_events - && (fabs (val->emacs_value) < 1)) + && (fabs (val->emacs_value) < 1) + && (fabs (delta) > 0)) continue; bool s = signbit (val->emacs_value); - inev.ie.kind = (delta != 0.0 + inev.ie.kind = (fabs (delta) > 0 ? (val->horizontal ? HORIZ_WHEEL_EVENT : WHEEL_EVENT) @@ -10040,17 +10041,20 @@ handle_one_xevent (struct x_display_info *dpyinfo, XSETINT (inev.ie.y, lrint (xev->event_y)); XSETFRAME (inev.ie.frame_or_window, f); - inev.ie.modifiers = !s ? up_modifier : down_modifier; - inev.ie.modifiers - |= x_x_to_emacs_modifiers (dpyinfo, - xev->mods.effective); + if (fabs (delta) > 0) + { + inev.ie.modifiers = !s ? up_modifier : down_modifier; + inev.ie.modifiers + |= x_x_to_emacs_modifiers (dpyinfo, + xev->mods.effective); + } scroll_unit = pow (FRAME_PIXEL_HEIGHT (f), 2.0 / 3.0); if (NUMBERP (Vx_scroll_event_delta_factor)) scroll_unit *= XFLOATINT (Vx_scroll_event_delta_factor); - if (delta != 0.0) + if (fabs (delta) > 0) { if (val->horizontal) { commit 5001f4f91b9a959ddc345de36153689174df67a9 Author: Po Lu Date: Thu Dec 2 10:27:24 2021 +0800 Add `touch-end' event type * etc/NEWS: * doc/lispref/commands.texi (Misc Events): Document new `touch-end' event type. * lisp/bindings.el: Ignore touch-end events by default. * src/keyboard.c (make_lispy_event): Add support for TOUCH_END_EVENT events. (syms_of_keyboard): New symbol `touch-end'. * src/termhooks.h (enum event_kind): New member `TOUCH_END_EVENT'. * src/xterm.c (handle_one_xevent): Send touch-end events when appropriate. diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi index 073cdd8aa7..cc1c216d57 100644 --- a/doc/lispref/commands.texi +++ b/doc/lispref/commands.texi @@ -1992,6 +1992,13 @@ This kind of event indicates that the user deiconified @var{frame} using the window manager. Its standard definition is @code{ignore}; since the frame has already been made visible, Emacs has no work to do. +@cindex @code{touch-end} event +@item (touch-end (@var{position})) +This kind of event indicates that the user's finger moved off the +mouse wheel or the touchpad. The @var{position} element is a mouse +position list (@pxref{Click Events}), specifying the position of the +mouse cursor when the finger moved off the mouse wheel. + @cindex @code{wheel-up} event @cindex @code{wheel-down} event @item (wheel-up @var{position} @var{clicks} @var{lines} @var{pixel-delta}) diff --git a/etc/NEWS b/etc/NEWS index f1f1512a67..d783fc019c 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -758,6 +758,11 @@ property. ** New 'min-width' 'display' property. This allows setting a minimum display width for a region of text. ++++ +** New event type 'touch-end'. +This event is sent whenever the user's finger moves off the mouse +wheel on some mice, and when the user's finger moves off the touchpad. + ** Keymaps and key definitions +++ diff --git a/lisp/bindings.el b/lisp/bindings.el index e28b06a1dc..578406dd98 100644 --- a/lisp/bindings.el +++ b/lisp/bindings.el @@ -1261,6 +1261,8 @@ if `inhibit-field-text-motion' is non-nil." ;; (define-key global-map [kp-9] 'function-key-error) ;; (define-key global-map [kp-equal] 'function-key-error) +(define-key global-map [touch-end] 'ignore) + ;; X11 distinguishes these keys from the non-kp keys. ;; Make them behave like the non-kp keys unless otherwise bound. ;; FIXME: rather than list such mappings for every modifier-combination, diff --git a/src/keyboard.c b/src/keyboard.c index b3e6e5029b..899c9109c2 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -5994,6 +5994,21 @@ make_lispy_event (struct input_event *event) return list2 (head, position); } + case TOUCH_END_EVENT: + { + Lisp_Object position; + + /* Build the position as appropriate for this mouse click. */ + struct frame *f = XFRAME (event->frame_or_window); + + if (! FRAME_LIVE_P (f)) + return Qnil; + + position = make_lispy_position (f, event->x, event->y, + event->timestamp); + + return list2 (Qtouch_end, position); + } #ifdef USE_TOOLKIT_SCROLL_BARS @@ -11745,6 +11760,8 @@ syms_of_keyboard (void) DEFSYM (Qfile_notify, "file-notify"); #endif /* USE_FILE_NOTIFY */ + DEFSYM (Qtouch_end, "touch-end"); + /* Menu and tool bar item parts. */ DEFSYM (QCenable, ":enable"); DEFSYM (QCvisible, ":visible"); diff --git a/src/termhooks.h b/src/termhooks.h index 1cf9863f3a..f64c19e039 100644 --- a/src/termhooks.h +++ b/src/termhooks.h @@ -267,6 +267,13 @@ enum event_kind /* File or directory was changed. */ , FILE_NOTIFY_EVENT #endif + + /* Either the mouse wheel has been released without it being + clicked, or the user has lifted his finger from a touchpad. + + In the future, this may take into account other multi-touch + events generated from touchscreens and such. */ + , TOUCH_END_EVENT }; /* Bit width of an enum event_kind tag at the start of structs and unions. */ diff --git a/src/xterm.c b/src/xterm.c index d633953018..fe26e41421 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -10029,9 +10029,11 @@ handle_one_xevent (struct x_display_info *dpyinfo, continue; bool s = signbit (val->emacs_value); - inev.ie.kind = (val->horizontal - ? HORIZ_WHEEL_EVENT - : WHEEL_EVENT); + inev.ie.kind = (delta != 0.0 + ? (val->horizontal + ? HORIZ_WHEEL_EVENT + : WHEEL_EVENT) + : TOUCH_END_EVENT); inev.ie.timestamp = xev->time; XSETINT (inev.ie.x, lrint (xev->event_x)); @@ -10048,19 +10050,26 @@ handle_one_xevent (struct x_display_info *dpyinfo, if (NUMBERP (Vx_scroll_event_delta_factor)) scroll_unit *= XFLOATINT (Vx_scroll_event_delta_factor); - if (val->horizontal) + if (delta != 0.0) { - inev.ie.arg - = list3 (Qnil, - make_float (val->emacs_value - * scroll_unit), - make_float (0)); + if (val->horizontal) + { + inev.ie.arg + = list3 (Qnil, + make_float (val->emacs_value + * scroll_unit), + make_float (0)); + } + else + { + inev.ie.arg = list3 (Qnil, make_float (0), + make_float (val->emacs_value + * scroll_unit)); + } } - else + else { - inev.ie.arg = list3 (Qnil, make_float (0), - make_float (val->emacs_value - * scroll_unit)); + inev.ie.arg = Qnil; } kbd_buffer_store_event_hold (&inev.ie, hold_quit); commit a4ff841154632da36ccb1bd01ea4e509465a692b Author: Po Lu Date: Thu Dec 2 09:56:52 2021 +0800 Fix precision scrolling when there is a scroll margin * lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down) (pixel-scroll-precision-scroll-up): Take scroll margin into accout. diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el index 9cd2352e19..2d6531a2d1 100644 --- a/lisp/pixel-scroll.el +++ b/lisp/pixel-scroll.el @@ -383,7 +383,7 @@ the height of the current window." (desired-vscroll (cdr (posn-object-x-y desired-pos))) (next-pos (save-excursion (goto-char desired-start) - (when (zerop (vertical-motion 1)) + (when (zerop (vertical-motion (1+ scroll-margin))) (signal 'end-of-buffer nil)) (point)))) (if (and (< (point) next-pos) @@ -419,7 +419,7 @@ the height of the current window." (point (posn-point posn)) (up-point (save-excursion (goto-char point) - (vertical-motion -1) + (vertical-motion (- (1+ scroll-margin))) (point)))) (when (> (point) up-point) (when (let ((pos-visible (pos-visible-in-window-p up-point nil t))) commit 01a6c0b409c4d9ad92c4bb99bdb06c742bf3b0dd Author: Po Lu Date: Thu Dec 2 09:15:43 2021 +0800 Get rid of vmotion loop in `pixel-scroll-precision-scroll-up' * lisp/pixel-scroll.el (pixel-scroll-precision-scroll-up): Use posn-at-x-y for cursor motion. diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el index 59b5b71b92..9cd2352e19 100644 --- a/lisp/pixel-scroll.el +++ b/lisp/pixel-scroll.el @@ -412,22 +412,25 @@ the height of the current window." (let* ((edges (window-edges nil t nil t)) (max-y (- (nth 3 edges) (nth 1 edges))) - (usable-height max-y)) - (when-let* ((posn (posn-at-point)) - (current-y (+ (cdr (posn-x-y posn)) - (line-pixel-height)))) - (while (and (<= (- max-y current-y) delta) - (<= (cdr (posn-object-width-height posn)) - usable-height)) - (vertical-motion -1) - (setq current-y (- current-y (line-pixel-height)))) - (when (and (>= (cdr (posn-object-width-height posn)) - usable-height) - (let ((prev-line-height (save-excursion - (vertical-motion -1) - (line-pixel-height)))) - (<= 0 (- (cdr (posn-x-y posn)) prev-line-height)))) - (vertical-motion -1))) + (usable-height max-y) + (posn (posn-at-x-y 0 (+ (window-tab-line-height) + (window-header-line-height) + (- max-y delta)))) + (point (posn-point posn)) + (up-point (save-excursion + (goto-char point) + (vertical-motion -1) + (point)))) + (when (> (point) up-point) + (when (let ((pos-visible (pos-visible-in-window-p up-point nil t))) + (or (eq (length pos-visible) 2) + (when-let* ((posn (posn-at-point up-point)) + (edges (window-edges nil t)) + (usable-height (- (nth 3 edges) + (nth 1 edges)))) + (> (cdr (posn-object-width-height posn)) + usable-height)))) + (goto-char up-point))) (let ((current-vscroll (window-vscroll nil t))) (if (<= delta current-vscroll) (set-window-vscroll nil (- current-vscroll delta) t) commit 1914d946d62de4ab7bab1434bcea09087d61bb5a Author: Lars Ingebrigtsen Date: Wed Dec 1 23:27:09 2021 +0100 Change how Dired displays available space * doc/emacs/dired.texi (Misc Dired Features): Document it (bug#23812). * lisp/dired.el (dired-free-space): New user option. (dired-insert-directory): Use it from here. (dired--insert-disk-space): New function that uses the user option. * lisp/files.el (insert-directory): Don't transform "total" here. * lisp/ls-lisp.el (ls-lisp--insert-directory): Or here. Instead just leave the "total " bit alone, and let Dired transform it. * test/lisp/files-tests.el (files-tests): Move "available" tests to dired-tests. * test/lisp/dired-tests.el (data-dir): Moved here. diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi index 704850e584..0edd8bc7da 100644 --- a/doc/emacs/dired.texi +++ b/doc/emacs/dired.texi @@ -1567,6 +1567,14 @@ rotation is lossless, and uses an external utility called @node Misc Dired Features @section Other Dired Features +@vindex dired-free-space + By default, Dired will display the available space on the disk in +the first line. This is the @code{first} value of the +@code{dired-free-space} variable. If you set this to +@code{separate} instead, Dired will display this on a separate line +(including the space the files in the current directory takes). If +you set this to @code{nil}, the free space isn't displayed at all. + @kindex + @r{(Dired)} @findex dired-create-directory The command @kbd{+} (@code{dired-create-directory}) reads a diff --git a/etc/NEWS b/etc/NEWS index 7a94052625..f1f1512a67 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -589,6 +589,13 @@ updating the thumbnail file. ** Dired +*** New user option 'dired-free-space'. +Dired will now, by default, include the free space in the first line +instead of having it on a separate line. To get the previous +behaviour back, say: + + (setq dired-free-space 'separate) + --- *** New user option 'dired-make-directory-clickable'. If non-nil (which is the default), hitting 'RET' or 'mouse-1' on diff --git a/lisp/dired.el b/lisp/dired.el index 9280c080a4..c8add87a00 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -209,6 +209,17 @@ If a character, new links are unconditionally marked with that character." (character :tag "Mark")) :group 'dired-mark) +(defcustom dired-free-space 'first + "Whether to display free disk space in dired buffers. +If nil, don't display. +If `separate', display on a separate line (along with used count). +If `first', display the free disk space on the first line." + :type '(choice (const :tag "On a separate line" separate) + (const :tag "On the first line" first) + (const :tag "Don't display" nil)) + :version "29.1" + :group 'dired) + (defcustom dired-dwim-target nil "If non-nil, Dired tries to guess a default target directory. This means: if there is a Dired buffer displayed in some window, @@ -1614,15 +1625,51 @@ see `dired-use-ls-dired' for more details.") ;; by its expansion, so it does not matter whether what we insert ;; here is fully expanded, but it should be absolute. (insert " " (or (car-safe (insert-directory-wildcard-in-dir-p dir)) - (directory-file-name (file-name-directory dir))) ":\n") + (directory-file-name (file-name-directory dir))) + ":\n") (setq content-point (point))) (when wildcard ;; Insert "wildcard" line where "total" line would be for a full dir. (insert " wildcard " (or (cdr-safe (insert-directory-wildcard-in-dir-p dir)) (file-name-nondirectory dir)) - "\n"))) + "\n")) + (setq content-point (dired--insert-disk-space opoint dir))) (dired-insert-set-properties content-point (point))))) +(defun dired--insert-disk-space (beg file) + ;; Try to insert the amount of free space. + (save-excursion + (goto-char beg) + ;; First find the line to put it on. + (if (not (re-search-forward "^ *\\(total\\)" nil t)) + beg + (if (or (not dired-free-space) + (eq dired-free-space 'first)) + (delete-region (match-beginning 0) (line-beginning-position 2)) + ;; Replace "total" with "total used in directory" to + ;; avoid confusion. + (replace-match "total used in directory" nil nil nil 1)) + (when-let ((available (get-free-disk-space file))) + (cond + ((eq dired-free-space 'separate) + (end-of-line) + (insert " available " available) + (forward-line 1) + (point)) + ((eq dired-free-space 'first) + (goto-char beg) + (when (and (looking-at " */") + (progn + (end-of-line) + (eq (char-after (1- (point))) ?:))) + (put-text-property (1- (point)) (point) + 'display + (concat ": (" available " available)"))) + (forward-line 1) + (point)) + (t + beg)))))) + (defun dired-insert-set-properties (beg end) "Add various text properties to the lines in the region, from BEG to END." (save-excursion diff --git a/lisp/files.el b/lisp/files.el index c96e79cc63..07279c4c87 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -7673,21 +7673,7 @@ normally equivalent short `-D' option is just passed on to (if val coding-no-eol coding)) (if val (put-text-property pos (point) - 'dired-filename t))))))) - - (if full-directory-p - ;; Try to insert the amount of free space. - (save-excursion - (goto-char beg) - ;; First find the line to put it on. - (when (re-search-forward "^ *\\(total\\)" nil t) - ;; Replace "total" with "total used in directory" to - ;; avoid confusion. - (replace-match "total used in directory" nil nil nil 1) - (let ((available (get-free-disk-space file))) - (when available - (end-of-line) - (insert " available " available)))))))))) + 'dired-filename t))))))))))) (defun insert-directory-adj-pos (pos error-lines) "Convert `ls --dired' file name position value POS to a buffer position. diff --git a/lisp/ls-lisp.el b/lisp/ls-lisp.el index eea8089daa..25d196392a 100644 --- a/lisp/ls-lisp.el +++ b/lisp/ls-lisp.el @@ -337,18 +337,7 @@ are also supported; unsupported long options are silently ignored." (ls-lisp-insert-directory file switches (ls-lisp-time-index switches) nil full-directory-p)) - (signal (car err) (cdr err))))) - ;; Try to insert the amount of free space. - (save-excursion - (goto-char (point-min)) - ;; First find the line to put it on. - (when (re-search-forward "^total" nil t) - (let ((available (get-free-disk-space orig-file))) - (when available - ;; Replace "total" with "total used", to avoid confusion. - (replace-match "total used in directory") - (end-of-line) - (insert " available " available))))))))) + (signal (car err) (cdr err))))))))) (advice-add 'insert-directory :around #'ls-lisp--insert-directory) (defun ls-lisp-insert-directory diff --git a/test/lisp/files-resources/insert-directory/test_dir/bar b/test/lisp/dired-resources/insert-directory/test_dir/bar similarity index 100% rename from test/lisp/files-resources/insert-directory/test_dir/bar rename to test/lisp/dired-resources/insert-directory/test_dir/bar diff --git a/test/lisp/files-resources/insert-directory/test_dir/foo b/test/lisp/dired-resources/insert-directory/test_dir/foo similarity index 100% rename from test/lisp/files-resources/insert-directory/test_dir/foo rename to test/lisp/dired-resources/insert-directory/test_dir/foo diff --git a/test/lisp/files-resources/insert-directory/test_dir_other/bar b/test/lisp/dired-resources/insert-directory/test_dir_other/bar similarity index 100% rename from test/lisp/files-resources/insert-directory/test_dir_other/bar rename to test/lisp/dired-resources/insert-directory/test_dir_other/bar diff --git a/test/lisp/files-resources/insert-directory/test_dir_other/foo b/test/lisp/dired-resources/insert-directory/test_dir_other/foo similarity index 100% rename from test/lisp/files-resources/insert-directory/test_dir_other/foo rename to test/lisp/dired-resources/insert-directory/test_dir_other/foo diff --git a/test/lisp/dired-tests.el b/test/lisp/dired-tests.el index ad1bca923d..43791118f1 100644 --- a/test/lisp/dired-tests.el +++ b/test/lisp/dired-tests.el @@ -511,5 +511,79 @@ (when (file-directory-p testdir) (delete-directory testdir t))))) +;; `dired-insert-directory' output tests. +(let* ((data-dir "insert-directory") + (test-dir (file-name-as-directory + (ert-resource-file + (concat data-dir "/test_dir")))) + (test-dir-other (file-name-as-directory + (ert-resource-file + (concat data-dir "/test_dir_other")))) + (test-files `(,test-dir "foo" "bar")) ;expected files to be found + ;; Free space test data for `insert-directory'. + ;; Meaning: (path free-space-bytes-to-stub expected-free-space-string) + (free-data `((,test-dir 10 "available 10 B") + (,test-dir-other 100 "available 100 B") + (:default 999 "available 999 B")))) + + (defun files-tests--look-up-free-data (path) + "Look up free space test data, with a default for unspecified paths." + (let ((path (file-name-as-directory path))) + (cdr (or (assoc path free-data) + (assoc :default free-data))))) + + (defun files-tests--make-file-system-info-stub (&optional static-path) + "Return a stub for `file-system-info' using dynamic or static test data. +If that data should be static, pass STATIC-PATH to choose which +path's data to use." + (lambda (path) + (let* ((path (cond (static-path) + ;; file-system-info knows how to handle ".", so we + ;; do the same thing + ((equal "." path) default-directory) + (path))) + (return-size + (car (files-tests--look-up-free-data path)))) + (list return-size return-size return-size)))) + + (defun files-tests--insert-directory-output (dir &optional verbose) + "Run `insert-directory' and return its output." + (with-current-buffer-window "files-tests--insert-directory" nil nil + (let ((dired-free-space 'separate)) + (dired-insert-directory dir "-l" nil nil t)) + (buffer-substring-no-properties (point-min) (point-max)))) + + (ert-deftest files-tests-insert-directory-shows-files () + "Verify `insert-directory' reports the files in the directory." + (let* ((test-dir (car test-files)) + (files (cdr test-files)) + (output (files-tests--insert-directory-output test-dir))) + (dolist (file files) + (should (string-match-p file output))))) + + (defun files-tests--insert-directory-shows-given-free (dir &optional + info-func) + "Run `insert-directory' and verify it reports the correct available space. +Stub `file-system-info' to ensure the available space is consistent, +either with the given stub function or a default one using test data." + (cl-letf (((symbol-function 'file-system-info) + (or info-func + (files-tests--make-file-system-info-stub)))) + (should (string-match-p (cadr + (files-tests--look-up-free-data dir)) + (files-tests--insert-directory-output dir t))))) + + (ert-deftest files-tests-insert-directory-shows-free () + "Test that verbose `insert-directory' shows the correct available space." + (files-tests--insert-directory-shows-given-free + test-dir + (files-tests--make-file-system-info-stub test-dir))) + + (ert-deftest files-tests-bug-50630 () + "Verify verbose `insert-directory' shows free space of the target directory. +The current directory at call time should not affect the result (Bug#50630)." + (let ((default-directory test-dir-other)) + (files-tests--insert-directory-shows-given-free test-dir)))) + (provide 'dired-tests) ;;; dired-tests.el ends here diff --git a/test/lisp/files-tests.el b/test/lisp/files-tests.el index d3d58aad5f..462048802f 100644 --- a/test/lisp/files-tests.el +++ b/test/lisp/files-tests.el @@ -1822,79 +1822,5 @@ Prompt users for any modified buffer with `buffer-offer-save' non-nil." (should (equal (file-name-split "/foo/bar/") '("" "foo" "bar" ""))) (should (equal (file-name-split "foo/bar/") '("foo" "bar" "")))) -;; `insert-directory' output tests. -(let* ((data-dir "insert-directory") - (test-dir (file-name-as-directory - (ert-resource-file - (concat data-dir "/test_dir")))) - (test-dir-other (file-name-as-directory - (ert-resource-file - (concat data-dir "/test_dir_other")))) - (test-files `(,test-dir "foo" "bar")) ;expected files to be found - ;; Free space test data for `insert-directory'. - ;; Meaning: (path free-space-bytes-to-stub expected-free-space-string) - (free-data `((,test-dir 10 "available 10 B") - (,test-dir-other 100 "available 100 B") - (:default 999 "available 999 B")))) - - - (defun files-tests--look-up-free-data (path) - "Look up free space test data, with a default for unspecified paths." - (let ((path (file-name-as-directory path))) - (cdr (or (assoc path free-data) - (assoc :default free-data))))) - - (defun files-tests--make-file-system-info-stub (&optional static-path) - "Return a stub for `file-system-info' using dynamic or static test data. -If that data should be static, pass STATIC-PATH to choose which -path's data to use." - (lambda (path) - (let* ((path (cond (static-path) - ;; file-system-info knows how to handle ".", so we - ;; do the same thing - ((equal "." path) default-directory) - (path))) - (return-size - (car (files-tests--look-up-free-data path)))) - (list return-size return-size return-size)))) - - (defun files-tests--insert-directory-output (dir &optional verbose) - "Run `insert-directory' and return its output." - (with-current-buffer-window "files-tests--insert-directory" nil nil - (insert-directory dir "-l" nil t) - (buffer-substring-no-properties (point-min) (point-max)))) - - (ert-deftest files-tests-insert-directory-shows-files () - "Verify `insert-directory' reports the files in the directory." - (let* ((test-dir (car test-files)) - (files (cdr test-files)) - (output (files-tests--insert-directory-output test-dir))) - (dolist (file files) - (should (string-match-p file output))))) - - (defun files-tests--insert-directory-shows-given-free (dir &optional - info-func) - "Run `insert-directory' and verify it reports the correct available space. -Stub `file-system-info' to ensure the available space is consistent, -either with the given stub function or a default one using test data." - (cl-letf (((symbol-function 'file-system-info) - (or info-func - (files-tests--make-file-system-info-stub)))) - (should (string-match-p (cadr - (files-tests--look-up-free-data dir)) - (files-tests--insert-directory-output dir t))))) - - (ert-deftest files-tests-insert-directory-shows-free () - "Test that verbose `insert-directory' shows the correct available space." - (files-tests--insert-directory-shows-given-free - test-dir - (files-tests--make-file-system-info-stub test-dir))) - - (ert-deftest files-tests-bug-50630 () - "Verify verbose `insert-directory' shows free space of the target directory. -The current directory at call time should not affect the result (Bug#50630)." - (let ((default-directory test-dir-other)) - (files-tests--insert-directory-shows-given-free test-dir)))) - (provide 'files-tests) ;;; files-tests.el ends here commit ed7591c9055d4c90d2f59ffbd90aff45da2dc102 Author: Lars Ingebrigtsen Date: Wed Dec 1 20:31:14 2021 +0100 Fix "SEE ALSO" buttons in some man pages * lisp/man.el (Man-highlight-references0): Don't include "and" in the links (bug#52229). diff --git a/lisp/man.el b/lisp/man.el index 2bde1fc7fb..fff31baa5f 100644 --- a/lisp/man.el +++ b/lisp/man.el @@ -1334,7 +1334,7 @@ default type, `Man-xref-man-page' is used for the buttons." (defun Man-highlight-references0 (start-section regexp button-pos target type) ;; Based on `Man-build-references-alist' - (when (or (null start-section) ;; Search regardless of sections. + (when (or (null start-section) ;; Search regardless of sections. ;; Section header is in this chunk. (Man-find-section start-section)) (let ((end (if start-section @@ -1347,18 +1347,24 @@ default type, `Man-xref-man-page' is used for the buttons." (goto-char (point-min)) nil))) (while (re-search-forward regexp end t) - ;; An overlay button is preferable because the underlying text - ;; may have text property highlights (Bug#7881). - (make-button - (match-beginning button-pos) - (match-end button-pos) - 'type type - 'Man-target-string (cond - ((numberp target) - (match-string target)) - ((functionp target) - target) - (t nil))))))) + (let ((b (match-beginning button-pos)) + (e (match-end button-pos)) + (match (match-string button-pos))) + ;; Some lists of references end with ", and ...". Chop the + ;; "and" bit off before making a button. + (when (string-match "\\`and +" match) + (setq b (+ b (- (match-end 0) (match-beginning 0))))) + ;; An overlay button is preferable because the underlying text + ;; may have text property highlights (Bug#7881). + (make-button + b e + 'type type + 'Man-target-string (cond + ((numberp target) + (match-string target)) + ((functionp target) + target) + (t nil)))))))) (defun Man-cleanup-manpage (&optional interactive) "Remove overstriking and underlining from the current buffer. commit fd86829e6648338282632b9e97b11f1e76299193 Author: Andrea Corallo Date: Wed Dec 1 15:01:55 2021 +0100 Make use of `comp-cstr-shallow-copy' * lisp/emacs-lisp/comp.el (comp-mvar-propagate): Remove. (comp-fwprop-call, comp-fwprop-insn): Use `comp-cstr-shallow-copy'. * lisp/emacs-lisp/comp-cstr.el (comp-cstr-set-cmp-range) (comp-cstr-union-1-no-mem, comp-cstr-union-1) (comp-cstr-intersection-no-mem, comp-cstr-intersection) (comp-cstr-negation): Use `comp-cstr-shallow-copy'. diff --git a/lisp/emacs-lisp/comp-cstr.el b/lisp/emacs-lisp/comp-cstr.el index 7f0af2aaee..3e81619520 100644 --- a/lisp/emacs-lisp/comp-cstr.el +++ b/lisp/emacs-lisp/comp-cstr.el @@ -446,10 +446,7 @@ Return them as multiple value." ext-range) ext-range) (neg dst) nil) - (setf (typeset dst) (typeset old-dst) - (valset dst) (valset old-dst) - (range dst) (range old-dst) - (neg dst) (neg old-dst))))) + (comp-cstr-shallow-copy dst old-dst)))) (defmacro comp-cstr-set-range-for-arithm (dst src1 src2 &rest range-body) ;; Prevent some code duplication for `comp-cstr-add-2' @@ -589,10 +586,8 @@ DST is returned." (when (range pos) '(integer))))) (typeset neg))) - (setf (typeset dst) (typeset pos) - (valset dst) (valset pos) - (range dst) (range pos) - (neg dst) nil) + (comp-cstr-shallow-copy dst pos) + (setf (neg dst) nil) (cl-return-from comp-cstr-union-1-no-mem dst)) ;; Verify disjoint condition between positive types and @@ -639,15 +634,9 @@ DST is returned." (comp-range-negation (range neg)) (range pos)))))) - (if (comp-cstr-empty-p neg) - (setf (typeset dst) (typeset pos) - (valset dst) (valset pos) - (range dst) (range pos) - (neg dst) nil) - (setf (typeset dst) (typeset neg) - (valset dst) (valset neg) - (range dst) (range neg) - (neg dst) (neg neg))))) + (comp-cstr-shallow-copy dst (if (comp-cstr-empty-p neg) + pos + neg)))) ;; (not null) => t (when (and (neg dst) @@ -671,10 +660,7 @@ DST is returned." (mapcar #'comp-cstr-copy srcs) (apply #'comp-cstr-union-1-no-mem range srcs) mem-h)))) - (setf (typeset dst) (typeset res) - (valset dst) (valset res) - (range dst) (range res) - (neg dst) (neg res)) + (comp-cstr-shallow-copy dst res) res))) (cl-defun comp-cstr-intersection-homogeneous (dst &rest srcs) @@ -761,10 +747,8 @@ Non memoized version of `comp-cstr-intersection-no-mem'." ;; In case pos is not relevant return directly the content ;; of neg. (when (equal (typeset pos) '(t)) - (setf (typeset dst) (typeset neg) - (valset dst) (valset neg) - (range dst) (range neg) - (neg dst) t) + (comp-cstr-shallow-copy dst neg) + (setf (neg dst) t) ;; (not t) => nil (when (and (null (valset dst)) @@ -808,10 +792,8 @@ Non memoized version of `comp-cstr-intersection-no-mem'." (cl-set-difference (valset pos) (valset neg))) ;; Return a non negated form. - (setf (typeset dst) (typeset pos) - (valset dst) (valset pos) - (range dst) (range pos) - (neg dst) nil))) + (comp-cstr-shallow-copy dst pos) + (setf (neg dst) nil))) dst)))) @@ -1016,10 +998,7 @@ DST is returned." (mapcar #'comp-cstr-copy srcs) (apply #'comp-cstr-intersection-no-mem srcs) mem-h)))) - (setf (typeset dst) (typeset res) - (valset dst) (valset res) - (range dst) (range res) - (neg dst) (neg res)) + (comp-cstr-shallow-copy dst res) res))) (defun comp-cstr-intersection-no-hashcons (dst &rest srcs) @@ -1075,10 +1054,9 @@ DST is returned." (valset dst) () (range dst) nil (neg dst) nil)) - (t (setf (typeset dst) (typeset src) - (valset dst) (valset src) - (range dst) (range src) - (neg dst) (not (neg src))))) + (t + (comp-cstr-shallow-copy dst src) + (setf (neg dst) (not (neg src))))) dst)) (defun comp-cstr-value-negation (dst src) diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el index 0a10505257..b51224088f 100644 --- a/lisp/emacs-lisp/comp.el +++ b/lisp/emacs-lisp/comp.el @@ -3086,13 +3086,6 @@ Forward propagate immediate involed in assignments." ; FIXME: Typo. Involved or (`(setimm ,lval ,v) (setf (comp-cstr-imm lval) v)))))) -(defun comp-mvar-propagate (lval rval) - "Propagate into LVAL properties of RVAL." - (setf (comp-mvar-typeset lval) (comp-mvar-typeset rval) - (comp-mvar-valset lval) (comp-mvar-valset rval) - (comp-mvar-range lval) (comp-mvar-range rval) - (comp-mvar-neg lval) (comp-mvar-neg rval))) - (defun comp-function-foldable-p (f args) "Given function F called with ARGS, return non-nil when optimizable." (and (comp-function-pure-p f) @@ -3142,10 +3135,7 @@ Fold the call in case." (when (comp-cstr-empty-p cstr) ;; Store it to be rewritten as non local exit. (setf (comp-block-lap-non-ret-insn comp-block) insn)) - (setf (comp-mvar-range lval) (comp-cstr-range cstr) - (comp-mvar-valset lval) (comp-cstr-valset cstr) - (comp-mvar-typeset lval) (comp-cstr-typeset cstr) - (comp-mvar-neg lval) (comp-cstr-neg cstr)))) + (comp-cstr-shallow-copy lval cstr))) (cl-case f (+ (comp-cstr-add lval args)) (- (comp-cstr-sub lval args)) @@ -3163,9 +3153,9 @@ Fold the call in case." (let ((f (comp-func-name (gethash f (comp-ctxt-funcs-h comp-ctxt))))) (comp-fwprop-call insn lval f args))) (_ - (comp-mvar-propagate lval rval)))) + (comp-cstr-shallow-copy lval rval)))) (`(assume ,lval ,(and (pred comp-mvar-p) rval)) - (comp-mvar-propagate lval rval)) + (comp-cstr-shallow-copy lval rval)) (`(assume ,lval (,kind . ,operands)) (cl-case kind (and commit f3284d5acd96a83b1eead20286e1ba0f81741ac3 Author: Andrea Corallo Date: Wed Dec 1 14:39:33 2021 +0100 * Redefine `comp-cstr-shallow-copy' * lisp/emacs-lisp/comp-cstr.el (comp-cstr): Don't synthesize copier function. (comp-cstr-shallow-copy): New function. (comp-cstr-=): Use `copy-sequence'. diff --git a/lisp/emacs-lisp/comp-cstr.el b/lisp/emacs-lisp/comp-cstr.el index 5518cdb4c9..7f0af2aaee 100644 --- a/lisp/emacs-lisp/comp-cstr.el +++ b/lisp/emacs-lisp/comp-cstr.el @@ -70,7 +70,7 @@ (irange &aux (range (list irange)) (typeset ()))) - (:copier comp-cstr-shallow-copy)) + (:copier nil)) "Internal representation of a type/value constraint." (typeset '(t) :type list :documentation "List of possible types the mvar can assume. @@ -133,6 +133,14 @@ Integer values are handled in the `range' slot.") :range (copy-tree (range cstr)) :neg (neg cstr)))) +(defsubst comp-cstr-shallow-copy (dst src) + "Copy the content of SRC into DST." + (with-comp-cstr-accessors + (setf (range dst) (range src) + (valset dst) (valset src) + (typeset dst) (typeset src) + (neg dst) (neg src)))) + (defsubst comp-cstr-empty-p (cstr) "Return t if CSTR is equivalent to the nil type specifier or nil otherwise." (with-comp-cstr-accessors @@ -883,7 +891,7 @@ Non memoized version of `comp-cstr-intersection-no-mem'." "Constraint OP1 being = OP2 setting the result into DST." (with-comp-cstr-accessors (cl-flet ((relax-cstr (cstr) - (setf cstr (comp-cstr-shallow-copy cstr)) + (setf cstr (copy-sequence cstr)) ;; If can be any float extend it to all integers. (when (memq 'float (typeset cstr)) (setf (range cstr) '((- . +)))) commit c35c86a353c7dd6d4130913c532aba026a5a6562 Author: Andrea Corallo Date: Wed Dec 1 11:23:25 2021 +0100 * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Decl struct predicates as pure diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 1852471bcb..9c9a778f04 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -3050,7 +3050,7 @@ To see the documentation for a defined struct type, use `(,predicate cl-x)))) (when pred-form (push `(,defsym ,predicate (cl-x) - (declare (side-effect-free error-free)) + (declare (side-effect-free error-free) (pure t)) ,(if (eq (car pred-form) 'and) (append pred-form '(t)) `(and ,pred-form t))) commit f38dfa56a0cfef77c2b0d8bb2869642a4e3b2ae4 (tag: refs/tags/emacs-28.0.90) Author: Stefan Kangas Date: Wed Dec 1 21:11:38 2021 +0100 ; Update loaddefs files. diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index dbf86af456..58de4c0cc4 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el @@ -39511,11 +39511,21 @@ Zone out, completely." t nil) ;;;;;; "eshell/em-term.el" "eshell/em-tramp.el" "eshell/em-unix.el" ;;;;;; "eshell/em-xtra.el" "faces.el" "files.el" "font-core.el" ;;;;;; "font-lock.el" "format.el" "frame.el" "help.el" "hfy-cmap.el" -;;;;;; "ibuf-ext.el" "indent.el" "international/characters.el" "international/charscript.el" -;;;;;; "international/cp51932.el" "international/emoji-zwj.el" "international/eucjp-ms.el" +;;;;;; "ibuf-ext.el" "indent.el" "international/characters.el" "international/charprop.el" +;;;;;; "international/charscript.el" "international/cp51932.el" +;;;;;; "international/emoji-zwj.el" "international/eucjp-ms.el" ;;;;;; "international/iso-transl.el" "international/mule-cmds.el" -;;;;;; "international/mule-conf.el" "international/mule.el" "isearch.el" -;;;;;; "jit-lock.el" "jka-cmpr-hook.el" "language/burmese.el" "language/cham.el" +;;;;;; "international/mule-conf.el" "international/mule.el" "international/uni-bidi.el" +;;;;;; "international/uni-brackets.el" "international/uni-category.el" +;;;;;; "international/uni-combining.el" "international/uni-comment.el" +;;;;;; "international/uni-decimal.el" "international/uni-decomposition.el" +;;;;;; "international/uni-digit.el" "international/uni-lowercase.el" +;;;;;; "international/uni-mirrored.el" "international/uni-name.el" +;;;;;; "international/uni-numeric.el" "international/uni-old-name.el" +;;;;;; "international/uni-special-lowercase.el" "international/uni-special-titlecase.el" +;;;;;; "international/uni-special-uppercase.el" "international/uni-titlecase.el" +;;;;;; "international/uni-uppercase.el" "isearch.el" "jit-lock.el" +;;;;;; "jka-cmpr-hook.el" "language/burmese.el" "language/cham.el" ;;;;;; "language/chinese.el" "language/cyrillic.el" "language/czech.el" ;;;;;; "language/english.el" "language/ethiopic.el" "language/european.el" ;;;;;; "language/georgian.el" "language/greek.el" "language/hebrew.el" commit ec3b6fa8e18a64616af057195f86a4c8b09f9ccd Author: Lars Ingebrigtsen Date: Wed Dec 1 20:16:29 2021 +0100 Make `C-x C-d' require either an existing directory or a wildcard * lisp/files.el (list-directory): Require either an existing directory or a wildcard (bug#25807). diff --git a/lisp/files.el b/lisp/files.el index f72723ab7d..c96e79cc63 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -7211,11 +7211,18 @@ DIRNAME is globbed by the shell if necessary. Prefix arg (second arg if noninteractive) means supply -l switch to `ls'. Actions controlled by variables `list-directory-brief-switches' and `list-directory-verbose-switches'." - (interactive (let ((pfx current-prefix-arg)) - (list (read-directory-name (if pfx "List directory (verbose): " - "List directory (brief): ") - nil default-directory nil) - pfx))) + (interactive + (let ((pfx current-prefix-arg)) + (list (read-file-name + (if pfx "List directory (verbose): " + "List directory (brief): ") + nil default-directory t + nil + (lambda (file) + (or (file-directory-p file) + (insert-directory-wildcard-in-dir-p + (expand-file-name file))))) + pfx))) (let ((switches (if verbose list-directory-verbose-switches list-directory-brief-switches)) buffer) commit b3d4b18507da5bdadf7423a4c1ddca5de667487f Author: Stefan Kangas Date: Wed Dec 1 20:15:20 2021 +0100 ; make change-history-commit diff --git a/ChangeLog.3 b/ChangeLog.3 index 6e621823ff..fecad62af0 100644 --- a/ChangeLog.3 +++ b/ChangeLog.3 @@ -1,3 +1,33 @@ +2021-12-01 Juri Linkov + + * lisp/repeat.el: Use same logic for repeat-check-key and repeat-exit-timeout. + + * lisp/repeat.el (repeat-check-key): Use for repeat-check-key the same logic + as is used for repeat-exit-timeout in repeat-post-hook (bug#51390). + (repeat-post-hook): Check for repeat-exit-timeout symbol property. + +2021-12-01 Juri Linkov + + * lisp/help.el (help--analyze-key): Prefer posn-set-point over mouse-set-point + + * lisp/help.el (help--analyze-key): Use posn-set-point instead of + mouse-set-point that runs the hook mouse-leave-buffer-hook via + mouse-minibuffer-check. Using posn-set-point also unnecessitates + extra conditions added in bug#51421. + + * lisp/isearch.el (isearch-describe-key, isearch-describe-mode): + Add precautions to not call isearch-update when the executed + command exited isearch-mode (bug#51173). + +2021-12-01 Stefan Kangas + + Bump Emacs version to 28.0.90 + + * README: + * configure.ac: + * msdos/sed2v2.inp: + * nt/README.W32: Bump Emacs version to 28.0.90. + 2021-12-01 Alan Mackenzie CC Mode: Recognise "struct foo {" as introducing a type declaration @@ -233383,7 +233413,7 @@ This file records repository revisions from commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to -commit 2be090d5d3002e2ddfc8dbe46c29536f7410a86d (inclusive). +commit 334ff0232e07dad2ff5595b7f85c0f6f5efcb11c (inclusive). See ChangeLog.2 for earlier changes. ;; Local Variables: commit 02ebd790b785693a76361b8ab398f6654b51fe3f Author: Stefan Monnier Date: Wed Dec 1 14:05:09 2021 -0500 * lisp/emacs-lisp/cconv.el (cconv--lifted-arg): Simplify diff --git a/lisp/emacs-lisp/cconv.el b/lisp/emacs-lisp/cconv.el index f86744fd1a..7cec91bfa8 100644 --- a/lisp/emacs-lisp/cconv.el +++ b/lisp/emacs-lisp/cconv.el @@ -313,12 +313,12 @@ such calls." (`(internal-get-closed-var . ,_) ;; The variable is captured. mapping) - (`(car-safe (internal-get-closed-var . ,_)) + (`(car-safe ,exp) ;; The variable is mutably captured; skip ;; the indirection step because the variable is ;; passed "by reference" to the λ-lifted function. - (cadr mapping)) - ((or '() `(car-safe ,(pred symbolp))) + exp) + (_ ;; The variable is not captured; use the (shadowed) variable value. ;; (If the mapping is `(car-safe SYMBOL)', SYMBOL is always VAR. var)))) commit cbcf8a616e515de22bb2b6cc40daa74c30ee2414 Author: Lars Ingebrigtsen Date: Wed Dec 1 19:49:07 2021 +0100 Fix table-fixed-width-mode when typing fast * lisp/textmodes/table.el (table-with-cache-buffer): Use the value of table-fixed-width-mode in the correct buffer (bug#26701). diff --git a/lisp/textmodes/table.el b/lisp/textmodes/table.el index fef5ad2c7a..ca99d562e4 100644 --- a/lisp/textmodes/table.el +++ b/lisp/textmodes/table.el @@ -1195,6 +1195,21 @@ executing body forms.") (easy-menu-add-item (current-global-map) '("menu-bar" "tools") table-global-menu-map) +;;;###autoload +(define-minor-mode table-fixed-width-mode + "Cell width is fixed when this is non-nil. +Normally it should be nil for allowing automatic cell width expansion +that widens a cell when it is necessary. When non-nil, typing in a +cell does not automatically expand the cell width. A word that is too +long to fit in a cell is chopped into multiple lines. The chopped +location is indicated by `table-word-continuation-char'. This +variable's value can be toggled by \\[table-fixed-width-mode] at +run-time." + :tag "Fix Cell Width" + :group 'table + (table--finish-delayed-tasks) + (table--update-cell-face)) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; Macros @@ -1219,43 +1234,49 @@ original buffer's point is moved to the location that corresponds to the last cache point coordinate." (declare (debug (body)) (indent 0)) (let ((height-expansion (make-symbol "height-expansion-var-symbol")) - (width-expansion (make-symbol "width-expansion-var-symbol"))) - `(let (,height-expansion ,width-expansion) + (width-expansion (make-symbol "width-expansion-var-symbol")) + (fixed-width (make-symbol "fixed-width"))) + `(let ((,fixed-width table-fixed-width-mode) + ,height-expansion ,width-expansion) ;; make sure cache has valid data unless it is explicitly inhibited. (unless table-inhibit-update (table-recognize-cell)) (with-current-buffer (get-buffer-create table-cache-buffer-name) - ;; goto the cell coordinate based on `table-cell-cache-point-coordinate'. - (set-mark (table--goto-coordinate table-cell-cache-mark-coordinate)) - (table--goto-coordinate table-cell-cache-point-coordinate) - (table--untabify-line) - ;; always reset before executing body forms because auto-fill behavior is the default. - (setq table-inhibit-auto-fill-paragraph nil) - ;; do the body - ,@body - ;; fill paragraph unless the body does not want to by setting `table-inhibit-auto-fill-paragraph'. - (unless table-inhibit-auto-fill-paragraph - (if (and table-cell-info-justify - (not (eq table-cell-info-justify 'left))) - (table--fill-region (point-min) (point-max)) - (table--fill-region - (save-excursion (forward-paragraph -1) (point)) - (save-excursion (forward-paragraph 1) (point))))) - ;; keep the updated cell coordinate. - (setq table-cell-cache-point-coordinate (table--get-coordinate)) - ;; determine the cell width expansion. - (setq ,width-expansion (table--measure-max-width)) - (if (<= ,width-expansion table-cell-info-width) nil - (table--fill-region (point-min) (point-max) ,width-expansion) - ;; keep the updated cell coordinate. - (setq table-cell-cache-point-coordinate (table--get-coordinate))) - (setq ,width-expansion (- ,width-expansion table-cell-info-width)) - ;; determine the cell height expansion. - (if (looking-at "\\s *\\'") nil - (goto-char (point-min)) - (if (re-search-forward "\\(\\s *\\)\\'" nil t) - (goto-char (match-beginning 1)))) - (setq ,height-expansion (- (cdr (table--get-coordinate)) (1- table-cell-info-height)))) + (let ((table-fixed-width-mode ,fixed-width)) + ;; Go to the cell coordinate based on + ;; `table-cell-cache-point-coordinate'. + (set-mark (table--goto-coordinate table-cell-cache-mark-coordinate)) + (table--goto-coordinate table-cell-cache-point-coordinate) + (table--untabify-line) + ;; Always reset before executing body forms because + ;; auto-fill behavior is the default. + (setq table-inhibit-auto-fill-paragraph nil) + ;; Do the body + ,@body + ;; Fill paragraph unless the body does not want to by + ;; setting `table-inhibit-auto-fill-paragraph'. + (unless table-inhibit-auto-fill-paragraph + (if (and table-cell-info-justify + (not (eq table-cell-info-justify 'left))) + (table--fill-region (point-min) (point-max)) + (table--fill-region + (save-excursion (forward-paragraph -1) (point)) + (save-excursion (forward-paragraph 1) (point))))) + ;; Keep the updated cell coordinate. + (setq table-cell-cache-point-coordinate (table--get-coordinate)) + ;; Determine the cell width expansion. + (setq ,width-expansion (table--measure-max-width)) + (if (<= ,width-expansion table-cell-info-width) nil + (table--fill-region (point-min) (point-max) ,width-expansion) + ;; Keep the updated cell coordinate. + (setq table-cell-cache-point-coordinate (table--get-coordinate))) + (setq ,width-expansion (- ,width-expansion table-cell-info-width)) + ;; Determine the cell height expansion. + (if (looking-at "\\s *\\'") nil + (goto-char (point-min)) + (if (re-search-forward "\\(\\s *\\)\\'" nil t) + (goto-char (match-beginning 1)))) + (setq ,height-expansion (- (cdr (table--get-coordinate)) (1- table-cell-info-height))))) ;; now back to the table buffer. ;; expand the cell width in the table buffer if necessary. (if (> ,width-expansion 0) @@ -2822,21 +2843,6 @@ or `top', `middle', `bottom' or `none' for vertical." (table-recognize-cell 'force) (table--justify-cell-contents justify)))))) -;;;###autoload -(define-minor-mode table-fixed-width-mode - "Cell width is fixed when this is non-nil. -Normally it should be nil for allowing automatic cell width expansion -that widens a cell when it is necessary. When non-nil, typing in a -cell does not automatically expand the cell width. A word that is too -long to fit in a cell is chopped into multiple lines. The chopped -location is indicated by `table-word-continuation-char'. This -variable's value can be toggled by \\[table-fixed-width-mode] at -run-time." - :tag "Fix Cell Width" - :group 'table - (table--finish-delayed-tasks) - (table--update-cell-face)) - ;;;###autoload (defun table-query-dimension (&optional where) "Return the dimension of the current cell and the current table. commit e2e2dd4890f7baba31faf667b343a34e68455f23 Author: Eli Zaretskii Date: Wed Dec 1 20:11:21 2021 +0200 Mention 'glyphless-display-mode' in conjunction with bidi display * doc/emacs/mule.texi (Bidirectional Editing): Mention 'glyphless-display-mode'. (Bug#27544) diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi index 83c775df0e..121d696730 100644 --- a/doc/emacs/mule.texi +++ b/doc/emacs/mule.texi @@ -1992,3 +1992,16 @@ or right of the current screen position, moving to the next or previous screen line as appropriate. Note that this might potentially move point many buffer positions away, depending on the surrounding bidirectional context. + +@cindex bidi formatting control characters + Bidirectional text sometimes uses special formatting characters to +affect the reordering of text for display. The @sc{lrm} and @sc{rlm} +characters, mentioned above, are two such characters, but there are +more of them. They are by default displayed as thin space glyphs on +GUI frames, and as simple spaces on text-mode frames. If you want to +be aware of these special control characters, so that their effect on +display does not come as a surprise, you can turn on the +@code{glyphless-display-mode} (@pxref{Text Display}). This minor mode +will cause these formatting characters to be displayed as acronyms +inside a small box, so that they stand out on display, and make their +effect easier to understand. commit 334ff0232e07dad2ff5595b7f85c0f6f5efcb11c Author: Juri Linkov Date: Wed Dec 1 19:41:37 2021 +0200 * lisp/repeat.el: Use same logic for repeat-check-key and repeat-exit-timeout. * lisp/repeat.el (repeat-check-key): Use for repeat-check-key the same logic as is used for repeat-exit-timeout in repeat-post-hook (bug#51390). (repeat-post-hook): Check for repeat-exit-timeout symbol property. diff --git a/lisp/repeat.el b/lisp/repeat.el index 664a4d68ec..308ba46a26 100644 --- a/lisp/repeat.el +++ b/lisp/repeat.el @@ -345,7 +345,9 @@ For example, you can set it to like `isearch-exit'." (defcustom repeat-exit-timeout nil "Break the repetition chain of keys after specified timeout. When a number, exit the transient repeating mode after idle time -of the specified number of seconds." +of the specified number of seconds. +You can also set the property `repeat-exit-timeout' on the command symbol. +This property can override the value of this variable." :type '(choice (const :tag "No timeout to exit repeating sequence" nil) (number :tag "Timeout in seconds to exit repeating")) :group 'convenience @@ -431,8 +433,9 @@ See `describe-repeat-maps' for a list of all repeatable commands." (defun repeat-check-key (key map) "Check if the last key is suitable to activate the repeating MAP." - (let ((property (repeat--command-property 'repeat-check-key))) - (or (if repeat-check-key (eq property 'no) (not (eq property t))) + (let* ((prop (repeat--command-property 'repeat-check-key)) + (check-key (unless (eq prop 'no) (or prop repeat-check-key)))) + (or (not check-key) (lookup-key map (vector key)) ;; Try without modifiers: (lookup-key map (vector (event-basic-type key)))))) @@ -475,14 +478,16 @@ See `describe-repeat-maps' for a list of all repeatable commands." (cancel-timer repeat-exit-timer) (setq repeat-exit-timer nil)) - (when repeat-exit-timeout - (setq repeat-exit-timer - (run-with-idle-timer - repeat-exit-timeout nil - (lambda () - (setq repeat-in-progress nil) - (funcall exitfun) - (funcall repeat-echo-function nil))))))))))) + (let* ((prop (repeat--command-property 'repeat-exit-timeout)) + (timeout (unless (eq prop 'no) (or prop repeat-exit-timeout)))) + (when timeout + (setq repeat-exit-timer + (run-with-idle-timer + timeout nil + (lambda () + (setq repeat-in-progress nil) + (funcall exitfun) + (funcall repeat-echo-function nil)))))))))))) (setq repeat-map nil) (setq repeat--prev-mb (cons (minibuffer-depth) current-minibuffer-command)) commit 8230a47ecc8c11f518ee20a9055c0c27339a6730 Author: Juri Linkov Date: Wed Dec 1 19:36:00 2021 +0200 * lisp/help.el (help--analyze-key): Prefer posn-set-point over mouse-set-point * lisp/help.el (help--analyze-key): Use posn-set-point instead of mouse-set-point that runs the hook mouse-leave-buffer-hook via mouse-minibuffer-check. Using posn-set-point also unnecessitates extra conditions added in bug#51421. * lisp/isearch.el (isearch-describe-key, isearch-describe-mode): Add precautions to not call isearch-update when the executed command exited isearch-mode (bug#51173). diff --git a/lisp/help.el b/lisp/help.el index 21c8255c69..47faf44b37 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -697,18 +697,14 @@ in the selected window." (mouse-msg (if (or (memq 'click modifiers) (memq 'down modifiers) (memq 'drag modifiers)) " at that spot" "")) - ;; Use `mouse-set-point' to handle the case when a menu item + ;; Use `posn-set-point' to handle the case when a menu item ;; is selected from the context menu that should describe KEY ;; at the position of mouse click that opened the context menu. - ;; When no mouse was involved, don't use `mouse-set-point'. - (defn (if (or buffer - ;; Clicks on the menu bar produce "event" that - ;; is just '(menu-bar)', for which - ;; `mouse-set-point' is not useful. - (and (not (windowp (posn-window (event-start event)))) - (not (framep (posn-window (event-start event)))))) + ;; When no mouse was involved, don't use `posn-set-point'. + (defn (if buffer (key-binding key t) - (save-excursion (mouse-set-point event) (key-binding key t))))) + (save-excursion (posn-set-point (event-end event)) + (key-binding key t))))) ;; Handle the case where we faked an entry in "Select and Paste" menu. (when (and (eq defn nil) (stringp (aref key (1- (length key)))) diff --git a/lisp/isearch.el b/lisp/isearch.el index d9a48cfcf2..c382d0ad2a 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -521,14 +521,14 @@ This is like `describe-bindings', but displays only Isearch keys." (interactive) (let ((display-buffer-overriding-action isearch--display-help-action)) (call-interactively 'describe-key)) - (isearch-update)) + (when isearch-mode (isearch-update))) (defun isearch-describe-mode () "Display documentation of Isearch mode." (interactive) (let ((display-buffer-overriding-action isearch--display-help-action)) (describe-function 'isearch-forward)) - (isearch-update)) + (when isearch-mode (isearch-update))) (defalias 'isearch-mode-help 'isearch-describe-mode) commit 740ae2818fa585b52b7e0b29f1612a812959d4d3 Author: Stefan Kangas Date: Wed Dec 1 17:42:52 2021 +0100 Bump Emacs version to 28.0.90 * README: * configure.ac: * msdos/sed2v2.inp: * nt/README.W32: Bump Emacs version to 28.0.90. diff --git a/README b/README index 3677e88940..83382f1b28 100644 --- a/README +++ b/README @@ -2,7 +2,7 @@ Copyright (C) 2001-2021 Free Software Foundation, Inc. See the end of the file for license conditions. -This directory tree holds version 28.0.60 of GNU Emacs, the extensible, +This directory tree holds version 28.0.90 of GNU Emacs, the extensible, customizable, self-documenting real-time display editor. The file INSTALL in this directory says how to build and install GNU diff --git a/configure.ac b/configure.ac index 253f5bfcd6..766811b8a8 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ dnl along with GNU Emacs. If not, see . AC_PREREQ(2.65) dnl Note this is parsed by (at least) make-dist and lisp/cedet/ede/emacs.el. -AC_INIT(GNU Emacs, 28.0.60, bug-gnu-emacs@gnu.org, , https://www.gnu.org/software/emacs/) +AC_INIT(GNU Emacs, 28.0.90, bug-gnu-emacs@gnu.org, , https://www.gnu.org/software/emacs/) dnl Set emacs_config_options to the options of 'configure', quoted for the shell, dnl and then quoted again for a C string. Separate options with spaces. diff --git a/msdos/sed2v2.inp b/msdos/sed2v2.inp index ff3d4f2064..5238f2dfc6 100644 --- a/msdos/sed2v2.inp +++ b/msdos/sed2v2.inp @@ -66,7 +66,7 @@ /^#undef PACKAGE_NAME/s/^.*$/#define PACKAGE_NAME ""/ /^#undef PACKAGE_STRING/s/^.*$/#define PACKAGE_STRING ""/ /^#undef PACKAGE_TARNAME/s/^.*$/#define PACKAGE_TARNAME ""/ -/^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION "28.0.60"/ +/^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION "28.0.90"/ /^#undef SYSTEM_TYPE/s/^.*$/#define SYSTEM_TYPE "ms-dos"/ /^#undef HAVE_DECL_GETENV/s/^.*$/#define HAVE_DECL_GETENV 1/ /^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/ diff --git a/nt/README.W32 b/nt/README.W32 index a37695ecb1..7a7c1920dd 100644 --- a/nt/README.W32 +++ b/nt/README.W32 @@ -1,7 +1,7 @@ Copyright (C) 2001-2021 Free Software Foundation, Inc. See the end of the file for license conditions. - Emacs version 28.0.60 for MS-Windows + Emacs version 28.0.90 for MS-Windows This README file describes how to set up and run a precompiled distribution of the latest version of GNU Emacs for MS-Windows. You commit aa1d7dd867c7d4e06f1b0d3172adc095f3f19643 Author: Stefan Kangas Date: Wed Dec 1 17:38:49 2021 +0100 ; * etc/AUTHORS: Update. diff --git a/etc/AUTHORS b/etc/AUTHORS index b599809e3e..9625976120 100644 --- a/etc/AUTHORS +++ b/etc/AUTHORS @@ -9,8 +9,9 @@ Aaron Ecay: changed ob-R.el ob-core.el org-src.el ox-latex.el nsterm.m ob-awk.el ob-exp.el ob-python.el ob-tangle.el org-bibtex.el org-id.el org.el org.texi package.el paren.el -Aaron Jensen: changed frameset.el nsterm.m Info.plist.in flyspell.el - mouse.el server.el systhread.c w32term.c xdisp.c xterm.c +Aaron Jensen: changed frameset.el nsterm.m xdisp-tests.el xdisp.c + Info.plist.in flyspell.el mouse.el server.el systhread.c w32term.c + xterm.c Aaron Larson: co-wrote bibtex.el @@ -18,7 +19,7 @@ Aaron S. Hawley: wrote lisp-tests.el undo-tests.el and changed simple.el files.texi isearch.el morse.el sgml-mode.el tar-mode.el textmodes/table.el thingatpt.el add-log.el autoinsert.el building.texi calc.el cc-fonts.el comint.el compare-w.el custom.texi - diff.el edebug.el etags.el ffap.el files.el and 31 other files + diff.el edebug.el etags.el ffap.el files.el and 30 other files Abdó Roig-Maranges: changed org.el org-agenda.el ox-html.el ox-odt.el @@ -37,11 +38,14 @@ Adam Gołębiowski: changed lib-src/Makefile.in Adam Hupp: changed emacs.py emacs2.py emacs3.py gud.el progmodes/python.el +Adam Porter: changed tab-line.el cl-macs.el map.el control.texi + map-tests.el pcase-tests.el tab-bar.el + Adam Sjøgren: changed mml2015.el shr.el spam.el xterm.c blink.xpm braindamaged.xpm cry.xpm dead.xpm evil.xpm forced.xpm frown.xpm gnus-sum.el grin.xpm gtkutil.c indifferent.xpm message.el reverse-smile.xpm sad.xpm smile.xpm wry.xpm gnus-html.el - and 7 other files + and 10 other files Adam Sokolnicki: changed ruby-mode.el @@ -70,7 +74,7 @@ and changed nsterm.m nsfns.m nsfont.m nsterm.h nsmenu.m configure.ac Agustín Martín: changed ispell.el flyspell.el fixit.texi -Ahmed Khanzada: changed battery.el +Ahmed Khanzada: changed battery.el nsterm.m Aidan Gauland: wrote em-tramp.el and changed eshell.texi em-term.el em-unix.el erc-match.el em-cmpl.el @@ -85,6 +89,8 @@ and changed cc-mode.el perl-mode.el Akinori Musha: changed ruby-mode.el Makefile.in sieve-mode.el +Akira Kyle: changed eww.el process.c xwidget.c + Aki Vehtari: changed bibtex.el gnus-art.el gnus-score.el gnus-sum.el nnmail.el tar-mode.el @@ -97,25 +103,26 @@ Alakazam Petrofsky: changed hanoi.el Alan Mackenzie: wrote cc-awk.el and co-wrote cc-align.el cc-cmds.el cc-defs.el cc-engine.el cc-fonts.el cc-langs.el cc-mode.el cc-styles.el cc-vars.el -and changed cc-mode.texi bytecomp.el display.texi follow.el subr.el - edebug.el progmodes/compile.el programs.texi syntax.texi modes.texi - font-lock.el isearch.el text.texi help.el ispell.el lread.c syntax.c - windows.texi .dir-locals.el control.texi cus-start.el - and 148 other files +and changed cc-mode.texi minibuf.c bytecomp.el edebug.el follow.el + window.c display.texi subr.el syntax.texi progmodes/compile.el + programs.texi keyboard.c lisp.h modes.texi window.el windows.texi + cus-start.el eval.c font-lock.el isearch.el newcomment.el + and 166 other files Alan Modra: changed unexelf.c -Alan Schmitt: changed gnus-sum.el nnimap.el ob-ocaml.el org-faces.el +Alan Schmitt: co-wrote ox-koma-letter.el +and changed gnus-sum.el nnimap.el ob-ocaml.el org-faces.el Alan Shutko: changed diary-lib.el calendar.el bindings.el cal-hebrew.el easy-mmode.el gnus-sum.el ibuf-ext.el ibuffer.el lunar.el macros.el solar.el Alan Third: wrote dabbrev-tests.el image-transforms-tests.el -and changed nsterm.m nsterm.h nsfns.m nsmenu.m ns-win.el nsimage.m - image.c macfont.m configure.ac frame.el xdisp.c macos.texi display.texi - image.el xterm.c Info.plist.in conf_post.h dispextern.h frame.c frame.h - frames.texi and 21 other files +and changed nsterm.m nsterm.h nsfns.m image.c nsmenu.m configure.ac + nsimage.m ns-win.el macfont.m dispextern.h frame.el nsfont.m + display.texi xdisp.c frame.c frame.h macos.texi xterm.c .gitlab-ci.yml + Makefile.in emacs.c and 39 other files Alastair Burt: changed gnus-art.el smiley.el @@ -125,25 +132,104 @@ and changed sieve.el gnus-msg.el gnus.texi mail/sieve-manage.el Albert L. Ting: changed gnus-group.el mail-hist.el +Aleksandr Vityazev: changed tramp-compat.el + Aleksei Gusev: changed progmodes/compile.el -Alexandru Harsanyi: changed soap-client.el soap-inspect.el emacs3.py - vc-hooks.el vc.el xml.el +Alexander Adolf: wrote eudcb-macos-contacts.el +and changed eudc.texi + +Alexander Becher: changed vc-annotate.el + +Alexander Gramiak: changed w32term.c xterm.c nsterm.m dispextern.h + xdisp.c frame.c image.c nsgui.h w32gui.h xfns.c frame.el termhooks.h + w32fns.c w32term.h faces.el nsterm.h xfaces.c xterm.h frame.h xfont.c + configure.ac and 69 other files + +Alexander Haeckel: changed getset.el + +Alexander Klimov: changed files.el calc-graph.el files.texi man.el rx.el + sendmail.el + +Alexander Kreuzer: changed nnrss.el + +Alexander Kuleshov: changed dns-mode.el files.texi image-mode.el + keyboard.c ld-script.el xdisp.c + +Alexander L. Belikoff: wrote erc.el + +Alexander Miller: changed dispextern.h faces.el frame.c frame.h + frames.texi nsfns.m nsterm.m w32fns.c xfaces.c xfns.c xterm.c + +Alexander Pohoyda: co-wrote mail/rmailmm.el +and changed rmailsum.el man.el rmail.el sendmail.el + +Alexander Shopov: changed code-pages.el + +Alexander Vorobiev: changed org-compat.el + +Alexander Zhuckov: changed ebrowse.c + +Alexandre Adolphe: changed cus-face.el dispextern.h display.texi nsfont.m + nsterm.m w32term.c xdisp.c xfaces.c xterm.c + +Alexandre Duret-Lutz: changed nnmaildir.el + +Alexandre Garreau: changed message.el + +Alexandre Julliard: wrote vc-git.el +and changed vc.el ewoc.el + +Alexandre Oliva: wrote gnus-mlspl.el +and changed unexelf.c emacs-regex.c format.el iris4d.h iris5d.h unexsgi.c + +Alexandre Veyrenc: changed fr-refcard.tex + +Alexandru Harsanyi: wrote soap-client.el soap-inspect.el +and changed emacs3.py vc-hooks.el vc.el xml.el + +Alexandr Vityazev: changed shortdoc.el + +Alex Bochannek: changed gnus.texi gnus-sum.el gnus-score.el gnus-topic.el + gnus-util.el gnus-fun.el gnus-group.el gnus.el ange-ftp.el gnus-art.el + nnimap.el tramp-sh.el + +Alex Coventry: changed files.el + +Alex Dunn: changed subr-tests.el subr.el + +Alexei Khlebnikov: changed autorevert.el vc-git.el + +Alex Kosorukoff: changed org-capture.el + +Alex Mcgrath: changed rcirc.el -Alex Gramiak: wrote ansi-color.el conf-mode-tests.el cus-theme.el - erc-compat.el erc-hecomplete.el erc-join.el erc-lang.el erc-ring.el - erc.el gnus-mlspl.el master.el soap-client.el soap-inspect.el - spam-stat.el sql.el vc-git.el which-func.el +Alex Murray: changed erc-desktop-notifications.el network-stream.el + +Alex Ott: changed TUTORIAL.ru ede/files.el ru-refcard.tex base.el + cedet-files.el cpp-root.el ede.el ede/generic.el idle.el ispell.el + semantic/format.el + +Alex Reed: changed verilog-mode.el + +Alex Rezinsky: wrote which-func.el + +Alex Schroeder: wrote ansi-color.el cus-theme.el erc-compat.el + erc-hecomplete.el erc-join.el erc-lang.el erc-ring.el master.el + spam-stat.el sql.el and co-wrote longlines.el mail/rmailmm.el -and changed erc-track.el erc-button.el w32term.c xterm.c erc-stamp.el - nsterm.m xdisp.c dispextern.h frame.c image.c nsgui.h w32gui.h xfns.c - erc-match.el frame.el termhooks.h w32fns.c Makefile TUTORIAL.ru - erc-autoaway.el erc-nickserv.el and 215 other files +and changed erc.el erc-track.el erc-button.el erc-stamp.el erc-match.el + erc-autoaway.el erc-nickserv.el rcirc.texi Makefile erc-autojoin.el + erc-fill.el erc-pcomplete.el erc-complete.el erc-ibuffer.el + erc-members.el rmail.el comint.el custom.el erc-bbdb.el erc-chess.el + erc-ezbounce.el and 35 other files + +Alex Shinn: changed files.el Alfred Correira: changed generic-x.el Alfred M. Szmidt: changed rmail.el vc-svn.el html2text.el openbsd.h - progmodes/compile.el rmailsum.el + progmodes/compile.el rmailsum.el vc.el Alfredo Finelli: changed TUTORIAL.it @@ -151,10 +237,10 @@ Ali Bahrami: changed configure configure.ac sol2-10.h Alin C. Soare: changed lisp-mode.el hexl.el -Allen Li: changed abbrev.el abbrev-tests.el abbrevs.texi sending.texi - autoload.el bookmark.el comint.el dired-x.el misc.texi nsm.el - progmodes/compile.el ring-tests.el ring.el sequences.texi subr.el - xref.el +Allen Li: changed abbrev.el abbrev-tests.el abbrevs.texi recentf.el + sending.texi autoload.el bookmark.el comint.el dired-x.el gnus-group.el + misc.texi nsm.el progmodes/compile.el ring-tests.el ring.el + sequences.texi subr.el xref.el Allen S. Rout: changed org-capture.el @@ -166,14 +252,18 @@ Alp Aker: changed nsfont.m nsterm.m buff-menu.el nsfns.m nsmenu.m Álvar Jesús Ibeas Martín: changed TUTORIAL.es emacs-lisp-intro.texi +Alyssa Ross: changed progmodes/compile.el simple.el + Ami Fischman: changed bindings.el calendar.el diary-lib.el print.c savehist.el vc-git.el -Amin Bandali: changed erc.el erc-button.el erc-desktop-notifications.el - erc-track.el erc-autoaway.el erc-compat.el erc-fill.el erc-ibuffer.el - erc-imenu.el erc-join.el erc-lang.el erc-list.el erc-log.el - erc-match.el erc-notify.el erc-pcomplete.el erc-replace.el erc-ring.el - erc-services.el erc-sound.el erc-speedbar.el and 5 other files +Amin Bandali: changed erc.el erc-backend.el erc-button.el erc-track.el + erc-compat.el erc-dcc.el erc-desktop-notifications.el erc-match.el + erc-services.el erc-speedbar.el erc-status-sidebar.el erc.texi + erc-autoaway.el erc-fill.el erc-goodies.el erc-ibuffer.el erc-imenu.el + erc-join.el erc-lang.el erc-list.el erc-log.el and 11 other files + +Amos Bird: changed xfns.c Anand Mitra: changed gnus-sum.el @@ -183,12 +273,19 @@ Anders Lindgren: wrote autorevert.el cwarn.el faceup-test-basics.el faceup-test-files.el faceup.el follow.el and changed nsterm.m nsfns.m nsmenu.m nsterm.h font-lock.el nsimage.m README etags.c term.el window.el Info.plist.in compile.el diff-mode.el - ert.el faceup-test-mode.el faceup-test-this-file-directory.el loadup.el - lread.c ns-win.el nsfont.m test1.txt and 3 other files + ert.el faceup-test-mode.el faceup-test-this-file-directory.el + lisp-mode.el loadup.el lread.c ns-win.el nsfont.m and 4 other files Anders Waldenborg: changed emacsclient.c -Andrea Corallo: changed map-tests.el map.el +Andrea Corallo: wrote comp-cstr-tests.el comp-cstr.el comp-tests.el + comp.el +and changed comp.c pdumper.c lread.c bytecomp.el comp.h configure.ac + lisp.h startup.el loadup.el alloc.c data.c emacs.c .gitlab-ci.yml + nadvice.el cl-macs.el advice.el help.el lisp/Makefile.in package.el + Makefile.in comp-test-funcs.el and 62 other files + +André A. Gomes: changed ispell.el Andrea Rossetti: changed ruler-mode.el @@ -203,11 +300,11 @@ Andreas Büsching: changed emacsclient.c Andreas Fuchs: wrote erc-ezbounce.el erc-match.el erc-replace.el erc-truncate.el and co-wrote erc-fill.el -and changed erc.el erc-bbdb.el erc-button.el erc-log.el erc-stamp.el - erc-autoaway.el erc-autojoin.el erc-dcc.el erc-imenu.el erc-list.el - erc-members.el erc-menu.el erc-netsplit.el erc-notify.el erc-ring.el - erc-speedbar.el erc-track.el erc-xdcc.el gnus-registry.el mml-sec.el - mml2015.el +and changed erc.el erc-bbdb.el erc-button.el erc-log.el comp.c + erc-stamp.el comp.el erc-autoaway.el erc-autojoin.el erc-dcc.el + erc-imenu.el erc-list.el erc-members.el erc-menu.el erc-netsplit.el + erc-notify.el erc-ring.el erc-speedbar.el erc-track.el erc-xdcc.el + gnus-registry.el and 3 other files Andreas Jaeger: changed gnus-msg.el gnus-start.el gnus-xmas.el nnfolder.el nnml.el @@ -230,8 +327,8 @@ Andreas Rottmann: changed emacsclient.1 emacsclient.c misc.texi server.el Andreas Schwab: changed configure.ac lisp.h xdisp.c process.c alloc.c coding.c Makefile.in files.el fileio.c keyboard.c lread.c xterm.c fns.c - editfns.c emacs.c src/Makefile.in print.c eval.c font.c xfns.c sysdep.c - and 651 other files + src/Makefile.in editfns.c emacs.c print.c eval.c font.c xfns.c sysdep.c + and 656 other files Andreas Seltenreich: changed nnweb.el gnus.texi message.el gnus-sum.el gnus.el nnslashdot.el gnus-srvr.el gnus-util.el mm-url.el mm-uu.el @@ -251,23 +348,27 @@ Andre Spiegel: changed vc.el vc-hooks.el vc-cvs.el vc-rcs.el vc-sccs.el Andre Srinivasan: changed gnus-group.el gnus-sum.el gnus.texi message.el mm-decode.el mml.el nnmail.el +Andrew Barbarello: wrote erc-status-sidebar.el + Andrew Beals: changed spook.lines +Andrew Burgess: changed cua-base.el + Andrew Choi: changed macterm.c darwin.h mac-win.el sysdep.c emacs.c mac.c macfns.c fontset.c frame.c keyboard.c xfaces.c dispextern.h macmenu.c unexmacosx.c configure.ac frame.h macterm.h titdic-cnv.el xdisp.c alloc.c callproc.c and 27 other files -Andrew Cohen: wrote spam-wash.el -and changed nnir.el gnus-sum.el nnimap.el gnus-msg.el gnus.texi - gnus-group.el gnus-int.el dns.el gnus-art.el gnus-registry.el - gnus-srvr.el gnus.el nnheader.el nnspool.el - Andrew Csillag: wrote m4-mode.el Andrew Eggenberger: changed cl-extra.el seq.el -Andrew G Cohen: changed gnus-sum.el gnus-art.el +Andrew G Cohen: wrote nnselect.el spam-wash.el +and changed nnir.el gnus-sum.el nnimap.el gnus-msg.el gnus-group.el + gnus.texi gnus-int.el gnus-art.el gnus-cache.el gnus.el nnheader.el + nnspool.el auth-source.el dns.el gnus-agent.el gnus-cloud.el + gnus-registry.el gnus-srvr.el gnus-start.el nndiary.el nnfolder.el + and 5 other files Andrew Hall: changed paren.el @@ -289,6 +390,8 @@ Andrew Schein: changed sql.el Andrew Schwartzmeyer: changed subr-tests.el subr.el +Andrew Whatson: changed comp.el + Andrew W. Nosenko: changed tramp.el Andrew Zhilin: changed emacs22.png emacs22.ico @@ -299,10 +402,9 @@ Andrey Slusar: changed gnus-async.el gnus.el Andrey Zhdanov: changed gud.el -Andrii Kolomoiets: changed vc-hg.el progmodes/python.el vc-git.el vc.el - maintaining.texi vc-svn.el - -Andrzej Lichnerowicz: wrote ob-io.el +Andrii Kolomoiets: changed vc-hg.el progmodes/python.el vc.el vc-dir.el + vc-git.el cyril-util.el ewoc.el frame.c frame.el maintaining.texi + ns-win.el nsterm.h nsterm.m project.el vc-dispatcher.el vc-svn.el Andrzej P: changed gdb-mi.el @@ -332,16 +434,18 @@ Ansgar Burchardt: changed latin-ltx.el Antoine Beaupré: changed vc-git.el -Antoine Levitt: changed gnus-group.el gnus-sum.el message.texi ada-prj.el +Antoine Levitt: changed gnus-group.el gnus-sum.el message.texi ange-ftp.el cus-edit.el dired-x.el ebnf2ps.el emerge.el erc-button.el erc-goodies.el erc-stamp.el erc-track.el files.el find-file.el gnus-art.el gnus-uu.el gnus.el gnus.texi message.el mh-funcs.el - and 8 other files + mh-mime.el and 7 other files Antonin Houska: changed newcomment.el -Arash Esbati: changed reftex-vars.el reftex-ref.el reftex.el nnmaildir.el - reftex-auc.el reftex-cite.el reftex-dcr.el +Arash Esbati: changed reftex-vars.el reftex-auc.el reftex-ref.el + reftex.el nnmaildir.el reftex-cite.el reftex-dcr.el reftex-toc.el + +Arik Mitschang: changed smime.el Ari Roponen: changed xterm.c image.c atimer.c doc.c ftcrfont.c hash.texi mule.texi package.el startup.el subr.el svg.el time-date.el woman.el @@ -362,21 +466,32 @@ and changed smime.el mml-smime.el smime-ldap.el flymake.el gnus-art.el Arni Magnusson: wrote bat-mode.el and changed frames.texi generic-x.el texinfo.el +Arnold Noronha: changed ido.el + Artem Chuprina: changed message.el +Artem Loenko: changed src/Makefile.in + +Arthur Miller: changed help-fns.el ange-ftp.el bytecomp.el comp.c comp.el + dired.c dired.el files.texi help.texi lisp.h ls-lisp.el sysdep.c + tramp-adb.el tramp-rclone.el tramp-sh.el tramp-smb.el tramp.el + wdired.el + Artur Malabarba: wrote char-fold-tests.el faces-tests.el isearch-tests.el - let-alist.el simple-tests.el sort-tests.el tabulated-list-test.el + let-alist.el simple-tests.el sort-tests.el tabulated-list-tests.el and changed package.el isearch.el lisp/char-fold.el files.el tabulated-list.el package-test.el menu-bar.el replace.el bytecomp.el faces.el files-x.el custom.el custom.texi help-fns.el let-alist-tests.el simple.el subr-tests.el align.el bindings.el - cl-lib-tests.el cl-macs.el and 42 other files + cl-lib-tests.el cl-macs.el and 43 other files Artyom Loenko: changed Info.plist.in Arun Persaud: changed org-agenda.el org-src.el -Ashish Shukla: changed emacs-gnutls.texi gnutls.el +Asher Gordon: changed gomoku.el mml.el + +Ashish Shukla: changed emacs-gnutls.texi gnutls.el comp.el Ashwin Ram: wrote refer.el @@ -386,6 +501,9 @@ Atsuo Ohki: changed lread.c Aubrey Jaffer: changed info.el unexelf.c +Augusto Stoffel: changed progmodes/python.el comint.el isearch.el + eldoc.el misc.texi progmodes/compile.el search.texi + Aurélien Aptel: changed alloc.c emacs-module.h lisp.h Makefile configure.ac cus-face.el data.c dispextern.h display.texi dynlib.c dynlib.h emacs-module.c faces.el lread.c modhelp.py nsterm.m ox-html.el @@ -421,14 +539,16 @@ Bartosz Duszel: changed allout.el bib-mode.el cc-cmds.el hexl.el icon.el sendmail.el ses.el simple.el verilog-mode.el vi.el vip.el viper-cmd.el xscheme.el -Basil L. Contovounesios: changed simple.el message.el subr.el gravatar.el - custom.el gnus-group.el gnus-sum.el gnus-win.el internals.texi - modes.texi text.texi window.c bibtex.el button.el customize.texi - display.texi eww.el gnus-art.el gnus-msg.el gnus.texi lists.texi - and 150 other files +Basil L. Contovounesios: changed simple.el message.el subr.el eww.el + custom.el bibtex.el text.texi gnus-sum.el modes.texi customize.texi + files.texi gnus-group.el gnus-win.el gravatar.el internals.texi json.el + shr.el window.c battery-tests.el button.el custom-tests.el + and 278 other files + +Bastian Beischer: changed semantic/complete.el calc-yank.el include.el + mru-bookmark.el refs.el senator.el -Bastian Beischer: changed semantic/complete.el include.el mru-bookmark.el - refs.el senator.el +Bastian Beranek: changed tab-bar.el Bastien Guerry: wrote gnus-bookmark.el and co-wrote ol-bibtex.el org-list.el org-protocol.el org-src.el @@ -436,7 +556,7 @@ and changed org.el org-agenda.el org.texi ox-html.el org-clock.el org-capture.el org-table.el ox-latex.el ox.el ox-odt.el org-compat.el ox-publish.el ob.el org-mobile.el org-colview.el org-macs.el org-pcomplete.el org-timer.el org-faces.el ox-ascii.el org-archive.el - and 120 other files + and 119 other files Ben A. Mesander: co-wrote erc-dcc.el @@ -455,9 +575,9 @@ and changed org-clock.el org.el Benjamin Ragheb: changed fortune.el -Benjamin Riefenstahl: changed files.el image-mode.el w32select.c emacs.c - image.el inc/ms-w32.h lisp.h mac-win.el macterm.c mule-cmds.el - runemacs.c tcl.el w32.c w32.h +Benjamin Riefenstahl: changed files.el image-mode.el nnrss-tests.el + w32select.c emacs.c image.el inc/ms-w32.h lisp.h mac-win.el macterm.c + mule-cmds.el nnrss.el runemacs.c tcl.el w32.c w32.h Benjamin Rutt: co-wrote gnus-dired.el and changed vc.el gnus-msg.el message.el diff-mode.el ffap.el nnimap.el @@ -511,6 +631,8 @@ and changed mh-customize.el mh-search.el mh-alias.el mh-e.texi Makefile Bjarte Johansen: wrote ob-sed.el +Björn Holby: changed vhdl-mode.el + Björn Lindström: changed rcirc.texi Bjørn Mork: changed nnimap.el gnus-agent.el message.el mml2015.el @@ -554,7 +676,8 @@ and changed fill.el simple.el indent.el paragraphs.el cmds.c intervals.c Boris Samorodov: changed imap.el Boruch Baum: co-wrote footnote.el -and changed bookmark.el +and changed bookmark.el apropos.el autorevert.el calc.el cua-rect.el + help.el ses.el simple.el textmodes/table.el Boyd Lynn Gerber: changed configure.ac @@ -585,6 +708,9 @@ Brian Fox: changed Makefile.in Makefile configure.ac minibuf.c dired.el Brian Jenkins: changed frame.c frames.texi hooks.texi +Brian Leung: changed comint.el gud.el advice.el comp.c comp.el em-hist.el + files.el find-func.el gdb-mi.el help.el nadvice.el shell.el shortdoc.el + Brian Marick: co-wrote hideif.el Brian McKenna: changed eww.el @@ -606,7 +732,8 @@ Brian van den Broek: changed org.texi Bruce Stephens: changed calc-ext.el -Bruno Félix Rezende Ribeiro: changed functions.texi gnus.texi +Bruno Félix Rezende Ribeiro: changed os.texi finder.el functions.texi + gnus.texi info.el lisp-mnt.el package.el Bruno Haible: co-wrote po.el and changed INSTALL emacs.1 epaths.in info.el paths.el @@ -615,6 +742,8 @@ Bryan Henderson: changed Makefile term.el Bryan O'Sullivan: changed ange-ftp.el +Caio Henrique: changed menu-bar.el + Caio Tiago Oliveira: changed ob-scala.el Caleb Deupree: changed w32-fns.el @@ -630,19 +759,23 @@ Carl Edman: co-wrote ns-win.el Carl Henrik Lunde: changed format-spec.el -Carlos Pita: changed progmodes/python.el erc-pcomplete.el fringe.c - gtkutil.c image-mode.el keyboard.c sh-script.el +Carl Lei: changed cc-langs.el + +Carlos Pita: changed progmodes/python.el Makefile.in comint.el + emacs.service emacsclient.desktop erc-pcomplete.el fringe.c gtkutil.c + image-mode.el keyboard.c sh-script.el Carsten Bormann: changed ibmrs6000.h latin-post.el Carsten Dominik: wrote idlw-complete-structtag.el idlw-toolbar.el - ol-info.el ol-rmail.el ol.el org-agenda.el org-archive.el + ol-info.el ol-man.el ol-rmail.el ol.el org-agenda.el org-archive.el org-capture.el org-clock.el org-colview.el org-compat.el org-datetree.el org-faces.el org-feed.el org-footnote.el org-goto.el org-id.el org-indent.el org-inlinetask.el org-macs.el org-mobile.el - org-table.el org-timer.el org.el reftex-auc.el reftex-cite.el - reftex-dcr.el reftex-global.el reftex-index.el reftex-parse.el - reftex-ref.el reftex-sel.el reftex-toc.el reftex-vars.el reftex.el + org-refile.el org-table.el org-timer.el org.el reftex-auc.el + reftex-cite.el reftex-dcr.el reftex-global.el reftex-index.el + reftex-parse.el reftex-ref.el reftex-sel.el reftex-toc.el + reftex-vars.el reftex.el and co-wrote idlw-help.el idlw-shell.el idlwave.el ol-bbdb.el ol-bibtex.el ol-gnus.el org-entities.el org-list.el org-pcomplete.el org-src.el ox-beamer.el ox-html.el ox-icalendar.el @@ -667,7 +800,7 @@ Changwoo Ryu: changed files.el Chao-Hong Liu: changed TUTORIAL.cn TUTORIAL.zh -Charles A. Roelli: changed nsterm.m vc.el nsfns.m simple.el isearch.el +Charles A. Roelli: changed nsterm.m vc.el simple.el nsfns.m isearch.el nsmenu.m nsterm.h process.c register.el diff-mode.el display.texi files.el files.texi fixit.texi macfont.m minibuf.c nsfont.m nsimage.m nsselect.m org-clock.el progmodes/python.el and 47 other files @@ -698,7 +831,7 @@ and co-wrote longlines.el tango-dark-theme.el tango-theme.el and changed simple.el display.texi xdisp.c files.el frames.texi cus-edit.el files.texi custom.el subr.el text.texi faces.el keyboard.c startup.el package.el misc.texi emacs.texi modes.texi mouse.el - custom.texi image.c window.el and 933 other files + custom.texi image.c window.el and 932 other files Chris Chase: co-wrote idlw-shell.el idlwave.el @@ -715,13 +848,15 @@ Chris Hall: changed callproc.c frame.c Chris Hanson: changed xscheme.el scheme.el xterm.c hpux.h x11term.c hp9000s300.h keyboard.c process.c texinfmt.el sort.el syntax.c - texnfo-upd.el x11fns.c xfns.c dired.el emacsclient.c fileio.c - hp9000s800.h indent.c info.el man.el and 17 other files + texnfo-upd.el x11fns.c xfns.c dired.el emacs-regex.c emacsclient.c + fileio.c hp9000s800.h indent.c info.el and 17 other files Chris Hecker: changed calc-aent.el Chris Lindblad: co-wrote tcl.el +Chris Mcmahan: changed package.el + Chris Moore: changed dired.el hexl.el jka-cmpr-hook.el replace.el wdired.el Makefile.in comint.el diff-mode.el gnus-sum.el isearch.el mouse.el pgg-gpg.el pgg-pgp.el pgg-pgp5.el server.el shell.el @@ -739,8 +874,6 @@ Christian Egli: changed org-taskjuggler.el org.texi Christian Faulhammer: changed configure configure.ac src/Makefile.in vc-bzr.el -Christian Garbs: wrote ob-vala.el - Christian Limpach: co-wrote ns-win.el and changed configure.ac @@ -794,6 +927,8 @@ and changed replace.el files.el ispell.el time.el Christopher J. White: changed url-http.el +Christopher League: changed bookmark.el cus-theme.el + Christopher Oliver: changed mouse.el Christopher Schmidt: changed files.el ibuffer.el org.el tips.texi @@ -806,7 +941,7 @@ Christopher Thorne: changed dired.el progmodes/grep.el Christopher Wellons: changed emacs-lisp/cl-lib.el hashcash.el viper-cmd.el viper-ex.el viper-init.el viper.el -Christophe Troestler: changed epg.el +Christophe Troestler: changed gnus-icalendar.el epg.el newcomment.el Christoph Scholtes: changed README.W32 progmodes/python.el stdint.h INSTALL maintaining.texi INSTALL.REPO admin.el bookmark.el @@ -832,10 +967,16 @@ Claudio Bley: changed image.c image.el process.c stat.h w32-win.el w32.c Claudio Fontana: changed Makefile.in leim/Makefile.in lib-src/Makefile.in +Clemens Radermacher: changed cus-start.el frame.c minibuf.texi window.el + Clément Pit--Claudel: changed debugging.texi emacs-lisp/debug.el eval.c progmodes/python.el subr-tests.el subr.el url-http.el url-vars.el -Clément Pit-Claudel: changed keyboard.c text.texi +Clément Pit-Claudel: changed Dockerfile.emba button.el configure.ac + display.texi ert.el gitlab-ci.yml keyboard.c tex-mode.el text.texi + xdisp.c + +Codruț Constantin Gușoi: changed files.el Colin Marquardt: changed gnus.el message.el @@ -850,8 +991,14 @@ and changed calc.el replace.el update-game-score.c calc-ext.el Colin Williams: changed calc.texi +Colin Woodbury: changed files.el files.texi macros.texi shortdoc.el + Constantin Kulikov: changed server.el startup.el +Constantino Calancha: changed dired.el + +Corwin Brust: changed erc-services.el + Courtney Bane: changed term.c Craig Markwardt: changed icalendar.el @@ -878,12 +1025,14 @@ and changed mail-extr.el Dale Sedivec: changed sgml-mode.el wisent/python.el -Damien Cassou: wrote auth-source-pass-tests.el +Damien Cassou: wrote auth-source-pass-tests.el hierarchy-tests.el + hierarchy.el and co-wrote auth-source-pass.el auth-source-tests.el -and changed auth.texi message.el seq-tests.el seq.el simple-tests.el - simple.el auth-source.el checkdoc-tests.el checkdoc.el imenu-tests.el - imenu.el info.el isearch.el ispell.el json-tests.el json.el - message-tests.el package.el rmc.el sequences.texi xref.el +and changed auth.texi checkdoc.el ispell.el message.el seq-tests.el + seq.el simple-tests.el simple.el auth-source.el autorevert.el + checkdoc-tests.el imenu-tests.el imenu.el info.el isearch.el + json-tests.el json.el message-tests.el package.el rmc.el sequences.texi + xref.el Damien Elmes: changed erc.el erc-dcc.el erc-track.el erc-log.el erc-pcomplete.el README erc-button.el erc-nets.el erc-ring.el Makefile @@ -898,12 +1047,12 @@ Dan Christensen: changed gnus-sum.el nndoc.el nnfolder.el gnus-art.el spam.el time-date.el Dan Davison: wrote ob-matlab.el ob-octave.el -and co-wrote ob-R.el ob-core.el ob-exp.el ob-lob.el ob-perl.el +and co-wrote ob-R.el ob-core.el ob-exp.el ob-java.el ob-lob.el ob-perl.el ob-python.el ob-ref.el org-src.el and changed ob.el ob-sh.el org.el ox.el ox-latex.el ob-tangle.el ob-C.el - ob-asymptote.el ob-clojure.el ob-haskell.el ob-ruby.el ob-scheme.el - ob-table.el ob-ditaa.el ob-dot.el ob-gnuplot.el ob-js.el ob-mscgen.el - ob-ocaml.el ob-org.el ob-plantuml.el and 14 other files + ob-clojure.el ob-haskell.el ob-ruby.el ob-scheme.el ob-table.el + ob-ditaa.el ob-dot.el ob-gnuplot.el ob-js.el ob-ocaml.el ob-org.el + ob-plantuml.el ob-sass.el ob-screen.el and 12 other files Daniel Barrett: changed dbnotn.rnc @@ -919,7 +1068,7 @@ and co-wrote js.el and changed keyboard.c emacs.c w32fns.c alloc.c image.c cl-macs.el lisp.h src/Makefile.in configure.ac frame.c frame.el process.c xterm.el sh-script.el xfaces.c coding.c cygw32.c data.c dbusbind.c fns.c font.c - and 216 other files + and 213 other files Daniel Dehennin: changed gnus-mlspl.el mml2015.el gnus-msg.el gnus.texi mm-decode.el nnmail.el ox.el @@ -931,6 +1080,10 @@ Daniel Elliott: changed octave.el Daniel Engeler: changed sysdep.c elisp.texi emacs.texi internals.texi misc.texi process.c process.h processes.texi term.el w32.c w32.h +Daniele Nicolodi: changed url-http.el + +Daniel Gröber: changed rxvt.el + Daniel Hackney: wrote package-tests.el and co-wrote package.el and changed package-test.el package-x.el ange-ftp.el @@ -943,20 +1096,31 @@ Daniel Jensen: changed apropos.el Daniel Kahn Gillmor: changed mml-sec.el -Daniel Koning: changed artist.el commands.texi subr.el +Daniel Koning: changed simple.el artist.el commands.texi subr.el Daniel LaLiberte: wrote cust-print.el edebug.el isearch.el and co-wrote hideif.el and changed mlconvert.el eval-region.el +Daniel Lenski: changed speedbar.el + Daniel Lopez: changed progmodes/compile.el Daniel Lublin: changed dns-mode.el +Daniel Martín: changed shortdoc.el nsterm.m erc.texi files.el files.texi + msdos-xtra.texi ns-win.el basic.texi cmacexp.el compilation.txt + compile-tests.el cscope.el diff.el dired.el editfns.c emacs.texi + files-tests.el find-func-tests.el find-func.el frame.c frame.el + and 16 other files + Daniel McClanahan: changed lisp-mode.el Daniel M Coffman: changed arc-mode.el +Daniel Mendler: changed minibuffer.el minibuf.texi simple.el help-fns.el + info.el minibuf.c minibuffer-tests.el xref.el + Daniel M German: co-wrote org-protocol.el Daniel Néri: changed message.el @@ -983,6 +1147,8 @@ Daniel Ralston: changed rcirc.el Daniel Schoepe: changed gnus-sum.el +Daniel Semyonov: changed mairix.el + Dani Moncayo: changed msys-to-w32 Makefile.in configure.ac buffers.texi lists.texi mini.texi INSTALL README.W32 basic.texi custom.texi dired.texi display.texi emacs-lisp-intro.texi files.texi killing.texi @@ -993,15 +1159,19 @@ and co-wrote hideshow.el and changed vc.el configure.ac vc-hg.el vc-git.el src/Makefile.in vc-bzr.el sysdep.c emacs.c process.c vc-cvs.el lisp.h term.c vc-hooks.el xterm.c keyboard.c vc-svn.el xterm.el callproc.c darwin.h - term.el gnu-linux.h and 921 other files + term.el gnu-linux.h and 920 other files Danny Roozendaal: wrote handwrite.el Danny Siu: changed gnus-sum.el gnus-picon.el nndoc.el nnimap.el smiley.el +Dan Ports: changed configure.ac + Dan Rosenberg: changed movemail.c -Dario Gjorgjevski: changed auth-source.el recentf.el syntax.el +Dario Gjorgjevski: changed progmodes/python.el project.el auth-source.el + cus-edit.el erc-desktop-notifications.el ido.el minibuffer-tests.el + recentf.el sh-script.el syntax.el tramp.el xml.el Darren Hoo: changed db-find.el db.el gnus-art.el isearch.el man.el nsmenu.m startup.el @@ -1027,7 +1197,7 @@ and co-wrote latin-ltx.el socks.el and changed configure.ac help.el mule-cmds.el fortran.el mule-conf.el xterm.c browse-url.el mule.el coding.c src/Makefile.in european.el fns.c mule-diag.el simple.el wid-edit.el cus-edit.el cus-start.el - files.el keyboard.c byte-opt.el info.el and 772 other files + files.el keyboard.c byte-opt.el info.el and 771 other files Dave Pearson: wrote 5x5.el quickurl.el @@ -1063,8 +1233,10 @@ David De La Harpe Golden: changed files.el mouse.el simple.el fileio.c cus-start.el nsselect.m select.el w32-fns.el x-win.el xterm.c David Edmondson: changed message.el erc.el mml2015.el process.c - gnus-cite.el imap.el mm-uu.el mm-view.el nnfolder.el nnimap.el nnml.el - rcirc.el shr.el + gnus-cite.el gnus-cloud.el gnus.texi imap.el mm-uu.el mm-view.el + nnfolder.el nnimap.el nnml.el rcirc.el shr.el + +Davide Masserut: changed bindings.el basic.texi David Engster: wrote mairix.el nnmairix.el and co-wrote gitmerge.el @@ -1072,7 +1244,7 @@ and changed cedet/semantic.el db.el insert.el semantic/complete.el c.by c.el db-el.el db-file.el db-find.el ede-grammar.el eieio-opt.el eieio.el eieio.texi gnus.texi registry.el srecode/compile.el wisent/python.el analyze.el bovine/el.el bovine/grammar.el - decorate/mode.el and 87 other files + decorate/mode.el and 88 other files David Gillespie: wrote calc-aent.el calc-alg.el calc-arith.el calc-bin.el calc-comb.el calc-cplx.el calc-embed.el calc-ext.el calc-fin.el @@ -1139,7 +1311,7 @@ and changed mode-clone.el David Michael: changed files.el David M. Koppelman: wrote hi-lock.el -and changed display.texi +and changed display.texi userlock.el David Moore: co-wrote nnvirtual.el and changed gnus-xmas.el @@ -1195,13 +1367,15 @@ Debarshi Ray: changed erc-backend.el erc.el Decklin Foster: changed nngateway.el -Deepak Goel: changed idlw-shell.el ada-xref.el feedmail.el files.el - find-func.el flymake.el mh-search.el mh-seq.el mh-thread.el mh-xface.el - org.el simple.el vc.el vhdl-mode.el wdired.el README ada-mode.el - allout.el appt.el apropos.el artist.el and 85 other files +Deepak Goel: changed idlw-shell.el feedmail.el files.el find-func.el + flymake.el mh-search.el mh-seq.el mh-thread.el mh-xface.el org.el + simple.el vc.el vhdl-mode.el wdired.el README allout.el appt.el + apropos.el artist.el bibtex.el bindings.el and 83 other files D. E. Evans: changed basic.texi +Deneb Meketa: changed progmodes/python.el + Denis B. Roegel: co-wrote solar.el Denis Bueno: changed autorevert.el @@ -1228,6 +1402,8 @@ Derek Peschel: changed etags.c Derek Upham: changed nxml-mode.el +Derek Zhou: changed process.c + Detlev Zundel: wrote re-builder.el and changed buffer.c @@ -1243,7 +1419,11 @@ Diane Murray: changed erc.el erc-backend.el erc-menu.el erc-button.el erc-goodies.el erc-ibuffer.el erc-log.el erc-nicklist.el url-http.el Makefile erc-dcc.el and 36 other files -Dick R. Chiang: changed checkdoc.el cl-macs-tests.el cl-macs.el +Dick R. Chiang: changed ffap-tests.el ffap.el gnus-group.el gnus.texi + message.el bindings.el buffer-tests.el buffer.c checkdoc.el + cl-macs-tests.el cl-macs.el comint-tests.el gnus-srvr.el gnus-sum.el + gnus-topic.el gnutls.c key.pub key.sec minibuffer.el misc.texi + package.el and 6 other files Didier Verna: wrote gnus-diary.el nndiary.el and co-wrote nnml.el @@ -1263,7 +1443,7 @@ Dima Kogan: wrote diff-mode-tests.el and changed diff-mode.el erc-backend.el image.c font.c gud.el hideshow.el autorevert.el comint.el find-file.el subword.el BOOST.tests PCRE.tests PTESTS TESTS align.el alloc.c ediff-mult.el ediff.el erc-button.el - isearch.el keyboard.c and 11 other files + isearch.el keyboard.c and 12 other files Dirk Herrmann: co-wrote bibtex.el @@ -1271,12 +1451,14 @@ Dirk-Jan C. Binnema: changed org-agenda.el Dirk Ullrich: changed ispell.el +Dmitrii Kuragin: changed ispell.el + Dmitri Paduchikh: changed advice.el Dmitry Antipov: changed lisp.h xdisp.c alloc.c xterm.c frame.c buffer.c xfns.c window.c font.c w32term.c frame.h keyboard.c nsterm.m w32fns.c editfns.c xterm.h xfaces.c dispnew.c fileio.c dispextern.h fns.c - and 278 other files + and 277 other files Dmitry Bolshakov: changed hideshow.el @@ -1287,11 +1469,11 @@ Dmitry Gorbik: changed org.el Dmitry Gutov: wrote elisp-mode-tests.el jit-lock-tests.el json-tests.el vc-hg-tests.el xref-tests.el -and changed ruby-mode.el xref.el project.el vc-git.el elisp-mode.el - etags.el ruby-mode-tests.el js.el package.el vc-hg.el vc.el - symref/grep.el log-edit.el dired-aux.el simple.el minibuffer.el - menu-bar.el package-test.el progmodes/grep.el vc-svn.el eldoc.el - and 111 other files +and changed xref.el ruby-mode.el project.el vc-git.el elisp-mode.el + etags.el ruby-mode-tests.el js.el vc.el vc-hg.el package.el + symref/grep.el dired-aux.el simple.el log-edit.el minibuffer.el + progmodes/grep.el ido.el maintaining.texi menu-bar.el package-test.el + and 123 other files Dmitry Kurochkin: changed isearch.el @@ -1311,6 +1493,10 @@ Don Woods: changed replace.el Doug Cutting: co-wrote disass.el +Doug Davis: changed elisp-mode.el progmodes/python.el + +Doug Gilmore: changed xterm.c + Douglas Lewan: changed TUTORIAL.pt_BR Doug Maxey: changed mouse.el @@ -1319,12 +1505,16 @@ Drake Wilson: changed emacsclient.c files.el misc.texi Drew Adams: wrote light-blue-theme.el and co-wrote color.el -and changed dired.el cus-edit.el imenu.el info.el ls-lisp.el faces.el - files.el help-mode.el help.el isearch.el menu-bar.el modes.texi - mouse.el ange-ftp.el apropos.el bindings.el bookmark.el custom.el - descr-text.el dired-aux.el dired.texi and 18 other files +and changed dired.el cus-edit.el imenu.el info.el ls-lisp.el menu-bar.el + dired.texi faces.el files.el frame.el help-fns.el help-mode.el help.el + help.texi isearch.el modes.texi mouse.el wid-edit.el ange-ftp.el + apropos.el bindings.el and 22 other files + +Earl Hyatt: changed ffap.el seq-tests.el sequences.texi windows.texi + control.texi cus-edit.el hi-lock.el misc.texi pcase-tests.el pcase.el + replace.el search.texi seq.el tab-bar.el -E. Choroba: changed simple.el +E. Choroba: changed cperl-mode.el simple.el Edison Ibañez: changed auth-source-pass-tests.el @@ -1361,6 +1551,8 @@ Eirik Fuller: changed ralloc.c xterm.c E. Jay Berkenbilt: changed b2m.c flyspell.el ispell.el unrmail.el whitespace.el window.h +Elad Lahav: changed configure.ac + Elias Oltmanns: changed tls.el gnus-agent.el gnus-cite.el gnus-int.el gnus-srvr.el gnus.el nnimap.el @@ -1373,13 +1565,19 @@ and changed simple.el dired.el Eli Tziperman: wrote rmail-spam-filter.el Eli Zaretskii: wrote [bidirectional display in xdisp.c] - [tty menus in term.c] abbrev-tests.el bidi.c biditest.el - chartab-tests.el coding-tests.el doc-tests.el etags-tests.el rxvt.el - tty-colors.el -and changed xdisp.c msdos.c w32.c display.texi w32fns.c simple.el - files.el fileio.c keyboard.c w32term.c w32proc.c emacs.c files.texi - text.texi dispnew.c frames.texi lisp.h dispextern.h window.c process.c - term.c and 1188 other files + [tty menus in term.c] abbrev-tests.el bidi.c biditest.el cham.el + chartab-tests.el coding-tests.el etags-tests.el rxvt.el tty-colors.el +and co-wrote help-tests.el +and changed xdisp.c display.texi w32.c msdos.c w32fns.c simple.el + files.el fileio.c keyboard.c emacs.c w32term.c text.texi dispnew.c + w32proc.c files.texi frames.texi configure.ac lisp.h dispextern.h + process.c editfns.c and 1231 other files + +Eliza Velasquez: changed server.el + +Ellington Santos: changed battery.el + +Emacs-F: changed rmail-spam-filter.el Emanuele Giaquinta: changed configure.ac rxvt.el charset.c etags.c fontset.c frame.el gnus-faq.texi loadup.el lread.c sh-script.el @@ -1391,20 +1589,21 @@ Emilio C. Lopes: changed woman.el cmuscheme.el help.el vc.el advice.el animate.el apropos.el artist.el bookmark.el cal-menu.el calc-prog.el calc-store.el calcalg3.el calendar.el calendar.texi checkdoc.el code-pages.el codepage.el completion.el cus-edit.el diff.el - and 57 other files + and 58 other files Emmanuel Briot: wrote xml.el -and changed ada-mode.el ada-stmt.el ada-prj.el ada-xref.el +and changed ada-stmt.el Era Eriksson: changed bibtex.el dired.el json.el ses.el ses.texi shell.el tramp.el tramp.texi -Eric Abrahamsen: wrote gnus-test-headers.el -and changed gnus-sum.el gnus-group.el gnus-start.el gnus-registry.el - eieio-base.el nnimap.el gnus.texi nnir.el gnus-agent.el registry.el - gnus-srvr.el gnus.el eieio.el gnus-score.el files.el files.texi - gnus-art.el gnus-cache.el nnmail.el nnmaildir.el nnrss.el - and 43 other files +Eric Abrahamsen: wrote gnus-dbus.el gnus-search-tests.el gnus-search.el + gnus-test-headers.el +and changed gnus-sum.el gnus-group.el gnus-registry.el gnus-start.el + gnus.texi eieio-base.el nnimap.el nnir.el gnus-agent.el gnus.el + registry.el gnus-srvr.el eieio.el gnus-cache.el gnus-msg.el + gnus-score.el message.el files.el files.texi gnus-art.el gnus-util.el + and 50 other files Eric Bélanger: changed image.c @@ -1430,62 +1629,61 @@ Eric Marsden: changed gnus-cache.el url-util.el Eric M. Ludlam: wrote analyze.el analyze/complete.el analyze/debug.el args.el auto.el autoconf-edit.el base.el bovine.el bovine/debug.el - bovine/el.el bovine/make.el c.el cedet-cscope.el cedet-files.el - cedet-global.el cedet-idutils.el cedet-utests.el cedet/semantic.el - cedet/srecode.el checkdoc.el config.el cpp-root.el cscope.el - data-debug.el db-debug.el db-el.el db-file.el db-find.el db-global.el - db-mode.el db-ref.el db-typecache.el db.el decorate.el decorate/mode.el - dep.el detect.el dframe.el dictionary.el doc.el document.el - ede-grammar.el ede-tests.el ede.el ede/custom.el ede/dired.el - ede/files.el ede/generic.el ede/linux.el ede/locate.el ede/make.el - ede/shell.el ede/simple.el ede/speedbar.el ede/srecode.el ede/util.el - edit.el eieio-base.el eieio-compat.el eieio-core.el eieio-custom.el - eieio-datadebug.el eieio-opt.el eieio-speedbar.el - eieio-test-methodinvoke.el eieio-test-persist.el eieio-tests.el - eieio.el emacs-lisp/chart.el emacs.el expandproto.el extract.el - ezimage.el fcn.el fields.el filter.el filters.el fw.el gcc.el getset.el - global.el html.el ia-sb.el ia.el idle.el idutils.el include.el - insert.el inversion.el javascript.el lex-spp.el lex.el list.el - makefile-edit.el map.el mru-bookmark.el pconf.el pmake.el - proj-archive.el proj-aux.el proj-comp.el proj-elisp.el proj-info.el - proj-misc.el proj-obj.el proj-prog.el proj-scheme.el proj-shared.el - proj.el project-am.el pulse.el refs.el sb-image.el sb.el scm.el - scope.el semantic-tests.el semantic-utest-c.el semantic-utest-fmt.el + bovine/el.el bovine/make.el c.el cedet-cscope.el cedet-files-tests.el + cedet-files.el cedet-global.el cedet-idutils.el cedet-utests.el + cedet/semantic.el cedet/srecode.el checkdoc.el config.el cpp-root.el + cscope.el data-debug.el db-debug.el db-el.el db-file.el db-find.el + db-global.el db-mode.el db-ref.el db-typecache.el db.el decorate.el + decorate/mode.el dep.el detect.el dframe.el dictionary.el doc.el + document-tests.el document.el ede-grammar.el ede-tests.el ede.el + ede/custom.el ede/dired.el ede/files.el ede/generic.el ede/linux.el + ede/locate.el ede/make.el ede/shell.el ede/simple.el ede/speedbar.el + ede/srecode.el ede/util.el edit.el eieio-base.el eieio-compat.el + eieio-core.el eieio-custom.el eieio-datadebug.el eieio-opt.el + eieio-speedbar.el eieio-test-methodinvoke.el eieio-test-persist.el + eieio-tests.el eieio.el emacs-lisp/chart.el emacs.el expandproto.el + extract.el ezimage.el fcn.el fields-tests.el fields.el filter.el + filters.el format-tests.el fw-tests.el fw.el gcc-tests.el gcc.el + getset.el global.el html.el ia-sb.el ia.el idle.el idutils.el + include.el insert.el inversion-tests.el inversion.el javascript.el + lex-spp.el lex.el list.el makefile-edit.el map.el mru-bookmark.el + pconf.el pmake.el proj-archive.el proj-aux.el proj-comp.el + proj-elisp.el proj-info.el proj-misc.el proj-obj.el proj-prog.el + proj-scheme.el proj-shared.el proj.el project-am.el pulse.el refs.el + sb-image.el sb.el scm.el scope.el semantic-tests.el semantic-utest-c.el semantic-utest-ia.el semantic-utest.el semantic/chart.el semantic/complete.el semantic/ctxt.el semantic/debug.el semantic/find.el semantic/format.el semantic/imenu.el semantic/sort.el semantic/texi.el semantic/util.el source.el speedbar.el - srecode-tests.el srecode/compile.el srecode/ctxt.el srecode/el.el - srecode/find.el srecode/java.el srecode/mode.el srecode/semantic.el - srecode/table.el srecode/texi.el srt.el symref.el symref/grep.el - system.el tag-file.el tag-ls.el tag-write.el tag.el test-fmt.el test.el + srecode/compile.el srecode/ctxt.el srecode/el.el srecode/find.el + srecode/java.el srecode/mode.el srecode/semantic.el srecode/table.el + srecode/texi.el srt.el symref.el symref/grep.el system.el tag-file.el + tag-ls.el tag-write.el tag.el test.el and co-wrote db-ebrowse.el srecode/cpp.el util-modes.el and changed c.srt ede.texi info.el rmail.el speedbspec.el cedet.el ede-autoconf.srt ede-make.srt eieio.texi gud.el sb-dir-minus.xpm sb-dir-plus.xpm sb-dir.xpm sb-mail.xpm sb-pg-minus.xpm sb-pg-plus.xpm sb-pg.xpm sb-tag-gt.xpm sb-tag-minus.xpm sb-tag-plus.xpm - and 50 other files + and 35 other files -Eric Schulte: wrote ob-asymptote.el ob-awk.el ob-calc.el ob-comint.el - ob-coq.el ob-css.el ob-ditaa.el ob-dot.el ob-emacs-lisp.el ob-eval.el - ob-forth.el ob-gnuplot.el ob-haskell.el ob-java.el ob-js.el ob-latex.el - ob-makefile.el ob-ocaml.el ob-org.el ob-ruby.el ob-sass.el ob-shell.el - ob-shen.el ob-sql.el ob-sqlite.el ob-table.el ob-tangle.el ob.el - org-plot.el +Eric Schulte: wrote ob-awk.el ob-calc.el ob-comint.el ob-css.el + ob-ditaa.el ob-dot.el ob-emacs-lisp.el ob-eval.el ob-forth.el + ob-gnuplot.el ob-haskell.el ob-js.el ob-latex.el ob-makefile.el + ob-ocaml.el ob-org.el ob-ruby.el ob-sass.el ob-shell.el ob-sql.el + ob-sqlite.el ob-table.el ob-tangle.el ob.el org-plot.el and co-wrote ob-C.el ob-R.el ob-core.el ob-exp.el ob-fortran.el - ob-lisp.el ob-lob.el ob-maxima.el ob-perl.el ob-picolisp.el - ob-python.el ob-ref.el ob-scheme.el ol-bibtex.el + ob-java.el ob-lisp.el ob-lob.el ob-maxima.el ob-perl.el ob-python.el + ob-ref.el ob-scheme.el ol-bibtex.el and changed org.texi org.el ob-clojure.el org-exp-blocks.el ob-sh.el org-bibtex.el ox.el ox-latex.el org-src.el ob-plantuml.el ob-keys.el ob-screen.el org-macs.el org-table.el org-agenda.el org-mouse.el - orgcard.tex ob-lilypond.el ob-mscgen.el ob-octave.el org-clock.el - and 16 other files + orgcard.tex ob-lilypond.el ob-octave.el org-clock.el org-compat.el + and 13 other files -Eric S Fraga: wrote ob-ledger.el -and co-wrote ob-maxima.el +Eric S Fraga: co-wrote ob-maxima.el and changed ox-icalendar.el org.texi ox-latex.el -Eric Skoglund: changed esh-proc.el eshell.texi +Eric Skoglund: changed esh-proc.el eshell.texi replace.el Eric S. Raymond: wrote AT386.el asm-mode.el cookie1.el finder.el gud.el lisp-mnt.el loadhist.el @@ -1513,6 +1711,10 @@ Erik Toubro Nielsen: changed gnus-sum.el gnus-topic.el Ernest Adrogué: changed european.el latin-pre.el mule-cmds.el +Ernest N. Mamikonyan: changed texinfo.el + +Ernesto Alfonso: changed simple.el + E Sabof: changed hi-lock.el image-dired.el Espen Skoglund: wrote pascal.el @@ -1524,9 +1726,7 @@ Ethan Bradford: changed ispell.el ange-ftp.el gnus.el gnuspost.el lpr.el Ethan Ligon: changed org-docbook.el ox-html.el -Etienne Prud'homme: changed align.el - -Etienne Prud’Homme: changed css-mode-tests.el css-mode.el +Etienne Prud’Homme: changed align.el css-mode-tests.el css-mode.el Eugene Exarevsky: changed sql.el @@ -1551,7 +1751,10 @@ Eyal Lotem: changed ido.el Fabián Ezequiel Gallina: wrote progmodes/python.el subr-x-tests.el and changed python-tests.el subr-x.el imenu.el wisent/python.el -Fabrice Bauzac: changed dired-aux.el fixit.texi search.texi +Fabrice Bauzac: changed objects.texi dired-aux.el fixit.texi ibuf-ext.el + search.texi + +Fabrice Nicol: changed etags.c etags.1 Fabrice Niessen: wrote leuven-theme.el and changed org-agenda.el @@ -1559,7 +1762,7 @@ and changed org-agenda.el Fabrice Popineau: changed w32.c ms-w32.h w32fns.c w32heap.c w32term.c configure.ac lisp.h unexw32.c buffer.c emacs.c image.c w32heap.h w32proc.c w32term.h INSTALL addsection.c alloc.c dispextern.h - emacs-x64.manifest emacs-x86.manifest etags.c and 25 other files + emacs-regex.c emacs-x64.manifest emacs-x86.manifest and 25 other files Fan Kai: changed esh-arg.el @@ -1568,14 +1771,14 @@ Faried Nawaz: changed message.el Federico Beffa: changed xscheme.el Federico Tedin: wrote tempo-tests.el -and changed minibuf.c mouse.el package.el rect.el cursor-sensor.el - cus-start.el doc-view.el edebug.el eww.el files.texi gamegrid.el - keyboard.c minibuf.texi package-tests.el package.texi simple.el - tempo.el vc-git.el xfaces.c +and changed minibuf.c esh-var.el minibuf.texi mouse.el package.el rect.el + simple.el tempo.el coding.c cursor-sensor.el cus-start.el doc-view.el + edebug.el em-dirs.el eshell-tests.el eww.el fileio-tests.el fileio.c + files.texi gamegrid.el keyboard.c and 8 other files Felicián Németh: changed project.el xref.el -Felipe Ochoa: changed faces.el js.el js.js paren.el +Felipe Ochoa: changed faces.el js.el paren.el Felix E. Klee: co-wrote svg.el and changed display.texi @@ -1593,18 +1796,20 @@ Feng Li: changed calc-ext.el pascal.el which-func.el Feng Shu: changed org.el org.texi ox.el ox-html.el ox-latex.el ox-odt.el +Ferdinand Pieper: changed flow-fill-tests.el flow-fill.el + Ferenc Wagner: changed nnweb.el Filipe Cabecinhas: changed nsterm.m -Filipp Gunbin: changed auth-source-tests.el auth-source.el autorevert.el - compilation.txt dired-aux.el gnus-ml.el progmodes/compile.el shell.el - cc-menus.el custom.el dabbrev.el gnus-sum.el imenu.el info.el info.texi - ldap.el search.texi sql.el - -Fix Bug#24483.: changed sql.el sql-tests.el +Filipp Gunbin: changed compilation.txt progmodes/compile.el + auth-source-tests.el auth-source.el autorevert.el dired-aux.el + gnus-ml.el shell.el sysdep.c cc-menus.el compile-tests.el custom.el + dabbrev.el gnus-sum.el imenu.el info.el info.texi keymaps.texi ldap.el + processes.texi search.texi and 3 other files -Fix Bug#35307.: changed sql.el +F. Jason Park: changed socks-tests.el erc-tests.el erc.el socks.el + erc-button.el erc-ring.el erc-services.el puny-tests.el puny.el Flemming Hoejstrup Hansen: changed forms.el @@ -1614,6 +1819,8 @@ Florian Beck: changed org.el Florian Ragwitz: changed gnus-html.el mail/sieve-manage.el +Florian V. Savigny: changed sql.el + Florian Weimer: changed message.el gnus.el coding.c gnus-sum.el gnus.texi mm-decode.el mm-util.el @@ -1623,7 +1830,7 @@ Francesco Potortì: wrote cmacexp.el and changed etags.c man.el delta.h etags.1 undigest.el rmail.el comint.el configure.ac maintaining.texi uniquify.el latin-post.el etags.el latin-alt.el lib-src/Makefile.in sgml-mode.el Makefile.in data.c - european.el filelock.c files.el generic-x.el and 44 other files + european.el filelock.c files.el generic-x.el and 45 other files Francesc Rocher: changed splash.png splash.svg startup.el README cus-start.el gnus.el gnus.png gnus.svg macterm.c splash.pbm splash.xpm @@ -1701,12 +1908,16 @@ Fujii Hironori: changed w32fns.c Gábor Vida: changed gnus-demon.el auth-source.el ido.el +Gabriel Do Nascimento Ribeiro: changed remember.el mb-depth.el repeat.el + tab-line.el cmuscheme.el comint.el esh-mode.el etags.el gnus-sum.el + hl-line.el idlwave.el inf-lisp.el mh-gnus.el mh-letter.el mh-mime.el + mh-seq.el mh-utils.el minibuf.c minibuffer.el mule-cmds.el package.el + and 10 other files + Gaby Launay: changed auth-source-pass.el Gareth Jones: changed fns.c gnus-score.el -Gareth Rees: changed NEWS.24 - Garrett Wollman: changed sendmail.el Gary Delp: wrote mailpost.el (public domain) @@ -1730,11 +1941,11 @@ Geert Kloosterman: changed which-func.el Gemini Lasswell: wrote backtrace-tests.el backtrace.el edebug-tests.el kmacro-tests.el testcover-tests.el thread-tests.el thread.el -and changed edebug.el cl-print.el edebug.texi cl-print-tests.el - debugging.texi cl-macs.el emacs-lisp/debug.el edebug-test-code.el - subr.el testcases.el testcover.el cl-generic.el ert-x.el eval.c - eieio-compat.el elisp.texi ert.el ert.texi eval-tests.el generator.el - print.c and 24 other files +and changed edebug.el cl-print.el edebug.texi emacs-lisp/debug.el + cl-print-tests.el debugging.texi cl-macs.el edebug-test-code.el subr.el + testcases.el testcover.el cl-generic.el ert-x.el eval.c eieio-compat.el + elisp.texi ert.el ert.texi eval-tests.el generator.el print.c + and 24 other files Geoff Gole: changed align.el ibuffer.el whitespace.el @@ -1765,7 +1976,7 @@ Gerd Möllmann: wrote authors.el ebrowse.el jit-lock.el tooltip.el and changed xdisp.c xterm.c dispnew.c dispextern.h xfns.c xfaces.c window.c keyboard.c lisp.h faces.el alloc.c buffer.c startup.el xterm.h fns.c simple.el term.c configure.ac frame.c xmenu.c emacs.c - and 610 other files + and 607 other files Gergely Nagy: changed erc.el @@ -1786,24 +1997,30 @@ Giuliano Procida: changed perl-mode.el Giuseppe Scrivano: changed browse-url.el buffer.c configure.ac sysdep.c xsmfns.c +G. Jay Kerns: wrote ob-julia.el + Glenn Morris: wrote check-declare.el f90-tests.el vc-bzr-tests.el and changed configure.ac Makefile.in src/Makefile.in calendar.el - diary-lib.el lisp/Makefile.in files.el make-dist rmail.el - progmodes/f90.el bytecomp.el simple.el authors.el admin.el startup.el - emacs.texi misc/Makefile.in display.texi lib-src/Makefile.in ack.texi - subr.el and 1760 other files + lisp/Makefile.in diary-lib.el files.el make-dist rmail.el + progmodes/f90.el bytecomp.el admin.el misc/Makefile.in simple.el + authors.el startup.el emacs.texi lib-src/Makefile.in display.texi + ack.texi subr.el and 1789 other files Glynn Clements: wrote gamegrid.el snake.el tetris.el Göktuğ Kayaalp: changed electric.el european.el text.texi vc-cvs.el vc-hg.el +Gong Qijian: changed startup.el + Göran Uddeborg: changed isc4-1.h Gordon Matzigkeit: changed gnus-uu.el Graham Dobbins: changed lisp-mode.el +Grant Shangreaux: changed HELLO latin-post.el latin-pre.el + Greg A. Woods: co-wrote pcvs.el Greg Hill: changed bytecomp.el @@ -1818,11 +2035,10 @@ and changed tar-mode.el Gregoire Jadi: changed proced.el -Grégoire Jadi: changed org.texi emacsgtkfixed.c keyboard.c rcirc.el - xwidget.c xwidget.el Makefile.in cl-generic.el configure.ac - dispextern.h dispnew.c emacs.c latin-post.el lisp.h ob-core.el - org-id.el org.el print.c reporter.el sendmail.el shr.el - and 6 other files +Grégoire Jadi: changed org.texi configure.ac emacsgtkfixed.c keyboard.c + rcirc.el xwidget.c xwidget.el Makefile.in bibtex-tests.el bibtex.el + cl-generic.el dispextern.h dispnew.c emacs.c latin-post.el lisp.h + ob-core.el org-id.el org.el print.c reporter.el and 8 other files Gregorio Gervasio, Jr.: changed gnus-sum.el @@ -1833,11 +2049,16 @@ Gregor Schmid: changed intervals.c intervals.h tcl-mode.el textprop.c Gregory Chernov: changed nnslashdot.el -Grégory Mounié: changed display.texi hi-lock.el man.el +Gregory Heytings: changed isearch.el minibuffer.el mini.texi quail.el + search.texi simple.el HELLO buffers.texi diff-mode.el emake facemenu.el + files.el fringe.c help-macro.el icomplete.el keyboard.c misc-lang.el + modula2.el pcmpl-gnu.el print.c pulse.el and 4 other files + +Grégory Mounié: changed display.texi hi-lock.el man.el xfns.c Gregory Neil Shapiro: changed mailabbrev.el -Gregor Zattler: changed eshell.texi emacs-lisp-intro.texi +Gregor Zattler: changed eww.texi eshell.texi emacs-lisp-intro.texi Greg Stark: changed gnus-ems.el timezone.el @@ -1882,7 +2103,11 @@ Hans Wennborg: changed emacs.c Han-Wen Nienhuys: changed emacsclient.c server.el -Harald Hanche-Olsen: changed sgml-mode.el skeleton.el +Harald Hanche-Olsen: changed misc.texi server.el sgml-mode.el skeleton.el + +Harald Jörg: wrote cperl-mode-tests.el +and changed cperl-mode.el perl-mode.el grammar.pl cperl-bug-19709.pl + cperl-indent-exp.pl cperl-indent-styles.pl Harald Maier: changed w32heap.c @@ -1891,14 +2116,14 @@ Harald Meland: changed gnus-art.el gnus-salt.el gnus-score.el Harri Kiiskinen: changed org-protocol.el ox-publish.el -H. Dieter Wilhelm: changed calc-help.el maintaining.texi +H. Dieter Wilhelm: changed calc-help.el maintaining.texi paragraphs.el Heiko Muenkel: changed b2m.c -Helmut Eller: changed emacs-lisp/debug.el xref.el CTAGS.good ETAGS.good_1 - ETAGS.good_2 ETAGS.good_3 ETAGS.good_4 ETAGS.good_5 ETAGS.good_6 - cl-indent.el cl-macs.el elisp-mode.el ert.el etags.c etags.el eval.c - lisp-mode.el process-tests.el process.c test-forth.fth +Helmut Eller: changed emacs-lisp/debug.el lisp-mode.el xref.el CTAGS.good + ETAGS.good_1 ETAGS.good_2 ETAGS.good_3 ETAGS.good_4 ETAGS.good_5 + ETAGS.good_6 cl-indent.el cl-macs.el elisp-mode.el ert.el etags.c + etags.el eval.c process-tests.el process.c test-forth.fth Helmut Waitzmann: changed gnus-sum.el gnus.texi @@ -1933,17 +2158,18 @@ Holger Schauer: wrote fortune.el and changed message-utils.el Hong Xu: changed etags.el simple.el maintaining.texi minibuf.texi - paren.el progmodes/python.el search.c editfns.c em-cmpl.el + tramp.texi paren.el progmodes/python.el search.c editfns.c em-cmpl.el emacs-mime.texi files.texi flyspell.el gnus-cite.el message.el parse-time-tests.el parse-time.el progmodes/cpp.el programs.texi - python-tests.el subr.el url-util.el and 3 other files + python-tests.el subr.el and 4 other files Hosoya Kei: changed TUTORIAL.ja Hovav Shacham: wrote windmove.el Howard Gayle: wrote case-table.el casetab.c iso-ascii.el iso-transl.el - rot13.el vt100-led.el + vt100-led.el +and co-wrote rot13.el Howard Melman: changed imenu.el picture.el @@ -1959,6 +2185,8 @@ Hubert Chan: changed spam.el Hugh Brown: changed progmodes/grep.el building.texi +Hugh Daschbach: changed dbus-tests.el dbus.el org.gnu.Emacs.TestDBus.xml + Hynek Schlawack: changed gnus-art.el gnus-sum.el Ian D: changed doc-view.el image-mode.el @@ -1976,16 +2204,24 @@ Ian Lance Taylor: changed sco4.h Ian T Zimmerman: wrote gametree.el and changed ange-ftp.el desktop.el tex-mode.el -İ. Göktuğ Kayaalp: changed eww.el frames.texi mwheel.el vc-rcs.el +Ian W: changed ispell.el + +İ. Göktuğ Kayaalp: changed eww.el frame.h frames.texi mwheel.el vc-rcs.el Igor Kuzmin: wrote cconv.el +Igor Saprykin: changed ftfont.c + +Ihor Radchenko: changed fns.c + Iku Iwasa: changed auth-source-pass-tests.el auth-source-pass.el Ikumi Keita: changed characters.el japan-util.el kinsoku.el minibuf.c Ilja Weis: co-wrote gnus-topic.el +Illia Ostapyshyn: changed cus-start.el calc-graph.el + Ilya N. Golubev: changed mm-util.el shell.el Ilya Shlyakhter: changed org.el ob-lilypond.el org-clock.el @@ -1994,10 +2230,12 @@ Ilya Shlyakhter: changed org.el ob-lilypond.el org-clock.el Ilya Zakharevich: wrote tmm.el and co-wrote cperl-mode.el and changed w32fns.c syntax.c intervals.c syntax.h textprop.c dired.c - font-lock.el intervals.h regex.c regex.h search.c + emacs-regex.c emacs-regex.h font-lock.el intervals.h search.c Ilya Zonov: changed org-mouse.el +Imran Khan: changed css-mode.el + Indiana University Foundation: changed buffer.c buffer.h indent.c region-cache.c region-cache.h search.c xdisp.c @@ -2007,15 +2245,16 @@ Inge Frick: changed easymenu.el keyboard.c view.el compile.el Inge Wallin: co-wrote avl-tree.el ewoc.el -Ingo Lohmar: changed calendar.el calendar.texi help-fns.el - js-indent-align-list-continuation-nil.js js.el ls-lisp.el org-agenda.el - org.el +Ingo Lohmar: changed sql.el calendar.el calendar.texi help-fns.el js.el + ls-lisp.el org-agenda.el org.el Inoue Seiichiro: changed xterm.c xfns.c xterm.h International Business Machines: changed emacs.c fileio.c process.c sysdep.c unexcoff.c +Ioannis Kappas: changed package.el process-tests.el + Ippei Furuhashi: changed org.texi org-colview.el org-table.el org.el Irie Shinsuke: changed subr.el @@ -2028,6 +2267,10 @@ Ismail S: changed org-capture.el Istvan Marko: changed gnus-agent.el xfns.c +Itai Seggev: changed src/Makefile.in + +Itai Y. Efrat: changed browse-url.el + Itai Zukerman: changed mm-decode.el Ivan Andrus: changed editfns.c epg.el ffap.el find-file.el ibuf-ext.el @@ -2046,6 +2289,8 @@ Ivan Shmakov: changed eww.el shr.el desktop.el eww.texi faces.el files.el erc-track.el facemenu.el files.texi iso-transl.el misearch.el nndoc.el rcirc.el simple.el smerge-mode.el and 5 other files +Ivan Sokolov: changed ansi-color.el project.el + Ivan Vilata i Balaguer: changed org-clock.el org.texi Ivan Zakharyaschev: changed codepage.el lread.c @@ -2064,10 +2309,7 @@ Jack Duthen: changed which-func.el Jack Repenning: changed unexelfsgi.c -Jackson Ray Hamilton: changed js.el jsx-unclosed-2.jsx jsx.jsx js.js - jsx-comment-string.jsx files.el jsx-align-gt-with-lt.jsx - jsx-indent-level.jsx jsx-quote.jsx jsx-self-closing.jsx - jsx-unclosed-1.jsx sgml-mode.el +Jackson Ray Hamilton: changed js.el files.el sgml-mode.el Jack Twilley: changed message.el @@ -2077,10 +2319,20 @@ Jacques Duthen: co-wrote ps-print.el ps-samp.el Jae-hyeon Park: changed fontset.el -Jaesup Kwak: changed xwidget.c +Jaesup Kwak: changed xwidget.c nsxwidget.m xwidget.el nsxwidget.h + xwidget.h Info.plist.in configure.ac emacs.c nsterm.m src/Makefile.in Jaeyoun Chung: changed hangul3.el hanja3.el gnus-mule.el hangul.el +Jakub-W: changed calculator.el + +J. Alexander Branham: wrote conf-mode-tests.el +and changed checkdoc.el indent.el text.texi bibtex.el em-rebind.el + esh-util.el js.el lpr.el message.el subr.el .dir-locals.el + auth-source-pass.el bug-reference.el comint.el conf-mode.el dired-x.el + dired.el ediff-diff.el ediff-help.el ediff-hook.el ediff-init.el + and 43 other files + Jambunathan K: wrote ox-odt.el and co-wrote ox-html.el and changed org-lparse.el org.el org.texi ox.el icomplete.el @@ -2099,6 +2351,8 @@ and changed fns.c nxml-mode.texi window.c xselect.c James Cloos: wrote arabic.el and changed url-history.el xfns.c xterm.c xterm.h +James N. V. Cash: changed tab-bar.el eldoc.el help-fns.el + James R. Larus: co-wrote mh-e.el James R. Van Zandt: changed sh-script.el @@ -2109,6 +2363,8 @@ James TD Smith: changed org.el org-colview.el org-clock.el org-remember.el org-plot.el org-agenda.el org-compat.el org-habit.el org.texi +James Thomas: changed ind-util.el quail/indian.el + James Troup: changed gnus-sum.el James Van Artsdalen: changed unexcoff.c @@ -2119,7 +2375,7 @@ Jamie Zawinski: wrote mailabbrev.el tar-mode.el and co-wrote byte-opt.el byte-run.el bytecomp.el disass.el font-lock.el and changed bytecode.c mail-extr.el subr.el -Jan Beich: changed configure.ac mml-smime.el +Jan Beich: changed configure.ac efaq.texi mml-smime.el term.c Jan Böcker: wrote ol-docview.el and changed org.el org-docview.el org.texi @@ -2128,7 +2384,7 @@ Jan Djärv: wrote dnd.el dynamic-setting.el x-dnd.el and changed gtkutil.c xterm.c nsterm.m xfns.c configure.ac nsfns.m xmenu.c xterm.h nsterm.h nsmenu.m gtkutil.h keyboard.c x-win.el emacs.c frame.c src/Makefile.in process.c xsettings.c cus-start.el nsfont.m - frames.texi and 304 other files + frames.texi and 303 other files Jan-Hein Buhrman: changed ange-ftp.el env.el @@ -2146,12 +2402,19 @@ Jan Schormann: wrote solitaire.el Jan Seeger: changed ox-publish.el parse-time.el -Jan Tatarik: wrote gnus-icalendar.el +Jan Synacek: changed emacs-lisp-intro.texi minibuffer.el mwheel.el + vc-git.el + +Jan Tatarik: wrote gnus-icalendar-tests.el gnus-icalendar.el and changed gnus-score.el gnus-logic.el Jan Vroonhof: changed gnus-cite.el gnus-msg.el nntp.el -Jared Finder: changed progmodes/compile.el +Jared Finder: changed menu-bar.el term.c commands.texi frame.c isearch.el + mouse.el tmm.el wid-edit.el xt-mouse.el artist.el dispnew.c + ediff-wind.el ediff.el faces.el foldout.el frames.texi keyboard.c + lread.c mouse-drag.el progmodes/compile.el ruler-mode.el + and 7 other files Jarek Czekalski: changed keyboard.c callproc.c mini.texi minibuf.c misc.texi server.el shell.el w32fns.c xgselect.c @@ -2161,7 +2424,7 @@ and changed add-log.el filecache.el progmodes/grep.el comint.el gnus-art.el gnus-sum.el gnus.texi ispell.el lisp-mnt.el man.el nnmail.el apropos.el autorevert.el checkdoc.el cperl-mode.el css-mode.el desktop.el em-ls.el emacs-lisp/debug.el emacsclient.1 - executable.el and 23 other files + executable.el and 24 other files Jarmo Hurri: wrote ob-processing.el and changed org-gnus.el org-table.el org.texi @@ -2171,10 +2434,15 @@ and changed url-auth.el Jarosław Rzeszótko: changed ielm.el url-http.el +Jashank Jeremy: changed elisp-mode.el faces.el frame.c frame.el frame.h + xfaces.c + Jason Baker: changed gnus-art.el Jason Dunsmore: changed org.el ox-html.el +Jason Kim: changed shell.el + Jason L. Wright: changed smtpmail.el Jason Merrill: changed gnus-sum.el add-log.el gnus-salt.el imap.el @@ -2214,8 +2482,12 @@ J.D. Smith: changed idlwave.el idlw-shell.el idlw-help.el idlw-rinfo.el Jean-Christophe Helary: changed emacs-lisp-intro.texi ns-win.el package-tests.el package.el strings.texi subr-x.el ucs-normalize.el +Jean Forget: changed cal-french.el + Jean Haidouk: changed latin-alt.el latin-post.el latin-pre.el +Jean Louis: changed dired-aux.el + Jean-Philippe Gravel: changed gdb-mi.el Jean-Philippe Theberge: wrote thumbs.el @@ -2246,8 +2518,14 @@ and changed mh-e.el mh-comp.el mh-utils.el mh-mime.el mh-customize.el mh-folder.el mh-funcs.el mh-alias.el mh-seq.el mh-show.el Makefile bsdos4.h mh-identity.el mh-junk.el mh-letter.el +Jeff Spencer: changed dired.el + +Jeff Walsh: changed xwidget.c + Jelle Licht: changed auth-source-pass-tests.el auth-source-pass.el +Jen-Chieh Shen: changed window.el + Jens Krinke: changed smime.el Jens Lautenbacher: changed gnus.el @@ -2255,6 +2533,8 @@ Jens Lautenbacher: changed gnus.el Jens Lechtenboerger: changed mml-sec.el gnus-util.el message.texi mml-smime.el mml1991.el mml2015.el message.el package.el package.texi +Jens Lechtenbörger: wrote gnus-util-tests.el mml-sec-tests.el + Jens Petersen: wrote find-func.el and changed mule-cmds.el pcmpl-rpm.el @@ -2274,6 +2554,8 @@ Jérémie Courrèges-Anglas: changed org.texi ox-latex.el Jeremy Bertram Maitin-Shepard: changed erc.el erc-backend.el erc-button.el erc-track.el mml.el +Jeremy Compostella: changed mml.el + Jérémy Compostella: changed tramp-sh.el battery.el keyboard.c windmove.el window.el xdisp.c @@ -2300,6 +2582,8 @@ and changed gnus-sum.el gnus-art.el message.el gnus-group.el gnus-msg.el Jhair Tocancipa Triana: changed gnus-audio.el +Jiacai Liu: changed project.el + Jiajie Chen: changed button.el Jihyun Cho: wrote hangul.el hanja-util.el @@ -2309,7 +2593,7 @@ and co-wrote pcvs.el wyse50.el and changed keyboard.c xterm.c xfns.c window.c process.c ymakefile dispnew.c xdisp.c sysdep.c configure.ac lisp.h Makefile.in keymap.c configure make-dist buffer.c frame.c screen.c simple.el alloc.c emacs.c - and 402 other files + and 403 other files Jim Diamond: changed server.el @@ -2321,13 +2605,20 @@ Jim Meyering: changed lread.c make-docfile.c w32.c w32font.c copyright.el alloc.c artist.el autoinsert.el buffer.h callproc.c character.h charset.c configure and 55 other files -Jimmy Aguilar Mena: changed xdisp.c xfaces.c dispextern.h face-remap.el - hl-line.el icomplete.el xwidget.c +Jimmy Aguilar Mena: changed xdisp.c xfaces.c dispextern.h mouse.el + face-remap.el hl-line.el icomplete.el uniquify.el xwidget.c -Jimmy Yuen Ho Wong: changed nsm.el gnutls.c gnutls.el net-utils.el +Jimmy Yuen Ho Wong: changed nsm.el gnutls.c gnutls.el disass.el + net-utils.el Jim Paris: changed process.c +Jim Porter: changed delsel.el ansi-color-tests.el ansi-color.el + bindings.el term-tests.el term.el tramp.el callproc.c + dichromacy-theme.el diff-mode.el files-tests.el gdb-mi.el grep-tests.el + ispell.el leuven-theme.el man.el menu-bar.el misterioso-theme.el + process.c process.h progmodes/grep.el and 6 other files + Jim Radford: changed gnus-start.el Jim Salem: wrote completion.el @@ -2363,12 +2654,14 @@ Joanna Pluta: changed TUTORIAL.pl João Cachopo: changed spam.el João Távora: wrote elec-pair.el electric-tests.el flymake-cc.el - jsonrpc-tests.el jsonrpc.el message-tests.el -and changed flymake.el flymake-proc.el icomplete.el minibuffer.el - flymake-tests.el flymake.texi elisp-mode.el flymake-elisp.el - electric.el flymake-ui.el text.texi json-tests.el tex-mode.el - errors-and-warnings.c json.c xref.el auth-source-pass.el linum.el - maintaining.texi message.el progmodes/python.el and 30 other files + jsonrpc-tests.el jsonrpc.el message-tests.el shorthands.el +and changed flymake.el icomplete.el minibuffer.el flymake-proc.el + eldoc.el elisp-mode.el flymake.texi flymake-tests.el flymake-elisp.el + electric.el elisp-mode-tests.el lread.c flymake-ui.el + progmodes/python.el text.texi xref.el json-tests.el project.el + tex-mode.el buffers.texi cfengine.el and 55 other files + +João Tãvora: changed jsonrpc.el Jochen Hein: changed gnus-art.el @@ -2438,6 +2731,8 @@ John Anthony: changed inf-lisp.el ruby-mode.el text-mode.el John Basrai: changed man.el +John Cummings: changed files.el + John F. Carr: changed dired.c John Fremlin: changed gnus-msg.el message.el @@ -2502,8 +2797,12 @@ John Yates: changed hideshow.el Jon Anders Skorpen: changed ox-publish.el -Jonas Bernoulli: changed eieio.el button.el cus-edit.el ido.el - lisp-mnt.el tabulated-list.el tips.texi +Jonas Bernoulli: wrote transient.el +and changed epa.el epa-file.el lisp-mnt.el tips.texi dired-aux.el + dired-x.el dired.el eieio.el epa-dired.el font-lock.el + progmodes/compile.el simple.el allout.el button.el comint.el + cus-edit.el eldoc.el emacs-module-tests.el epa-hook.el epg-config.el + epg.el and 9 other files Jonas Hoersch: changed org-inlinetask.el org.el @@ -2534,10 +2833,11 @@ Jonathan Tomer: changed files-tests.el files.el tramp-tests.el Jonathan Vail: changed vc.el -Jonathan Yavner: wrote ses.el tcover-ses.el tcover-unsafep.el - testcover.el unsafep.el +Jonathan Yavner: wrote ses.el tcover-ses.el testcover.el unsafep-tests.el + unsafep.el and changed ses.texi ses-example.ses edebug.el editfns.c files.el - functions.texi misc/Makefile.in subr.el variables.texi + functions.texi misc/Makefile.in subr.el tcover-unsafep.el + variables.texi Jon Ericson: changed gnus.el spam-report.el @@ -2560,9 +2860,11 @@ and changed erc.el erc-track.el erc-backend.el erc-match.el misc.el erc-ibuffer.el erc-macs.el erc-page.el erc-pcomplete.el erc-sound.el minibuffer.el and 15 other files -Jose A. Ortega Ruiz: changed gnus-sum.el url-http.el +Jorge P. De Morais Neto: changed TUTORIAL cl.texi -Jose E. Marchesi: changed ada-mode.el gomoku.el simple.el smtpmail.el +Jose A. Ortega Ruiz: changed mixal-mode.el gnus-sum.el url-http.el + +Jose E. Marchesi: changed gomoku.el simple.el smtpmail.el José L. Doménech: changed dired-aux.el @@ -2594,18 +2896,22 @@ Jostein Kjønigsen: changed nxml-mode.el progmodes/compile.el Jouni K. Seppänen: changed gnus.texi nnimap.el mm-url.el +J. Scott Berg: changed xterm.c + +Juan José García-Ripoll: changed w32image.c configure.ac image.c + w32-win.el w32.c w32term.c w32term.h + Juan León Lahoz García: wrote wdired.el and changed files.el perl-mode.el -Juanma Barranquero: wrote emacs-lock.el frameset.el help-tests.el - keymap-tests.el +Juanma Barranquero: wrote emacs-lock.el frameset.el +and co-wrote help-tests.el keymap-tests.el and changed subr.el desktop.el w32fns.c faces.el simple.el emacsclient.c files.el server.el bs.el help-fns.el xdisp.c org.el w32term.c w32.c buffer.c keyboard.c ido.el image.c window.c eval.c allout.el - and 1235 other files + and 1224 other files -Juan Pechiar: wrote ob-mscgen.el -and changed ob-octave.el +Juan Pechiar: changed ob-octave.el Juergen Kreileder: changed imap.el nnimap.el @@ -2615,7 +2921,7 @@ Jules Tamagnan: changed progmodes/python.el Julian Gehring: changed org.texi orgcard.tex -Julian Scheid: changed tramp.el color.el +Julian Scheid: changed tramp.el cl-extra.el color.el ert.el Julien Avarre: changed gnus-fun.el @@ -2635,6 +2941,8 @@ Jun Hao: changed auth-source.el desktop.el Junio Hamano: changed window.el +Junya Takahashi: changed epa-file.el + Jure Cuhalev: changed ispell.el Jürgen Hartmann: changed window.el @@ -2643,12 +2951,12 @@ Jürgen Hötzel: wrote tramp-adb.el and changed tramp-gvfs.el tramp-sh.el comint.el em-unix.el esh-util.el tramp-cache.el tramp.el url-handlers.el wid-edit.el -Juri Linkov: wrote files-x.el misearch.el replace-tests.el tab-bar.el - tab-line.el -and changed isearch.el info.el simple.el replace.el dired.el dired-aux.el - progmodes/grep.el progmodes/compile.el startup.el subr.el diff-mode.el - files.el menu-bar.el faces.el bindings.el display.texi image-mode.el - desktop.el comint.el minibuffer.el search.texi and 419 other files +Juri Linkov: wrote compose.el files-x.el misearch.el repeat-tests.el + replace-tests.el tab-bar.el tab-line.el +and changed isearch.el simple.el info.el replace.el dired.el dired-aux.el + progmodes/grep.el subr.el window.el image-mode.el mouse.el diff-mode.el + files.el menu-bar.el minibuffer.el progmodes/compile.el startup.el + faces.el vc.el display.texi search.texi and 444 other files Jussi Lahdenniemi: changed w32fns.c ms-w32.h msdos.texi w32.c w32.h w32console.c w32heap.c w32inevt.c w32term.h @@ -2661,7 +2969,7 @@ Justin Gordon: changed ox-md.el Justin Sheehy: changed gnus-sum.el nntp.el -Justin Timmons: changed progmodes/python.el +Justin Timmons: changed apropos.el progmodes/python.el Justus Piater: changed org-agenda.el smtpmail.el @@ -2672,7 +2980,7 @@ and co-wrote longlines.el tramp-sh.el tramp.el and changed message.el gnus-agent.el gnus-sum.el files.el nnmail.el tramp.texi nntp.el gnus.el simple.el ange-ftp.el dired.el paragraphs.el bindings.el files.texi gnus-art.el gnus-group.el man.el INSTALL - Makefile.in crisp.el fileio.c and 44 other files + Makefile.in crisp.el fileio.c and 45 other files Kailash C. Chowksey: changed HELLO ind-util.el kannada.el knd-util.el lisp/Makefile.in loadup.el @@ -2681,13 +2989,15 @@ Kai Tetzlaff: changed ox-publish.el url-http.el Kalle Kankare: changed image.c -Kalle Olavi Niemitalo: changed keyboard.c +Kalle Olavi Niemitalo: changed xselect.c keyboard.c xfns.c xterm.h Kanematsu Daiji: changed nnimap.el Kan-Ru Chen: changed nnir.el ecomplete.el window.el gnus-diary.el gnus.texi ibuf-ext.el nnmbox.el nroff-mode.el +Kapuze Martin: changed python.wy + Karel Klíč: changed fileio.c files.el configure.ac eval.c ftfont.c lisp.h src/Makefile.in text.texi tramp.el @@ -2736,6 +3046,8 @@ Károly Lőrentey: changed xfns.c bindings.el keyboard.c menu-bar.el x-win.el xdisp.c xt-mouse.el xterm.c xterm.h .gdbinit AT386.el HELLO README and 101 other files +Karthik Chikmagalur: changed pcmpl-unix.el + Katsuhiro Hermit Endo: changed gnus-group.el gnus-spec.el Katsumi Yamaoka: wrote canlock.el @@ -2744,10 +3056,10 @@ and changed gnus-art.el gnus-sum.el message.el mm-decode.el gnus.texi shr.el rfc2047.el gnus-start.el gnus.el nntp.el gnus-agent.el nnrss.el mm-uu.el nnmail.el emacs-mime.texi and 161 other files -Kaushal Modi: changed files.el isearch.el apropos.el calc-yank.el - custom.texi desktop.el ediff-diff.el eww.el ffap.el maintaining.texi - printing.el ps-print.el tips.texi variables.texi vc-hooks.el - vc1-xtra.texi woman.el +Kaushal Modi: changed dired-aux.el files.el isearch.el apropos.el + calc-yank.el custom.texi desktop.el dired.el dired.texi ediff-diff.el + eww.el ffap.el maintaining.texi printing.el ps-print.el tips.texi + variables.texi vc-hooks.el vc1-xtra.texi woman.el Kaushik Srenevasan: changed gdb-mi.el @@ -2755,8 +3067,8 @@ Kaveh R. Ghazi: changed delta88k.h xterm.c Kayvan Sylvan: changed supercite.el -Kazuhiro Ito: changed coding.c flow-fill.el font.c keyboard.c - make-mode.el net/starttls.el xdisp.c +Kazuhiro Ito: changed coding.c uudecode.el flow-fill.el font.c + japan-util.el keyboard.c make-mode.el net/starttls.el xdisp.c Kazushi Marukawa: changed filelock.c hexl.c profile.c unexalpha.c @@ -2769,6 +3081,8 @@ Keitaro Miyazaki: changed re-builder.el Keith Amidon: co-wrote auth-source-pass.el and changed auth-source-pass-tests.el +Keith David Bershatsky: changed ns-win.el tex-mode.el + Keith Gabryelski: wrote hexl.c hexl.el Keith Packard: changed font.c @@ -2777,13 +3091,13 @@ Kelly Dean: changed simple.el help-mode.el desktop.el files.el lisp.el register.el easy-mmode.el fileio.c help-fns.el help-macro.el help.el keyboard.c package-x.el rect.el windmove.el winner.el -Kelvin White: changed erc.el erc-pcomplete.el erc.texi NEWS.24 - erc-backend.el erc-ring.el erc-stamp.el +Kelvin White: changed erc.el erc-pcomplete.el erc.texi erc-backend.el + erc-ring.el erc-stamp.el Ken Brown: changed configure.ac gmalloc.c sheap.c emacs.c w32fns.c fileio.c w32term.c unexcw.c conf_post.h cygwin.h filenotify-tests.el - lisp.h browse-url.el dispextern.h emacs.rc.in fileio-tests.el frame.c - image.c keyboard.c profiler.c src/Makefile.in and 48 other files + src/Makefile.in lisp.h sysdep.c browse-url.el dispextern.h emacs.rc.in + fileio-tests.el frame.c image.c keyboard.c and 50 other files Ken Brush: changed emacsclient.c @@ -2793,7 +3107,7 @@ and co-wrote ps-def.el ps-mule.el ps-print.el ps-samp.el quail.el and changed coding.c mule-cmds.el mule.el fontset.c charset.c xdisp.c font.c fontset.el xterm.c fileio.c mule-conf.el ftfont.c characters.el fns.c mule-diag.el coding.h charset.h ccl.c xfaces.c editfns.c - composite.c and 389 other files + composite.c and 387 other files Kenichi Okada: co-wrote sasl-cram.el sasl-digest.el @@ -2828,7 +3142,7 @@ Kevin Blake: changed font-lock.el ring.el Kevin Broadey: wrote foldout.el -Kevin Brubeck Unhammer: changed erc-track.el +Kevin Brubeck Unhammer: changed erc-join.el erc-track.el erc.el Kevin Christian: changed gnus-score.el @@ -2851,7 +3165,9 @@ and changed gnus-agent.el gnus-sum.el gnus-start.el gnus-int.el nntp.el Kevin Layer: changed mml.el w32proc.c -Kévin Le Gouguec: changed font-lock.el font-lock-tests.el +Kévin Le Gouguec: changed font-lock.el gnus-sum.el dired-aux-tests.el + dired-aux.el electric-tests.el font-lock-tests.el gnus.el message.texi + project.el sh-script.el shr.el Kevin Rodgers: changed compile.el mailabbrev.el progmodes/compile.el dired-x.el files.el ange-ftp.el byte-opt.el desktop.el diff-mode.el @@ -2863,14 +3179,16 @@ Kevin Ryde: wrote info-xref.el and changed info-look.el info.el checkdoc.el cl.texi compilation.txt etags.c arc-mode.el ffap.el gnus-art.el gnus-sum.el mule.el os.texi progmodes/compile.el woman.el browse-url.el copyright.el dig.el - files.el flyspell.el keyboard.c mailcap.el and 86 other files + files.el flyspell.el keyboard.c mailcap.el and 88 other files + +Kien Nguyen: changed comp.c Kim F. Storm: wrote bindat.el cua-base.el cua-gmrk.el cua-rect.el ido.el keypad.el kmacro.el and changed xdisp.c dispextern.h process.c simple.el window.c keyboard.c xterm.c dispnew.c subr.el w32term.c lisp.h fringe.c display.texi macterm.c alloc.c fns.c xfaces.c keymap.c xfns.c xterm.h .gdbinit - and 249 other files + and 248 other files Kimit Yada: changed copyright.el @@ -2884,6 +3202,8 @@ Kirk Kelsey: changed make-mode.el vc-hg.el Kishore Kumar: changed terminal.el +Kiso Katsuyuki: changed tab-line.el + Klaus Straubinger: changed url-http.el url-history.el pcmpl-rpm.el url-cookie.el url.el @@ -2906,16 +3226,18 @@ Koichi Arakawa: changed tramp-sh.el w32proc.c Konrad Hinsen: wrote ol-eshell.el and changed ob-python.el -Konstantin Kharlamov: changed ada-mode.el calc-aent.el calc-ext.el - calc-lang.el cc-mode.el cperl-mode.el css-mode.el cua-rect.el - diff-mode.el dnd.el ebnf-abn.el ebnf-dtd.el ebnf-ebx.el - emacs-module-tests.el epg.el faces.el gnus-art.el gtkutil.c hideif.el - htmlfontify.el lex.el and 24 other files +Konstantin Kharlamov: changed smerge-mode.el diff-mode.el files.el + autorevert.el calc-aent.el calc-ext.el calc-lang.el cc-mode.el + cperl-mode.el css-mode.el cua-rect.el dnd.el ebnf-abn.el ebnf-dtd.el + ebnf-ebx.el emacs-module-tests.el epg.el faces.el gnus-art.el gtkutil.c + hideif.el and 26 other files Konstantin Kliakhandler: changed org-agenda.el Konstantin Novitsky: changed progmodes/python.el +Kristian Hole: changed sql.el + Kristoffer Grönlund: wrote wombat-theme.el Krzysztof Jurewicz: changed erc.el secrets.el @@ -2935,11 +3257,12 @@ and changed battery.el ielm.el octave-hlp.el octave-mode.texi term.el Kurt Swanson: changed gnus-art.el gnus-salt.el gnus-sum.el gnus-ems.el gnus-group.el gnus-msg.el gnus-score.el gnus-util.el nnmail.el window.c +Kyle Hubert: changed ediff-util.el + Kyle Jones: wrote life.el and changed saveconf.el buffer.c mail-utils.el sendmail.el -Kyle Meyer: wrote ob-stan.el -and changed org-compat.el ox.el +Kyle Meyer: changed org-compat.el ox.el Kyotaro Horiguchi: changed coding.c indent.c @@ -2968,29 +3291,29 @@ and co-wrote dabbrev.el imenu.el Lars Ljung: changed esh-ext.el isearch.el Lars Magne Ingebrigtsen: wrote compface.el decompress-tests.el dns.el - dom.el ecomplete.el eww.el exif.el format-spec.el gnus-agent.el - gnus-art.el gnus-async.el gnus-bcklg.el gnus-cache.el gnus-cloud.el - gnus-demon.el gnus-draft.el gnus-dup.el gnus-eform.el gnus-fun.el - gnus-group.el gnus-html.el gnus-int.el gnus-logic.el gnus-picon.el - gnus-range.el gnus-salt.el gnus-spec.el gnus-srvr.el gnus-start.el - gnus-sum.el gnus-undo.el gnus-util.el gnus-uu.el gnus-win.el - ietf-drums.el image-converter.el mail-parse.el mail-prsvr.el - mail-source.el message.el messcompat.el mm-archive.el mm-view.el mml.el - netrc.el network-stream-tests.el network-stream.el nnagent.el nndir.el - nndraft.el nngateway.el nnmail.el nnoo.el nntp.el nnweb.el nsm.el - parse-time-tests.el puny.el qp.el rfc2045.el rfc2104-tests.el - rfc2231.el rtree.el score-mode.el shr-tests.el shr.el spam.el - text-property-search-tests.el text-property-search.el url-domsuf.el - url-queue.el + dom.el ecomplete.el erc-tests.el eww.el exif.el format-spec.el + gnus-agent.el gnus-art.el gnus-async.el gnus-bcklg.el gnus-cache.el + gnus-cloud.el gnus-demon.el gnus-draft.el gnus-dup.el gnus-eform.el + gnus-fun.el gnus-group.el gnus-html.el gnus-int.el gnus-logic.el + gnus-picon.el gnus-range.el gnus-salt.el gnus-spec.el gnus-srvr.el + gnus-start.el gnus-sum.el gnus-undo.el gnus-util.el gnus-uu.el + gnus-win.el ietf-drums.el image-converter.el mail-parse.el + mail-prsvr.el mail-source.el message.el messcompat.el mm-archive.el + mm-view.el mml.el netrc.el network-stream-tests.el network-stream.el + nnagent.el nndir.el nndraft.el nngateway.el nnmail.el nnoo.el nntp.el + nnweb.el nsm.el parse-time-tests.el puny.el qp.el rfc2045.el + rfc2104-tests.el rfc2231.el rtree.el score-mode.el shr-tests.el shr.el + spam.el text-property-search-tests.el text-property-search.el + url-domsuf.el url-queue.el and co-wrote gnus-kill.el gnus-mh.el gnus-msg.el gnus-score.el gnus-topic.el gnus.el gssapi.el mailcap.el mm-bodies.el mm-decode.el mm-encode.el mm-util.el nnbabyl.el nndoc.el nneething.el nnfolder.el nnheader.el nnimap.el nnmbox.el nnmh.el nnml.el nnspool.el nnvirtual.el rfc2047.el svg.el time-date.el -and changed gnus.texi process.c subr.el simple.el files.el gnutls.c - gnus-ems.el smtpmail.el display.texi url-http.el auth-source.el - gnus-cite.el pop3.el dired.el edebug.el gnus-xmas.el text.texi image.el - image.c gnutls.el nnrss.el and 651 other files +and changed gnus.texi simple.el subr.el files.el process.c text.texi + display.texi dired.el gnutls.c gnus-ems.el smtpmail.el help-fns.el + auth-source.el url-http.el edebug.el gnus-cite.el image.el pop3.el + dired-aux.el fns.c image.c and 859 other files Lars Rasmusson: changed ebrowse.c @@ -3016,15 +3339,15 @@ Lee Duhem: changed eval.c Leigh Stoller: changed emacsclient.c server.el -Lele Gaifax: changed progmodes/python.el flymake.el python-tests.el - TUTORIAL.it flymake-proc.el flymake.texi isearch.el +Lele Gaifax: changed progmodes/python.el TUTORIAL.it flymake.el + python-tests.el flymake-proc.el flymake.texi isearch.el Lennart Borgman: co-wrote ert-x.el -and changed nxml-mode.el tutorial.el re-builder.el window.el ada-xref.el - buff-menu.el emacs-lisp/debug.el emacsclient.c filesets.el flymake.el - help-fns.el isearch.el linum.el lisp-mode.el lisp.el mouse.el - recentf.el remember.el replace.el ruby-mode.el shell.el - and 4 other files +and changed nxml-mode.el tutorial.el re-builder.el window.el buff-menu.el + emacs-lisp/debug.el emacsclient.c filesets.el flymake.el help-fns.el + isearch.el linum.el lisp-mode.el lisp.el mouse.el progmodes/grep.el + recentf.el remember.el replace.el reveal.el ruby-mode.el + and 5 other files Lennart Staflin: changed dired.el diary-ins.el diary-lib.el tq.el xdisp.c @@ -3042,8 +3365,12 @@ Leonardo Nobrega: changed progmodes/python.el Leonard Randall: changed org-bibtex.el reftex-parse.el +Leon Vack: changed erc-services.el + Leo P. White: changed eieio-custom.el +Leo Vivier: changed dired-aux.el + Levin Du: changed parse-time.el org-clock.el Le Wang: changed org-src.el comint.el hilit-chg.el misc.el @@ -3056,15 +3383,20 @@ Liam Stitt: changed url-file.el url-vars.el Liang Wang: changed etags.el +Liāu, Kiong-Gē 廖宮毅: changed comp.c mingw-cfg.site + Lixin Chin: changed bibtex.el Lloyd Zusman: changed mml.el pgg-gpg.el Lluís Vilanova: changed ede/linux.el +Logan Perkins: changed keyboard.c + Luca Capello: changed mm-encode.el -Lucas Werkmeister: changed emacs.c emacs.service +Lucas Werkmeister: changed emacs.c emacs.service nxml-mode.el + sgml-mode.el Lucid, Inc.: changed byte-opt.el byte-run.el bytecode.c bytecomp.el delsel.el disass.el faces.el font-lock.el mailabbrev.el select.el @@ -3074,7 +3406,7 @@ Luc Teirlinck: wrote help-at-pt.el and changed files.el autorevert.el cus-edit.el subr.el simple.el frames.texi startup.el display.texi files.texi dired.el comint.el modes.texi custom.texi emacs.texi fns.c frame.el ielm.el minibuf.texi - variables.texi buffers.texi commands.texi and 211 other files + variables.texi buffers.texi commands.texi and 212 other files Ludovic Courtès: wrote nnregistry.el and changed configure.ac gnus.texi loadup.el @@ -3090,9 +3422,9 @@ Lukas Huonker: changed tetris.el Łukasz Jędrzejewski: changed auth-source-pass-tests.el auth-source-pass.el -Łukasz Stelmach: changed erc.el ps-print.el cookie1.el gnus-group.el - gtkutil.c message.el org-agenda.el org-bbdb.el org.el org.texi - ox-html.el ox.el simple.el +Łukasz Stelmach: changed erc.el message.el ps-print.el cookie1.el + gnus-group.el gtkutil.c org-agenda.el org-bbdb.el org.el org.texi + ox-html.el ox.el shr.el simple.el Luke Lee: changed hideif.el @@ -3102,7 +3434,7 @@ Lute Kamstra: changed modes.texi emacs-lisp/debug.el generic-x.el generic.el font-lock.el simple.el subr.el battery.el debugging.texi easy-mmode.el elisp.texi emacs-lisp/generic.el hl-line.el info.el octave.el basic.texi bindings.el calc.el cmdargs.texi diff-mode.el - doclicense.texi and 290 other files + doclicense.texi and 288 other files Lynn Slater: wrote help-macro.el @@ -3123,12 +3455,14 @@ Malcolm Purvis: changed spam-stat.el Manoj Srivastava: wrote manoj-dark-theme.el -Manuel Giraud: changed ox-html.el ox-publish.el org.texi +Manuel Giraud: changed ox-html.el ox-publish.el vc.el idlwave.el org.texi Manuel Gómez: changed speedbar.el Manuel Serrano: wrote flyspell.el +Manuel Uberti: changed project.el + Marcelo Toledo: changed TUTORIAL.pt_BR TUTORIAL.cn TUTORIAL.cs TUTORIAL.de TUTORIAL.es TUTORIAL.fr TUTORIAL.it TUTORIAL.ja TUTORIAL.ko TUTORIAL.pl TUTORIAL.ro TUTORIAL.ru TUTORIAL.sk TUTORIAL.sl TUTORIAL.th @@ -3144,11 +3478,13 @@ and changed battery.el doc-view.el elisp-mode-tests.el fill.el lisp.el Marc Lefranc: changed gnus-art.el +Marco Centurion: changed dired-aux.el files.el files.texi + Marco Melgazzi: changed term.el Marco Wahl: wrote ol-eww.el -and changed org-agenda.el page-ext.el org.el scroll-lock-tests.el - scroll-lock.el +and changed org-agenda.el page-ext.el ffap.el kmacro.el kmacro.texi + org.el scroll-lock-tests.el scroll-lock.el Marco Walther: changed mips-siemens.h unexelfsni.c unexsni.c @@ -3178,10 +3514,11 @@ and changed erc.el erc-dcc.el erc-speak.el Makefile erc-bbdb.el and 48 other files Mark A. Hershberger: changed xml.el nnrss.el mm-url.el cperl-mode.el - isearch.el vc-bzr.el NXML-NEWS cc-mode.texi compilation.txt ede.texi + isearch.el vc-bzr.el OpenDocument-schema-v1.3+libreoffice.rnc + OpenDocument-schema-v1.3.rnc cc-mode.texi compilation.txt ede.texi eieio.texi esh-mode.el flymake.el gnus-group.el menu-bar.el misc/Makefile.in nxml-mode.texi progmodes/compile.el - progmodes/python.el programs.texi and 8 other files + progmodes/python.el and 10 other files Mark Davies: changed amdx86-64.h configure configure.ac hp800.h lib-src/Makefile.in netbsd.h ralloc.c sh3el.h sort.el @@ -3217,9 +3554,9 @@ Mark Osbourne: changed hexl-mode.el Mark Oteiza: wrote mailcap-tests.el md4-tests.el xdg-tests.el xdg.el and changed image-dired.el dunnet.el mpc.el eww.el json.el calc-units.el - subr-x.el subr.el lcms.c message.el tex-mode.el cl-macs.el cl.texi - ibuffer.el lcms-tests.el mailcap.el cl-print.el emacs-lisp/chart.el - files.el htmlfontify.el pcase.el and 178 other files + lcms.c subr-x.el subr.el message.el tex-mode.el cl-macs.el cl.texi + ibuffer.el lcms-tests.el mailcap.el progmodes/python.el cl-print.el + eldoc.el emacs-lisp/chart.el files.el and 173 other files Mark Plaksin: changed nnrss.el term.el @@ -3242,7 +3579,7 @@ and changed cus-edit.el files.el progmodes/compile.el rmail.el tex-mode.el find-func.el rmailsum.el simple.el cus-dep.el dired.el mule-cmds.el rmailout.el checkdoc.el configure.ac custom.el emacsbug.el gnus.el help-fns.el ls-lisp.el mwheel.el sendmail.el - and 126 other files + and 125 other files Markus Sauermann: changed lisp-mode.el @@ -3267,6 +3604,8 @@ Martin Buchholz: changed etags.c Martin Jesper Low Madsen: changed auth-source.el +Martin Joerg: changed tramp-sh.el + Martin J. Reed: changed ldap.el Martin Kletzander: changed erc-join.el @@ -3283,9 +3622,9 @@ Martin Neitzel: changed supercite.el Martin Pohlack: changed iimage.el pc-select.el Martin Rudalics: changed window.el window.c windows.texi frame.c xdisp.c - w32fns.c xterm.c frames.texi w32term.c xfns.c frame.el display.texi - help.el buffer.c window.h cus-start.el frame.h dispnew.c mouse.el - nsfns.m gtkutil.c and 209 other files + xterm.c w32fns.c frames.texi w32term.c xfns.c frame.el display.texi + frame.h cus-start.el help.el buffer.c window.h mouse.el dispnew.c + nsfns.m gtkutil.c and 211 other files Martin Stjernholm: wrote cc-bytecomp.el and co-wrote cc-align.el cc-cmds.el cc-compat.el cc-defs.el cc-engine.el @@ -3304,7 +3643,9 @@ and changed ob-emacs-lisp.el Masahiko Sato: wrote vip.el -Masahiro Nakamura: changed ns-win.el nsterm.m +Masahiro Nakamura: changed mpc.el tramp.texi nsterm.m w32fns.c keyboard.c + ns-win.el nsmenu.m nsterm.h package.el refcard.tex shortdoc.el + strokes.el Masanobu Umeda: wrote metamail.el rmailsort.el timezone.el and co-wrote gnus-kill.el gnus-mh.el gnus-msg.el gnus.el nnbabyl.el @@ -3328,7 +3669,7 @@ Masayuki Ataka: changed texinfmt.el texinfo.el characters.el cmuscheme.el Masayuki Fujii: changed dnd.el w32-win.el Mathias Dahl: wrote image-dired.el -and changed tumme.el dired.el dired.texi +and changed tumme.el dired.el dired.texi abbrev.el abbrevs.texi Mathias Megyei: changed lisp/Makefile.in @@ -3336,7 +3677,12 @@ Mathieu Othacehe: changed tramp-adb.el Mats Lidell: changed TUTORIAL.sv european.el gnus-art.el org-element.el -Matt Armstrong: changed gnus-topic.el gnus.el imap.el message.el shell.el +Matt Armstrong: changed display.texi filelock-tests.el buffer.c + commands.texi filelock.c files.el gnus-topic.el gnus.el imap.el + lisp-mnt.el map-tests.el marker.c message.el shell.el simple.el + userlock.el + +Matt Beshara: changed js.el nsfns.m Matt Bisson: changed xterm.c @@ -3344,7 +3690,7 @@ Matt Curtis: changed pulse.el Matt Fidler: changed package.el -Matthew Bauer: changed comint.el startup.el +Matthew Bauer: changed comint.el shell.el startup.el Matthew Carter: changed sql.el @@ -3364,12 +3710,16 @@ Matthew Mundell: changed calendar.texi diary-lib.el files.texi Matthew Newton: changed imenu.el +Matthew White: changed buffer.c bookmark-tests.el bookmark.el + test-list.bmk + Matthias Dahl: changed faces.el process.c process.h Matthias Förste: changed files.el -Matthias Meulien: changed bookmark.el progmodes/python.el buff-menu.el - prog-mode.el simple.el tabify.el vc-dir.el vc-git.el +Matthias Meulien: changed bookmark.el progmodes/python.el vc-dir.el + buff-menu.el prog-mode.el simple.el tab-bar.el tabify.el vc-git.el + vc-tests.el Matthias Wiehl: changed gnus.el @@ -3384,11 +3734,13 @@ Matt Hodges: changed textmodes/table.el faces.el iswitchb.el simple.el edebug.texi eldoc.el em-hist.el em-pred.el fixit.texi icon.el ido.el locate.el paragraphs.el pcomplete.el repeat.el and 3 other files -Mattias Engdegård: changed rx.el searching.texi rx-tests.el autorevert.el - calc-tests.el regexp-opt.el filenotify.el subr.el files.el - progmodes/compile.el mouse.el bytecomp.el compile-tests.el - autorevert-tests.el byte-opt.el bytecomp-tests.el calc-alg.el - compilation.txt dired.el font.c regex-emacs.c and 161 other files +Mattias Engdegård: changed byte-opt.el rx.el rx-tests.el searching.texi + bytecomp-tests.el bytecomp.el calc-tests.el progmodes/compile.el + subr.el autorevert.el gdb-mi.el files.el regex-emacs-tests.el mouse.el + regexp-opt.el replace.el calc.el coding.c filenotify.el regex-emacs.c + calc-ext.el and 537 other files + +Mattias M: changed asm-mode-tests.el asm-mode.el Matt Lundin: changed org-agenda.el org.el org-bibtex.el org-footnote.el ox-publish.el org-bbdb.el org-datetree.el org-gnus.el @@ -3402,15 +3754,17 @@ Matt Simmons: changed message.el Matt Swift: changed dired.el editfns.c lisp-mode.el mm-decode.el outline.el progmodes/compile.el rx.el simple.el startup.el -Mauro Aranda: changed wid-edit.el cus-edit.el gnus.texi octave.el pong.el - autorevert.el cc-mode.texi control.texi custom-tests.el custom.el - dbus.texi dired-x.texi elisp-mode.el epa.el esh-mode.el - eshell/eshell.el eudc.texi files.texi functions.texi gnus-faq.texi - info.el and 14 other files +Mauro Aranda: changed wid-edit.el cus-edit.el custom.el wid-edit-tests.el + widget.texi custom-tests.el checkdoc-tests.el checkdoc.el + cus-edit-tests.el cus-theme.el customize.texi files.texi gnus.texi + octave.el pong.el autorevert.el button.el cc-mode.texi control.texi + custom--test-theme.el dbus.texi and 35 other files Maxime Edouard Robert Froumentin: changed gnus-art.el mml.el -Max Mikhanosha: changed org-agenda.el org-habit.el org.el +Maxim Nikulin: changed mailcap.el + +Max Mikhanosha: changed org-agenda.el org-habit.el keyboard.c org.el Memnon Anon: changed org.texi @@ -3419,14 +3773,15 @@ Micah Anderson: changed spook.lines Michael Albinus: wrote autorevert-tests.el dbus-tests.el dbus.el filenotify-tests.el filenotify.el files-x-tests.el secrets-tests.el secrets.el shadowfile-tests.el tramp-archive-tests.el tramp-archive.el - tramp-cmds.el tramp-compat.el tramp-crypt.el tramp-ftp.el tramp-gvfs.el - tramp-integration.el tramp-rclone.el tramp-smb.el tramp-sudoedit.el - tramp-tests.el url-tramp-tests.el url-tramp.el vc-tests.el zeroconf.el + tramp-cmds.el tramp-compat.el tramp-crypt.el tramp-ftp.el tramp-fuse.el + tramp-gvfs.el tramp-integration.el tramp-rclone.el tramp-smb.el + tramp-sshfs.el tramp-sudoedit.el tramp-tests.el url-tramp-tests.el + url-tramp.el vc-tests.el zeroconf.el and co-wrote tramp-cache.el tramp-sh.el tramp.el and changed tramp.texi tramp-adb.el trampver.el trampver.texi dbusbind.c - file-notify-tests.el files.el ange-ftp.el files.texi dbus.texi - autorevert.el tramp-fish.el kqueue.c tramp-gw.el tramp-imap.el os.texi - xesam.el configure.ac lisp.h shell.el gfilenotify.c and 253 other files + files.el ange-ftp.el file-notify-tests.el files.texi dbus.texi + autorevert.el tramp-fish.el kqueue.c tramp-gw.el os.texi shell.el + tramp-imap.el gitlab-ci.yml lisp.h README xesam.el and 280 other files Michael Ben-Gershon: changed acorn.h configure.ac riscix1-1.h riscix1-2.h unexec.c @@ -3453,19 +3808,18 @@ Michael Downes: changed gnus-sum.el Michael D. Prange: wrote fortran.el and changed tex-mode.el -Michael Gauland: wrote ob-ebnf.el -and co-wrote ob-scheme.el +Michael Gauland: co-wrote ob-scheme.el and changed ebnf2ps.el org-src.el Michael Gschwind: wrote iso-cvt.el Michael Harnois: changed nnimap.el -Michael Heerdegen: changed cl-macs.el subr.el control.texi copyright.el - css-mode.el dired.el easy-mmode.el filesets.el hi-lock.el macroexp.el - modula2.el ob-C.el ob-core.el ob-exp.el ob-groovy.el ob-haskell.el - ob-io.el ob-lisp.el ob-lob.el ob-lua.el ob-octave.el - and 227 other files +Michael Heerdegen: changed bytecomp.el cl-macs.el subr.el control.texi + copyright.el css-mode.el dired.el easy-mmode.el eieio-core.el + filesets.el hi-lock.el macroexp.el modula2.el ob-C.el ob-core.el + ob-exp.el ob-groovy.el ob-haskell.el ob-lisp.el ob-lob.el ob-lua.el + and 229 other files Michael Hendricks: changed help.el @@ -3497,9 +3851,9 @@ Michael McNamara: co-wrote verilog-mode.el Michael Olson: changed erc.el erc-backend.el Makefile erc-track.el erc-log.el erc-stamp.el erc-autoaway.el erc-dcc.el erc-goodies.el - erc-list.el erc-compat.el erc-identd.el erc.texi ERC-NEWS erc-bbdb.el + erc-list.el erc-compat.el erc-identd.el erc.texi erc-bbdb.el erc-match.el erc-notify.el erc-ibuffer.el erc-services.el remember.el - erc-button.el and 54 other files + erc-button.el erc-nicklist.el and 54 other files Michael Orlitzky: changed tex-mode.el @@ -3538,6 +3892,8 @@ Michael Weylandt: changed ox-latex.el Michael Witten: changed TUTORIAL fixit.texi intro.texi +Michalis V: changed dired-aux.el em-cmpl.el help-mode.el tcl.el + Michal Jankowski: changed insdel.c keyboard.c Michał Kondraciuk: changed cus-edit.el @@ -3547,11 +3903,11 @@ Michał Krzywkowski: changed elide-head.el Michal Nazarewicz: wrote cc-mode-tests.el descr-text-tests.el tildify-tests.el and co-wrote tildify.el -and changed regex.c casefiddle.c simple.el test/src/regex-emacs-tests.el - casefiddle-tests.el message.el regex.h search.c buffer.h ert-x.el - files.el frame.c remember.el sgml-mode.el unidata-gen.el README - SpecialCasing.txt bindings.el buffer.c cc-mode.el cfengine.el - and 37 other files +and changed emacs-regex.c casefiddle.c simple.el + test/src/regex-emacs-tests.el casefiddle-tests.el emacs-regex.h + message.el search.c buffer.h cc-mode.el cc-mode.texi ert-x.el files.el + frame.c remember.el sgml-mode.el unidata-gen.el README + SpecialCasing.txt bindings.el buffer.c and 41 other files Michal Nowak: changed gnutls.el @@ -3573,6 +3929,10 @@ Miguel Ruiz: changed ob-gnuplot.el Mihai Olteanu: changed hexl.el +Miha Rihtaršič: changed keyboard.c commands.texi minibuf.c minibuffer.el + simple.el comint.el data.c delsel.el errors.texi esh-mode.el eval.c + ibuffer.el macros.c process.c sh-script.el + Mihir Rege: changed js.el Mikael Djurfeldt: changed xdisp.c @@ -3585,11 +3945,13 @@ Mike Gulick: changed gdb-mi.el Mike Haertel: changed 7300.h +Mike Hamrick: changed dispextern.h term.c termchar.h xfaces.c + Mike Kazantsev: changed erc-dcc.el Mike Kupfer: changed mh-comp.el mh-e.el ftcrfont.c mh-utils.el - emacs-mime.texi ftxfont.c gnus-mh.el gnus.texi mh-acros.el mh-compat.el - mh-e.texi mh-identity.el mh-mime.el xftfont.c + emacs-mime.texi gnus-mh.el gnus.texi mh-acros.el mh-compat.el mh-e.texi + mh-identity.el mh-mime.el xftfont.c Mike Lamb: changed em-unix.el esh-util.el pcmpl-unix.el @@ -3621,7 +3983,7 @@ Miles Bader: wrote button.el face-remap.el image-file.el macroexp.el and changed comint.el faces.el simple.el editfns.c xfaces.c xdisp.c info.el minibuf.c display.texi quick-install-emacs wid-edit.el xterm.c dispextern.h subr.el window.el cus-edit.el diff-mode.el xfns.c - bytecomp.el help.el lisp.h and 272 other files + bytecomp.el help.el lisp.h and 271 other files Milton Wulei: changed gdb-ui.el @@ -3673,14 +4035,22 @@ Nakamura Toshikazu: changed w32fns.c Nali Toja: changed configure.ac +Naofumi Yasufuku: changed tramp-sh.el + Naohiro Aota: changed fontset.c ftfont.c gnus-art.el mm-view.el tls.el xftfont.c +Naoya Yamashita: changed gv-tests.el gv.el + +Narendra Joshi: changed repeat.el + Nathaniel Flath: changed cc-menus.el cc-engine.el cc-fonts.el cc-langs.el cc-mode.el cc-vars.el Nathan J. Williams: changed imap.el +Nathan Moreau: changed vc.el + Nathan Trapuzzano: changed cconv.el cl-macs.el cperl-mode.el gnus.texi linum.el progmodes/python.el python-tests.el @@ -3690,7 +4060,7 @@ Neal Ziring: co-wrote vi.el (public domain) Neil Mager: wrote appt.el -Neil Roberts: changed custom.texi files.el +Neil Roberts: changed custom.texi display.texi files.el xdisp.c Neil W. Van Dyke: wrote webjump.el @@ -3709,10 +4079,12 @@ Niall Mansfield: changed etags.c Nic Ferrier: changed ert.el tramp.el -Nicholas Drozd: changed calc.texi editfns.c ol.html ol.txt shr.el +Nicholas Drozd: changed calc.texi editfns.c shr.el Nicholas Maniscalco: changed term.el +Nicholas Strauss: changed lunar.el + Nick Alcock: changed control.texi customize.texi display.texi files.el frames.texi gnus.el keymaps.texi modes.texi nonascii.texi syntax.texi text.texi windows.texi @@ -3721,9 +4093,11 @@ Nick Dokos: changed org-table.el ox.el icalendar.el mh-search.el org-mobile.el org.el ox-ascii.el url-cache.el Nick Drozd: changed quail/georgian.el eww.el eww.texi shr.el HELLO - cc-mode-tests.el ido.texi + cc-mode-tests.el ido.texi replace-tests.el -Nick Helm: changed eldoc.el help.el help.texi nsterm.m +Nick Gasson: changed comint-tests.el comint.el rmailsum.el + +Nick Helm: changed dired-aux.el eldoc.el help.el help.texi nsterm.m whitespace-tests.el whitespace.el Nick Roberts: wrote gdb-mi.el t-mouse.el @@ -3732,34 +4106,41 @@ and changed gdb-ui.el gud.el building.texi tooltip.el speedbar.el keyboard.c subr.el frames.texi help-mode.el progmodes/compile.el xdisp.c display.texi term.c vc-svn.el and 145 other files +Nick Savage: changed help-mode.el + Nick Terrell: changed jka-cmpr-hook.el Nico Francois: changed w32fns.c w32inevt.c w32menu.c Nicolas Avrutin: changed url-http.el +Nicolás Bértolo: changed comp.c comp.el emacs.c lread.c comp.h lisp.h + package.el alloc.c configure.ac eval.c pdumper.c src/Makefile.in + w32-win.el w32.c w32common.h w32fns.c + Nicolas Calderon Asselin: changed org-clock.el -Nicolas Goaziou: wrote org-duration.el org-element.el org-keys.el - org-lint.el org-macro.el org-num.el ox-ascii.el ox-latex.el ox-md.el - ox-org.el ox.el -and co-wrote ox-beamer.el ox-icalendar.el ox-man.el +Nicolas Goaziou: wrote oc-basic.el oc-biblatex.el oc-csl.el oc-natbib.el + oc.el ol-doi.el org-duration.el org-element.el org-keys.el org-lint.el + org-macro.el org-num.el ox-ascii.el ox-latex.el ox-md.el ox-org.el + ox.el +and co-wrote ox-beamer.el ox-icalendar.el ox-koma-letter.el ox-man.el and changed org-list.el org.el ox-html.el org-footnote.el ox-texinfo.el org.texi ox-publish.el ox-odt.el org-inlinetask.el org-indent.el org-docbook.el ob-exp.el org-agenda.el org-timer.el ob.el - org-capture.el ob-asymptote.el org-clock.el org-macs.el - org-pcomplete.el org-table.el and 22 other files + org-capture.el org-clock.el org-macs.el org-pcomplete.el org-table.el + org-archive.el and 21 other files -Nicolas Graner: changed message.el +Nicolas Graner: changed eww.el message.el Nicolas Petton: wrote map-tests.el map.el seq-tests.el seq.el - thunk-tests.el thunk.el url-handlers-test.el + thunk-tests.el thunk.el url-handlers-tests.el and co-wrote auth-source-pass.el auth-source-tests.el subr-tests.el -and changed README configure.ac sed2v2.inp authors.el sequences.texi - README.W32 emacs.png emacs23.png HISTORY arc-mode.el cl-extra.el +and changed README authors.el configure.ac sed2v2.inp sequences.texi + README.W32 emacs.png HISTORY emacs23.png arc-mode.el cl-extra.el emacs.svg manoj-dark-theme.el Emacs.icns Makefile.in auth-source.el emacs.ico fns.c make-tarball.txt obarray-tests.el obarray.el - and 37 other files + and 36 other files Nicolas Richard: wrote cl-seq-tests.el cmds-tests.el replace-tests.el and changed ffap.el package.el byte-run.el help.el keyboard.c landmark.el @@ -3783,7 +4164,7 @@ Nikolaj Schumacher: changed flymake.el progmodes/compile.el eldoc.el Nikolaus Rath: changed nnimap.el gnus-sum.el gnus.texi -Nikolay Kudryavtsev: changed sql.el vc-git.el +Nikolay Kudryavtsev: changed bytecomp.el checkdoc.el sql.el vc-git.el Nil Geisweiller: changed flymake.el @@ -3791,24 +4172,26 @@ Nils Ackermann: changed message.el nnmh.el reftex-vars.el Nitish Chinta: changed progmodes/python.el sendmail.el simple.el -N. Jackson: changed emacs.texi forms.texi +N. Jackson: changed emacs.texi forms.texi os.texi + +Noah Evans: changed follow.el Noah Friedman: wrote eldoc.el rlogin.el type-break.el and co-wrote erc-dcc.el and changed rsz-mini.el emacs-buffer.gdb comint.el files.el Makefile - mailabbrev.el sendmail.el subr.el timer.el xfns.c yow.el apropos.el - battery.el bytecomp.el calc.el coding.c complete.el config.in - configure.ac copyright.h fns.c and 22 other files + mailabbrev.el sendmail.el shell.el src/sysdep.c subr.el timer.el xfns.c + yow.el apropos.el battery.el bytecomp.el calc.el coding.c complete.el + config.in configure.ac and 24 other files Noah Lavine: changed tramp.el -Noah Swainland: changed calc.el +Noah Swainland: changed calc.el goto-addr.el misc.texi Noam Postavsky: changed progmodes/python.el lisp-mode.el bytecomp.el - lisp-mode-tests.el term.el xdisp.c eval.c cl-macs.el data.c - emacs-lisp/debug.el simple.el help-fns.el modes.texi subr.el - elisp-mode.el ert.el isearch.el processes.texi cl-print.el diff-mode.el - ffap.el and 359 other files + lisp-mode-tests.el term.el xdisp.c cl-macs.el eval.c simple.el data.c + emacs-lisp/debug.el modes.texi help-fns.el subr.el elisp-mode.el ert.el + isearch.el processes.texi search.c cl-print.el diff-mode.el + and 363 other files Nobuyoshi Nakada: co-wrote ruby-mode.el and changed ruby-mode-tests.el @@ -3851,12 +4234,11 @@ Oleg Pykhalov: changed gnus-sum.el Oleg S. Tihonov: changed cyrillic.el ispell.el language/cyrillic.el map-ynp.el subr.el -Oleh Krehel: wrote ob-J.el -and co-wrote subr-tests.el +Oleh Krehel: co-wrote subr-tests.el and changed dired-aux.el outline.el checkdoc.el files.el subr.el buffer.c check-declare.el alloc.c appt.el buffer.h calc.el category.c - cl-indent.el custom.el derived.el dired-x.el dired.el dired.texi - display.texi easy-mmode.el ffap.el and 14 other files + cl-indent.el cus-edit.el custom.el derived.el dired-x.el dired.el + dired.texi display.texi easy-mmode.el and 15 other files Oleksandr Gavenko: changed generic-x.el progmodes/grep.el @@ -3872,6 +4254,9 @@ and changed gamegrid.el gnus-cite.el nonascii.texi rx.el startup.el Oliver Seidel: wrote otodo-mode.el and co-wrote todo-mode.el +Olivier Certner: changed erc-track.el erc-ibuffer.el erc-services.el + erc-stamp.el + Olivier Laurens: changed forms.el Olivier Lecarme: changed make-mode.el ange-ftp.el apropos.el bibtex.el @@ -3882,6 +4267,8 @@ Olli Savia: changed etags.c syssignal.h Olof Ohlsson Sax: changed vc-svn.el +Omar Polo: changed configure.ac emacsclient.c sysdep.c vc.el + Orivej Desh: changed tramp-sh.el Osamu Yamane: changed smtpmail.el @@ -3898,6 +4285,11 @@ and changed ph.el Øyvind Stegard: changed gnus-msg.el +Pablo Barbáchano: wrote ansi-color-tests.el +and changed ansi-color.el + +Pankaj Jangid: changed gnus-sum.el gnus.texi semantic.texi frame.c + Pascal Dupuis: changed octave.el Pascal Rigaux: changed image.c rfc2231.el @@ -3915,10 +4307,10 @@ and changed imenu.el make-mode.el Paul Eggert: wrote rcs2log and co-wrote cal-dst.el -and changed lisp.h configure.ac alloc.c process.c fileio.c editfns.c - xdisp.c sysdep.c image.c keyboard.c data.c emacs.c fns.c lread.c - xterm.c eval.c callproc.c Makefile.in frame.c buffer.c gnulib-comp.m4 - and 1813 other files +and changed lisp.h configure.ac alloc.c fileio.c process.c editfns.c + sysdep.c xdisp.c fns.c image.c keyboard.c emacs.c data.c lread.c + xterm.c eval.c gnulib-comp.m4 callproc.c Makefile.in frame.c buffer.c + and 1851 other files Paul Fisher: changed fns.c @@ -3930,10 +4322,10 @@ Paul Jarc: wrote nnmaildir.el (public domain) nnnil.el (public domain) and changed message.el gnus-util.el gnus-int.el gnus.el gnus-agent.el gnus-start.el gnus-sum.el nnmail.el -Paul Pogonyshev: changed subr.el byte-opt.el eval.c progmodes/python.el - which-func.el align.el bytecode.c bytecomp.el cc-langs.el cl-macs.el - configure.ac dabbrev.el display.texi eldoc.el elisp-mode.el - emacs-lisp/debug.el ert.el ert.texi etags.el fns-tests.el fns.c +Paul Pogonyshev: changed subr.el byte-opt.el bytecomp.el + emacs-lisp/debug.el eval.c progmodes/python.el which-func.el align.el + bytecode.c cc-langs.el cl-macs.el configure.ac dabbrev.el display.texi + eldoc.el elisp-mode.el ert.el ert.texi etags.el fns-tests.el fns.c and 20 other files Paul Rankin: changed outline.el @@ -3944,7 +4336,7 @@ Paul Reilly: changed dgux.h lwlib-Xm.c lwlib.c xlwmenu.c configure.ac lwlib/Makefile.in mail/rmailmm.el rmailedit.el rmailkwd.el and 10 other files -Paul Rivier: changed ada-mode.el mixal-mode.el reftex-vars.el reftex.el +Paul Rivier: changed mixal-mode.el reftex-vars.el reftex.el Paul Rubin: changed config.h sun2.h texinfmt.el window.c @@ -3958,20 +4350,24 @@ Paul Stodghill: changed gnus-agent.el gnus-util.el Paul Van Der Walt: changed message.el +Paul W. Rankin: changed bookmark.el font-lock.el nsterm.m outline.el + Pavel Janík: co-wrote eudc-bob.el eudc-export.el eudc-hotlist.el eudc-vars.el eudc.el eudcb-bbdb.el eudcb-ldap.el eudcb-ph.el and changed keyboard.c xterm.c COPYING xdisp.c process.c emacs.c lisp.h menu-bar.el ldap.el make-dist xfns.c buffer.c coding.c eval.c fileio.c flyspell.el fns.c indent.c Makefile.in callint.c cus-start.el - and 702 other files + and 699 other files Pavel Kobiakov: wrote flymake-proc.el flymake.el and changed flymake.texi Peder O. Klingenberg: wrote dns-mode-tests.el and changed dns-mode.el icalendar.el mm-decode.el calc-comb.el calc.texi - dunnet.el emacsbug.el emacsclient.c eww.el gnus.texi misc.texi - url-http.el url-queue.el url-util.el url-vars.el url.texi + dunnet.el emacsbug.el emacsclient.c eww.el gnus.texi misc.texi snake.el + subr.el url-http.el url-queue.el url-util.el url-vars.el url.texi + +Pedro Andres Aranda Gutierrez: changed cus-face.el xfaces.c P. E. Jareth Hein: changed gnus-util.el @@ -4000,8 +4396,8 @@ Perry E. Metzger: changed xdisp.c bindings.el buffer.c display.texi Per Starbäck: changed ispell.el characters.el dired.el gnus-start.el BUGS apropos.el bibtex.el bytecomp.el charset.h coding.c doctor.el emacs.c - european.el iso-transl.el pcmpl-gnu.el replace.el startup.el - trouble.texi vc.el xdisp.c + european.el iso-transl.el pcmpl-gnu.el progmodes/python.el replace.el + startup.el trouble.texi vc.el xdisp.c Pete Beardmore: changed semantic/complete.el idle.el @@ -4017,7 +4413,7 @@ Peter Doornbosch: changed vc-svn.el Peter Dyballa: changed calendar.el -Peter Feigl: changed scheme.el HELLO +Peter Feigl: changed scheme.el HELLO tabulated-list.el Peter Heslin: changed flyspell.el outline.el @@ -4031,12 +4427,14 @@ Peter Kleiweg: wrote ps-mode.el Peter Liljenberg: wrote elint.el -Peter Münster: changed gnus-delay.el gnus-demon.el gnus-group.el - gnus-start.el gnus.texi org-agenda.el org.el +Peter Münster: changed image-dired.el gnus-delay.el gnus-demon.el + gnus-group.el gnus-start.el gnus.texi org-agenda.el org.el Peter O'Gorman: changed configure.ac frame.h hpux10-20.h termhooks.h -Peter Oliver: changed perl-mode.el server.el vc-sccs.el +Peter Oliver: changed emacsclient.desktop Makefile.in emacs-mail.desktop + emacsclient-mail.desktop server.el configure.ac emacs.desktop + emacs.metainfo.xml misc.texi perl-mode.el ruby-mode-tests.el vc-sccs.el Peter Povinec: changed term.el @@ -4075,15 +4473,24 @@ Petri Kaurinkoski: changed configure.ac iris4d.h irix6-0.h irix6-5.h Petr Salinger: changed configure.ac gnu-kfreebsd.h +Petteri Hintsanen: changed sequences.texi Makefile.in emacs/Makefile.in + lispintro/Makefile.in lispref/Makefile.in misc/Makefile.in + Phil Hagelberg: wrote ert-x-tests.el and changed package.el pcmpl-unix.el subr.el +Philip Brown: changed comp.el + Philip Hudson: changed em-hist.el Philip Jackson: wrote find-cmd.el ol-irc.el and changed org-irc.el -Philip K: changed ispell.el +Philip Kaludercic: wrote epa-ks.el +and changed rcirc.el rcirc.texi project.el gravatar.el outline.el + message.el windmove.el css-mode.el epa.texi erc.el fns-tests.el fns.c + ispell.el message.texi nnmaildir.el progmodes/python.el recentf.el + replace.el sgml-mode.el skeleton.el subr.el timeclock.el Philippe Schnoebelen: wrote gomoku.el mpuz.el and changed cl-extra.el @@ -4096,35 +4503,40 @@ Philippe Waroquiers: changed etags.el term.c Philipp Haselwarter: changed gnus-agent.el gnus-sum.el gnus-sync.el gnus.texi newcomment.el +Philipp Klaus Krause: changed emacs.c movemail.c + Philipp Rumpf: changed electric.el Philipp Stephani: wrote callint-tests.el checkdoc-tests.el cl-preloaded-tests.el ediff-diff-tests.el eval-tests.el ido-tests.el lread-tests.el mouse-tests.el startup-tests.el xt-mouse-tests.el -and changed emacs-module.c emacs-module-tests.el json.c json-tests.el - eval.c mod-test.c lisp.h lread.c nsterm.m configure.ac bytecomp.el - internals.texi gtkutil.c emacs-module.h.in files.el alloc.c - electric-tests.el electric.el test/Makefile.in editfns.c emacs.c - and 127 other files - -Phillip Lord: wrote ps-print-tests.el -and changed build-zips.sh lisp/Makefile.in undo.c build-dep-zips.py - simple.el test/Makefile.in Makefile Makefile.in emacs.nsi keyboard.c - viper-cmd.el README-windows-binaries README.W32 elisp-mode-tests.el - ldefs-clean.el loadup.el README-scripts autoload.el +and changed emacs-module.c emacs-module-tests.el configure.ac json.c + eval.c process.c json-tests.el process-tests.el internals.texi alloc.c + emacs-module.h.in emacs.c lread.c nsterm.m lisp.h bytecomp.el pdumper.c + callproc.c seccomp-filter.c gtkutil.c files.el and 179 other files + +Phillip Lord: wrote ps-print-tests.el w32-feature.el +and changed build-zips.sh build-dep-zips.py lisp/Makefile.in undo.c + simple.el test/Makefile.in README-scripts README-windows-binaries + emacs.nsi Makefile Makefile.in keyboard.c viper-cmd.el README.W32 + elisp-mode-tests.el ldefs-clean.el loadup.el autoload.el automated/Makefile.in cmds.c dired.el and 171 other files Phil Sainty: wrote autoload-longlines-mode-tests.el autoload-major-mode-tests.el autoload-minor-mode-tests.el so-long-tests-helpers.el so-long-tests.el so-long.el spelling-tests.el -and changed diff.el goto-addr.el term.el cl-macs.el comint.el derived.el +and changed comint.el term.el diff.el goto-addr.el cl-macs.el derived.el easy-mmode.el emacs.texi files.texi lisp.el misc.texi package.el progmodes/grep.el simple.el subword.el trouble.texi Phil Sung: changed wdired.el dired.texi follow.el progmodes/python.el +Pierre-Antoine Rouby: changed etags.1 etags.c maintaining.texi + Pierre Lorenzon: changed eieio-custom.el pconf.el +Pierre Neidhardt: changed shell.el + Pierre Poissinger: changed charset.c Pierre Téchoueyres: changed browse-url.el eieio-test-persist.el epg.el @@ -4138,7 +4550,8 @@ Pieter Praet: changed org-crypt.el Pieter Schoenmakers: changed TUTORIAL.nl -Pieter Van Oostrum: changed package.el shell-tests.el shell.el +Pieter Van Oostrum: changed package.el package-tests.el package.texi + shell-tests.el shell.el Piet van Oostrum: changed data.c fileio.c flyspell.el smtpmail.el @@ -4148,10 +4561,13 @@ Piotr Trojanek: changed gnutls.c process.c Piotr Zieliński: wrote org-mouse.el -Pip Cet: changed fns.c display.texi xdisp.c xterm.c dispextern.h frame.el - gtkutil.c image.c json-tests.el json.c mail-utils.el nsterm.m simple.el - subr.el text.texi textprop.c timer-list.el tty-colors-tests.el - tty-colors.el url-http.el xfaces.c xterm.h +Pip Cet: wrote image-circular-tests.el +and changed xdisp.c comp.c fns.c pdumper.c alloc.c byte-opt.el + display.texi ftcrfont.c image.c xterm.c bytecomp-tests.el bytecomp.el + ccl-tests.el ccl.c ccl.el cmds.c comint.el comp-test-funcs.el + comp-tests.el comp.el composite.c and 28 other files + +Po Lu: changed xdisp.c browse-url.el cc-compat.el nsfns.m nsterm.m Pontus Michael: changed simple.el @@ -4159,15 +4575,23 @@ Prestoo Ten: changed screen.el Primoz Peterlin: changed TUTORIAL.sl +Protesilaos Stavrou: wrote modus-operandi-theme.el modus-themes.el + modus-vivendi-theme.el +and changed modus-themes.org vc-dir.el log-view.el modus-themes.texi + vc-git.el apropos.el custom.el diff-mode.el perl-mode.el shortdoc.el + shr.el vc-cvs.el vc-hg.el vc-svn.el vc/vc-bzr.el + Przemysław Wojnowski: wrote obarray-tests.el sgml-mode-tests.el and changed abbrev-tests.el abbrev.el cl-lib-tests.el loadup.el obarray.el sgml-mode.el Puneeth Chaganti: changed org.texi ox.el org-agenda.el org-capture.el - ox-html.el svg.el + ox-html.el svg.el xwidget.el + +Qiantan Hong: changed xwidget.c Radon Rosborough: changed package.el custom.texi package.texi startup.el - eval.c lread.c org.texi os.texi + eval.c lread.c org.texi os.texi xterm.c Rafael Laboissiere: changed org-remember.el org-bibtex.el org.el org.texi @@ -4189,6 +4613,8 @@ Rajappa Iyer: changed gnus-salt.el Raja R. Harinath: changed gnus-salt.el nnml.el +Rajeev Narang: changed icalendar.el + Rajesh Vaidheeswarran: changed whitespace.el ffap.el Ralf Angeli: wrote scroll-lock.el @@ -4203,8 +4629,8 @@ Ralf Fassel: changed dabbrev.el files.el fill.el iso-acc.el tar-mode.el Ralf Mattes: changed el.srt Ralph Schleicher: wrote battery.el info-look.el -and changed libc.el browse-url.el fileio.c info.el mm-decode.el - nnultimate.el perl-mode.el which-func.el +and changed libc.el browse-url.el eww.el eww.texi fileio.c info.el + mm-decode.el nnultimate.el perl-mode.el shr.el which-func.el Ramakrishnan M: changed mlm-util.el @@ -4218,8 +4644,9 @@ Randal Schwartz: wrote pp.el Ransom Williams: changed files.el Rasmus Pank Roulund: wrote org-tempo.el -and changed ox-latex.el gnus-notifications.el org.el ange-ftp.el - gnus-fun.el gnus-icalendar.el gnus-sum.el gnus.texi ido.el message.texi +and co-wrote ox-koma-letter.el +and changed ox-latex.el gnus-icalendar.el gnus-notifications.el org.el + ange-ftp.el gnus-fun.el gnus-sum.el gnus.texi ido.el message.texi ob-C.el org-entities.el org-src.el org.texi ox-html.el ox.el vc-git.el Raul Acevedo: changed info.el options.el @@ -4242,6 +4669,8 @@ Remek Trzaska: changed gnus-ems.el Remi Letot: changed nnmaildir.el +Remington Furman: changed thingatpt.el + Rémi Vanicat: changed ox-icalendar.el org-table.el Renaud Rioboo: changed nnmail.el @@ -4254,15 +4683,14 @@ and changed vhdl-mode.texi Reuben Thomas: changed ispell.el whitespace.el dired-x.el files.el sh-script.el emacsclient-tests.el remember.el README emacsclient.c - misc.texi msdos.c simple.el INSTALL ada-mode.el ada-xref.el alloc.c - arc-mode.el authors.el config.bat copyright dired-x.texi - and 36 other files + misc.texi msdos.c simple.el INSTALL alloc.c arc-mode.el authors.el + config.bat copyright dired-x.texi dired.el dosfns.c and 35 other files Ricardo Wurmus: changed xwidget.el xwidget.c configure.ac xwidget.h Riccardo Murri: changed vc-bzr.el tls.el -Richard Copley: changed Makefile.in epaths.in epaths.nt gdb-mi.el +Richard Copley: changed Makefile.in epaths.in epaths.nt gdb-mi.el sort.el text.texi Richard Dawe: changed config.in src/Makefile.in @@ -4272,7 +4700,7 @@ Richard G. Bielawski: changed modes.texi paren.el Richard Hoskins: changed message.el Richard Kim: wrote wisent/python.el -and changed bovine.texi db-global.el loading.texi python-wy.el +and changed bovine.texi db-global.el gud.el loading.texi python-wy.el texnfo-upd.el wisent.texi Richard King: wrote filelock.c uniquify.el userlock.el @@ -4328,7 +4756,7 @@ Robert Cochran: changed tab-bar.el bytecomp.el checkdoc.el data.c Robert Fenk: changed desktop.el -Robert Jarzmik: changed ede/linux.el inversion.el +Robert Jarzmik: changed ede/linux.el Robert J. Chassell: wrote makeinfo.el page-ext.el texinfo.el texnfo-upd.el @@ -4346,15 +4774,15 @@ Roberto Rodríguez: changed glossary.texi widget.texi Robert P. Goldman: changed org.texi ob-exp.el org.el ox-latex.el Robert Pluim: wrote nsm-tests.el -and changed process.c ftfont.c gtkutil.c processes.texi vc-git.el - configure.ac font.c network-stream.el nsm.el process-tests.el xfns.c - dispextern.h files.texi ftcrfont.c gnus-icalendar.el gnutls.el - gtkutil.h network-stream-tests.el nsterm.m text.texi w32.c - and 90 other files +and changed configure.ac process.c blocks.awk network-stream-tests.el + font.c processes.texi ftfont.c gtkutil.c vc-git.el process-tests.el + emoji-zwj.awk gnutls.el network-stream.el nsm.el tramp.texi mml-sec.el + nsterm.m unicode xfns.c auth.texi composite.c and 133 other files -Robert Thorpe: changed cus-start.el indent.el +Robert Thorpe: changed cus-start.el indent.el rmail.texi -Robert Weiner: changed cus-edit.el +Robert Weiner: changed cus-edit.el etags.el positions.texi simple.el + subr.el texinfo.el Rob Giardina: changed org-agenda.el @@ -4375,7 +4803,7 @@ Roger Breitenstein: changed smtpmail.el Roland B. Roberts: changed buffer.h callproc.c dired.c files.el gnus-group.el gnus-sum.el process.c sort.el sysdep.c systty.h -Roland Kaufmann: changed ox.el +Roland Kaufmann: changed configure.ac ox.el Roland McGrath: wrote autoload.el etags.el map-ynp.el progmodes/grep.el and co-wrote find-dired.el progmodes/compile.el @@ -4386,9 +4814,9 @@ and changed compile.el add-log.el configure.ac files.el vc.el simple.el Roland Winkler: wrote proced.el and changed bibtex.el faces.el crm.el find-dired.el bookmark.el process.c - appt.el artist.el bibtex-style.el conf-mode.el cus-edit.el diary-lib.el - flyspell.el hideshow.el ibuf-ext.el ibuffer.el ispell.el make-mode.el - sgml-mode.el sh-script.el skeleton.el smtpmail.el + smtpmail.el appt.el artist.el bibtex-style.el conf-mode.el cus-edit.el + diary-lib.el flyspell.el gnus.texi hideshow.el ibuf-ext.el ibuffer.el + ispell.el make-mode.el nnimap.el and 5 other files Rolf Ade: changed sql.el tcl.el @@ -4417,9 +4845,9 @@ Roy Liu: changed ns-win.el Rüdiger Sonderfeld: wrote inotify-tests.el reftex-tests.el and changed eww.el octave.el shr.el bibtex.el configure.ac - misc/Makefile.in reftex-vars.el vc-git.el TUTORIAL.de ada-mode.el - autoinsert.el building.texi calc-lang.el cc-langs.el dired.texi - editfns.c emacs.c emacs.texi epa.el erc.el eww.texi and 39 other files + misc/Makefile.in reftex-vars.el vc-git.el TUTORIAL.de autoinsert.el + building.texi bytecomp.el calc-lang.el cc-langs.el dired.texi editfns.c + emacs.c emacs.texi epa.el erc.el eww.texi and 39 other files Rui-Tao Dong: changed nnweb.el @@ -4431,13 +4859,19 @@ Ruslan Bekenev: changed rfc2045.el rfc2047.el rfc2231.el Russ Allbery: changed message.el +Ruthra Kumar: changed arc-mode.el esh-cmd.el files.el + Ryan Barrett: changed dirtrack.el Ryan Brown: changed cl-indent.el -Ryan Crum: changed json.el +Ryan Crum: changed term.el json.el + +Ryan Olson: changed package.el + +Ryan Prior: changed comint.el -Ryan Thompson: changed advice-tests.el ido.el minibuffer-tests.el +Ryan Thompson: changed ido.el advice-tests.el minibuffer-tests.el minibuffer.el savehist.el tmm.el Ryan Twitchell: changed ido.el @@ -4471,9 +4905,8 @@ Sam Kendall: changed etags.c etags.el Sam Steingold: wrote gulp.el midnight.el and changed progmodes/compile.el cl-indent.el simple.el vc-cvs.el vc.el mouse.el vc-hg.el etags.el files.el font-lock.el tex-mode.el - ange-ftp.el sgml-mode.el vc-git.el window.el add-log.el bindings.el - bookmark.el bug-reference.el calendar.el cperl-mode.el - and 157 other files + ange-ftp.el gnus-sum.el message.el sgml-mode.el vc-git.el window.el + add-log.el bindings.el bookmark.el bug-reference.el and 186 other files Samuel Bronson: changed custom.el emacsclient.c keyboard.c progmodes/grep.el semantic/format.el unexmacosx.c @@ -4490,6 +4923,8 @@ Sanghyuk Suh: changed mac-win.el macterm.c Santiago Payà i Miralta: changed vc-hg.el +Saroj Thirumalai: changed printing.el + Sascha Lüdecke: co-wrote mml1991.el and changed gnus-win.el @@ -4498,6 +4933,8 @@ Sascha Wilde: changed pgg-gpg.el pgg.texi pgg.el bubbles.el configure.ac Sašo Živanović: changed reftex-parse.el reftex.el +Satoshi Nakagawa: changed url-http.el + Satyaki Das: wrote mh-acros.el mh-gnus.el mh-search.el mh-speed.el mh-thread.el mh-tool-bar.el and co-wrote mh-junk.el @@ -4539,6 +4976,9 @@ Sean O'Rourke: changed complete.el comint.el dabbrev.el find-func.el Sean Sieger: changed emacs-lisp-intro.texi +Sean Whitton: changed project.el bindings.el files.texi simple.el + repeat.el + Sebastian Freundt: changed nnmaildir.el Sebastian Hermida: wrote misterioso-theme.el @@ -4554,6 +4994,9 @@ and changed ox-publish.el ftfont.c ox-jsinfo.el Sebastian Tennant: changed desktop.el +Sebastian Urban: changed display.texi basic.texi docstyle.texi emacs.texi + fixit.texi text.texi + Sebastian Wiesner: changed bytecomp.el comint.el files.el replace.el simple.el @@ -4578,14 +5021,18 @@ Seppo Sade: changed esh-ext.el Sergei Organov: changed vc.el +Serge Tupchii: changed etags.c + Sergey Litvinov: co-wrote ob-fortran.el and changed ob-maxima.el ob-octave.el +Sergey Organov: changed desktop.el + Sergey Poznyakoff: changed rmail.el mh-mime.el rmail.texi smtpmail.el Sergey Trofimov: changed window.el -Sergey Vinokurov: changed emacs-module-tests.el emacs-module.c mod-test.c +Sergey Vinokurov: changed emacs-module-tests.el emacs-module.c Sergio Durigan Junior: changed eudcb-bbdb.el gdb-mi.el @@ -4623,6 +5070,10 @@ Shingo Tanaka: changed files.el Shinichirou Sugou: changed etags.c +Shitikanth Kashyap: changed progmodes/python.el tabulated-list.el + +Shohei Yoshida: changed configure.ac + Shoji Nishimura: changed org.el Sho Nakatani: changed doc-view.el @@ -4642,16 +5093,16 @@ Sidney Markowitz: changed doctor.el nsmenu.m Sigbjorn Finne: changed gnus-srvr.el Simen Heggestøyl: wrote apropos-tests.el asm-mode-tests.el - autoconf-tests.el autoinsert-tests.el check-declare-tests.el - color-tests.el css-mode-tests.el dom-tests.el elide-head-tests.el - glasses-tests.el help-mode-tests.el makesum-tests.el page-tests.el - paren-tests.el po-tests.el ring-tests.el rot13-tests.el sql-tests.el - webjump-tests.el -and changed css-mode.el css-mode.css json-tests.el json.el sgml-mode.el - scss-mode.scss page.el ring.el rot13.el scheme.el sql.el asm-mode.el - autoinsert.el color.el files.el js.el less-css-mode.el - less-css-mode.less maintaining.texi makesum.el midnight.el - and 5 other files + autoconf-tests.el autoinsert-tests.el browse-url-tests.el + check-declare-tests.el color-tests.el css-mode-tests.el dom-tests.el + elide-head-tests.el glasses-tests.el help-mode-tests.el + makesum-tests.el page-tests.el paren-tests.el po-tests.el ring-tests.el + rot13-tests.el sql-tests.el webjump-tests.el +and changed css-mode.el project.el json-tests.el json.el scss-mode.scss + sgml-mode.el less-css-mode.less maintaining.texi modes.texi page.el + ring.el rot13.el scheme.el sql.el apropos.el asm-mode.el autoconf.el + autoinsert.el browse-url.el check-declare.el color.el + and 15 other files Simona Arizanova: changed help.el @@ -4660,13 +5111,16 @@ Simon Josefsson: wrote dig.el dns-mode.el flow-fill.el fringe.el imap.el sasl-scram-sha256.el sieve-mode.el sieve.el smime.el starttls.el tls.el url-imap.el and co-wrote gnus-sieve.el gssapi.el mml1991.el nnfolder.el nnimap.el - nnml.el sieve-manage.el + nnml.el rot13.el sieve-manage.el and changed message.el gnus-sum.el gnus-art.el smtpmail.el pgg-gpg.el pgg.el gnus-agent.el mml2015.el mml.el gnus-group.el mm-decode.el gnus-msg.el gnus.texi mail/sieve-manage.el pgg-pgp5.el browse-url.el gnus-int.el gnus.el hashcash.el mm-view.el password.el and 101 other files +Simon Lang: changed building.texi icomplete.el misterioso-theme.el + progmodes/grep.el + Simon Law: changed delsel.el electric.el Simon Leinen: changed Makefile.in smtpmail.el Makefile cm.c cm.h hpux9.h @@ -4680,8 +5134,6 @@ and changed font-lock.el rmail.el fortran.el sendmail.el subr.el dired.el menu-bar.el perl-mode.el ps-print.el rmailsum.el bytecomp.el cc-fonts.el data.c faces.el lisp-mode.el and 56 other files -Simon Michael: wrote ob-hledger.el - Simon Schubert: changed json.el Simon South: co-wrote opascal.el @@ -4693,6 +5145,8 @@ Skip Collins: changed w32fns.c w32term.c w32term.h Sławomir Nowaczyk: changed emacs.py progmodes/python.el TUTORIAL.pl flyspell.el ls-lisp.el w32proc.c +Spencer Baugh: changed data-tests.el alloc.c autorevert.el + Spencer Thomas: changed dabbrev.el emacsclient.c gnus.texi server.el unexcoff.c @@ -4707,30 +5161,35 @@ Stefan Bruda: co-wrote prolog.el Stefan Guath: changed find-dired.el Stefan Kangas: wrote bookmark-tests.el cal-julian-tests.el - delim-col-tests.el lunar-tests.el misc-tests.el morse-tests.el - paragraphs-tests.el password-cache-tests.el qp-tests.el - rfc2045-tests.el studly-tests.el tabify-tests.el timezone-tests.el - underline-tests.el uudecode-tests.el -and changed bookmark.el package.el efaq.texi package.texi ibuffer.el - mwheel.el cperl-mode.el fns.c gud.el simple.el subr.el autoinsert.el - comint-tests.el cus-edit.el delim-col.el dired-aux.el dired-x.el - em-term.el ert.texi flow-fill.el frames.texi and 147 other files + delim-col-tests.el etc-authors-mode.el life-tests.el loadhist-tests.el + lunar-tests.el mail-utils-tests.el misc-tests.el morse-tests.el + netrc-tests.el paragraphs-tests.el password-cache-tests.el qp-tests.el + rfc2045-tests.el sasl-cram-tests.el sasl-tests.el saveplace-tests.el + studly-tests.el tabify-tests.el time-tests.el timezone-tests.el + underline-tests.el uudecode-tests.el warnings-tests.el +and co-wrote help-tests.el keymap-tests.el +and changed efaq.texi checkdoc.el package.el cperl-mode.el bookmark.el + help.el keymap.c subr.el simple.el erc.el ediff-util.el idlwave.el + time.el bytecomp-tests.el comp.el speedbar.el bytecomp.el + emacs-lisp-intro.texi flyspell.el ibuffer.el package-tests.el + and 1333 other files Stefan Merten: co-wrote rst.el Stefan Monnier: wrote bibtex-style.el bytecomp-tests.el cl-generic-tests.el cl-generic.el cl-preloaded.el cl-print.el cl.el css-mode.el cursor-sensor.el cvs-status.el diff-mode.el fileloop.el - footnote-tests.el gv.el inline.el lisp-tests.el log-edit.el log-view.el + find-func-tests.el footnote-tests.el gv.el inline.el lisp-mnt-tests.el + lisp-tests.el log-edit.el log-view.el macroexp-tests.el minibuffer-tests.el minibuffer.el mpc.el nadvice.el pcase.el pcvs-defs.el pcvs-info.el pcvs-parse.el pcvs-util.el radix-tree.el regexp-opt-tests.el reveal.el smerge-mode.el smie.el subword-tests.el vc-mtn.el and co-wrote font-lock.el gitmerge.el pcvs.el -and changed subr.el simple.el keyboard.c bytecomp.el files.el lisp.h - cl-macs.el vc.el xdisp.c alloc.c eval.c sh-script.el - progmodes/compile.el keymap.c tex-mode.el buffer.c newcomment.el - window.c lread.c fileio.c help-fns.el and 1372 other files +and changed subr.el simple.el keyboard.c bytecomp.el cl-macs.el files.el + lisp.h vc.el xdisp.c alloc.c eval.c sh-script.el progmodes/compile.el + keymap.c buffer.c window.c tex-mode.el lisp-mode.el newcomment.el + help-fns.el lread.c and 1615 other files Stefano Facchini: changed gtkutil.c @@ -4748,11 +5207,13 @@ Stefan Wiens: changed gnus-sum.el Steinar Bang: changed gnus-setup.el imap.el -Štěpán Němec: changed INSTALL calc-ext.el checkdoc.el cl.texi comint.el - edebug.texi font-lock.el functions.texi gnus-sum.el insdel.c - leim-ext.el loading.texi maps.texi mark.texi message.texi mini.texi - minibuf.texi misc.texi programs.texi subr.el text.texi - and 7 other files +Štěpán Němec: changed loadhist.el files.el gnus-sum.el loading.texi + subr.el INSTALL calc-ext.el checkdoc.el cl.texi comint.el edebug.texi + ediff-init.el emacs-lisp/cl-lib.el find-func.el fixit.texi font-lock.el + functions.texi gnus-art.el gnus.texi help-fns.el help.el + and 22 other files + +Stéphane Boucher: changed replace.el Stephan Stahl: changed which-func.el buff-menu.el buffer.c dired-x.texi ediff-mult.el @@ -4761,11 +5222,11 @@ Stephen A. Wood: changed fortran.el Stephen Berman: wrote todo-mode-tests.el and co-wrote todo-mode.el -and changed wdired.el todo-mode.texi diary-lib.el wdired-tests.el - dired-tests.el doc-view.el files.el minibuffer.el dired.el frames.texi - hl-line.el info.el menu-bar.el mouse.el otodo-mode.el subr.el - .gitattributes TUTORIAL allout.el artist.el compile.texi - and 43 other files +and changed wdired.el todo-mode.texi diary-lib.el dired.el + wdired-tests.el dired-tests.el doc-view.el files.el info.el + minibuffer.el todo-test-1.todo eww.el frames.texi hl-line.el + menu-bar.el mouse.el otodo-mode.el subr.el .gitattributes TUTORIAL + allout.el and 59 other files Stephen C. Gilardi: changed configure.ac @@ -4779,19 +5240,20 @@ and changed diary-lib.el octave.el org-agenda.el locate.el replace.el Stephen Gildea: wrote refcard.tex and co-wrote mh-funcs.el mh-search.el -and changed time-stamp.el time-stamp-tests.el mh-e.el mh-comp.el - mh-utils.el mh-junk.el files.el mh-customize.el mh-e.texi mh-show.el - backups.texi dns-mode.el fileio.c files.texi fortran.el goto-addr.el - mh-mime.el misc.texi mwheel.el tex-mode.el +and changed time-stamp.el time-stamp-tests.el mh-e.el mh-junk.el + mh-comp.el mh-utils-tests.el mh-utils.el mh-e.texi mh-show.el files.el + mh-customize.el mh-xface-tests.el backups.texi compile.texi dns-mode.el + fileio.c files.texi finder.el fortran.el goto-addr.el iso8601-tests.el + and 17 other files Stephen J. Turnbull: changed ediff-init.el strings.texi subr.el Stephen Leake: wrote elisp-mode-tests.el -and changed ada-mode.el ada-xref.el elisp-mode.el xref.el window.el - mode-local.el CONTRIBUTE ada-prj.el project.el vc-mtn.el ada-stmt.el - cedet-global.el ede/generic.el simple.el autoload.el bytecomp.el - cl-generic.el ede/locate.el files.texi functions.texi package.el - and 30 other files +and changed elisp-mode.el xref.el window.el mode-local.el CONTRIBUTE + project.el vc-mtn.el ada-stmt.el cedet-global.el ede/generic.el + simple.el autoload.el bytecomp.el cl-generic.el ede/locate.el + files.texi functions.texi package.el progmodes/grep.el windows.texi + INSTALL.REPO and 32 other files Stephen Pegoraro: changed xterm.c @@ -4803,7 +5265,8 @@ Steve Fisk: co-wrote cal-tex.el Steve Grubb: changed vcdiff -Steven Allen: changed em-prompt.el xdg.el +Steven Allen: changed em-prompt.el esh-mode.el tramp-gvfs.el + tramp-integration.el url-expand.el xdg.el Steven De Herdt: changed vc/vc-bzr.el @@ -4825,7 +5288,7 @@ Steven Tamm: changed macterm.c mac.c macfns.c configure.ac mac-win.el Steve Nygard: changed unexnext.c Steve Purcell: wrote less-css-mode.el -and changed package.el nnimap.el nsterm.m sql.el +and changed package.el nnimap.el nsterm.m ruby-mode.el sql.el Steve Scott: changed rcirc.el @@ -4855,6 +5318,11 @@ Suhail Shergill: changed ob-core.el ox-html.el Sundar Narasimhan: changed rnews.el +Sungbin Jo: changed nsxwidget.m xwidget.c xwidget.el nsxwidget.h + xwidget.h Info.plist.in configure.ac emacs.c nsterm.m src/Makefile.in + +Sun Lin: changed dired-aux.el + Sun Microsystems, Inc: wrote emacs.icon sun.el and changed emacsclient.c server.el @@ -4903,8 +5371,11 @@ Takai Kousuke: changed ccl.el image/compface.el Takeshi Yamada: changed fns.c +Takesi Ayanokoji: changed anti.texi efaq.texi + Tak Kunihiro: wrote pixel-scroll.el -and changed frames.texi mouse.el mwheel.el dired.el ns-win.el +and changed frames.texi mouse.el mwheel.el dired.el lists.texi ns-win.el + subr.el Tao Fang: changed url-http.el @@ -4913,11 +5384,11 @@ and changed arc-mode.el Tassilo Horn: wrote doc-view.el and co-wrote ol-gnus.el -and changed reftex-vars.el tex-mode.el gnus.texi reftex-cite.el - tsdh-dark-theme.el tsdh-light-theme.el gnus-sum.el file-notify-tests.el - reftex.el misc.texi org-gnus.el prog-mode.el subword.el image-mode.el - json.el lisp-mode.el cc-cmds.el display.texi em-term.el emacsbug.el - files.el and 82 other files +and changed bug-reference.el reftex-vars.el tex-mode.el browse-url.el + gnus.texi reftex-cite.el tsdh-dark-theme.el tsdh-light-theme.el + gnus-sum.el maintaining.texi file-notify-tests.el gnus-art.el misc.texi + reftex.el org-gnus.el prog-mode.el subword.el image-mode.el json.el + lisp-mode.el rcirc.el and 99 other files Tatsuya Ichikawa: changed gnus-agent.el gnus-cache.el @@ -4936,8 +5407,9 @@ Teodor Zlatanov: wrote auth-source.el gnus-registry.el gnus-tests.el url-future-tests.el url-future.el url-util-tests.el and changed spam.el gnus.el nnimap.el gnus.texi gnutls.c gnus-sum.el auth.texi cfengine.el gnus-sync.el gnus-util.el gnus-start.el netrc.el - gnutls.h message.el spam-stat.el encrypt.el mail-source.el nnir.el - nnmail.el auth-source-tests.el configure.ac and 119 other files + gnutls.h message.el spam-stat.el .gitlab-ci.yml encrypt.el + mail-source.el nnir.el nnmail.el auth-source-tests.el + and 125 other files Terje Rosten: changed xfns.c version.el xterm.c xterm.h @@ -4956,12 +5428,17 @@ Thamer Mahmoud: changed arabic.el Theodore Jump: changed makefile.nt makefile.def w32-win.el w32faces.c +Theodor Thornhill: changed project.el css-mode.el maintaining.texi + mwheel.el shell.el tutorial.el + Theresa O'Connor: wrote json.el and changed erc.el erc-viper.el erc-log.el erc-track.el viper.el erc-backend.el erc-chess.el erc-dcc.el erc-ezbounce.el erc-goodies.el erc-list.el erc-macs.el erc-match.el erc-ring.el erc-services.el erc-stamp.el goto-addr.el latin-ltx.el progmodes/python.el url-auth.el +Thibault Polge: changed ibuffer.el subr.el + Thien-Thi Nguyen: wrote last-chance.el and co-wrote hideshow.el and changed ewoc.el vc.el info.el processes.texi zone.el lisp-mode.el @@ -4978,7 +5455,7 @@ Thierry Volpiatto: changed bookmark.el files.el dired-aux.el eshell/eshell.el gnus-sum.el keyboard.c net-utils.el package.el tramp.el eldoc.el files.texi image-mode.el info.el man.el minibuffer.el pcmpl-gnu.el subr.el winner.el woman.el avoid.el commands.texi - and 15 other files + and 16 other files Thomas Bach: changed wisent/python.el @@ -4994,10 +5471,11 @@ Thomas Dorner: changed ange-ftp.el Thomas Dye: changed org.texi org-bibtex.el ob-R.el org.el Thomas Fitzsimmons: wrote soap-client.el -and changed soap-inspect.el ldap.el eudc-vars.el eudc.el eudc.texi - ntlm.el eudcb-ldap.el eudcb-bbdb.el eudc-bob.el eudc-export.el - eudcb-ph.el package.el url-http.el diary-lib.el display.texi - eudc-hotlist.el icalendar.el url-auth.el +and changed soap-inspect.el ldap.el eudc.texi eudc-vars.el eudc.el + ntlm.el url-http.el eudcb-ldap.el eudcb-bbdb.el ntlm-tests.el + eudc-bob.el eudc-export.el eudcb-ph.el package.el README authinfo + diary-lib.el display.texi eudc-hotlist.el eudcb-macos-contacts.el + icalendar.el and 3 other files Thomas Horsley: changed cxux-crt0.s cxux.h cxux7.h emacs.c nh3000.h nh4000.h simple.el sysdep.c xterm.c @@ -5026,8 +5504,6 @@ and changed emacs-lock.el subr.el Thor Kristoffersen: changed nntp.el -Thorsten Jolitz: co-wrote ob-picolisp.el - Thorsten Ohl: changed lread.c next.h Tiago Saboga: changed files.el @@ -5048,28 +5524,32 @@ Tim Harper: changed ns-win.el Tim Howe: changed org-clock.el -Tim Landscheidt: changed gnus-art.el gnus.texi icalendar.el sort.el - ws-mode.el +Tim Landscheidt: changed gnus-art.el eieio-opt.el gnus.texi icalendar.el + sort.el ws-mode.el Timo Juhani Lindfors: changed gnus-msg.el Timo Lilja: changed mail-source.el -Timo Myyrä: changed battery.el +Timo Myyrä: changed battery.el configure.ac english.el european.el + language/japanese.el mule-conf.el systhread.c Timo Savola: changed emacs.c gtkutil.c startup.el x-win.el xfns.c xterm.c xterm.h +Tim Ruffing: changed emacs.service + Tim Van Holder: changed emacsclient.c Makefile.in configure.ac progmodes/compile.el which-func.el Tino Calancha: wrote buff-menu-tests.el ediff-ptch-tests.el em-ls-tests.el ffap-tests.el hi-lock-tests.el ls-lisp-tests.el register-tests.el rmc-tests.el -and changed ibuffer.el ibuf-ext.el dired-tests.el dired.el replace.el - dired-aux.el replace-tests.el simple.el ibuf-macs.el subr.el dired.texi - ibuffer-tests.el ls-lisp.el diff-mode.el files.el cl-macs.el cl-seq.el - dired-x.el ediff-ptch.el em-ls.el buff-menu.el and 95 other files +and changed ibuffer.el dired.el ibuf-ext.el dired-tests.el replace.el + dired-aux.el simple.el replace-tests.el dired.texi files.el + ibuf-macs.el subr.el ibuffer-tests.el ls-lisp.el cl-macs.el + diff-mode.el cl-seq.el dired-x.el ediff-ptch.el em-ls.el files-tests.el + and 113 other files Titus von der Malsburg: changed simple.el window.el @@ -5081,12 +5561,14 @@ Tobias Gerdin: changed xref.el Tobias Ringström: changed etags.c -Tobias Zawada: changed wid-edit.el +Tobias Rittweiler: changed xref-tests.el xref.el + +Tobias Zawada: changed find-func.el hideshow.el wid-edit.el Toby Allsopp: changed ldap.el eudc.el Toby Cubitt: co-wrote avl-tree.el -and changed org-capture.el org.el org-agenda.el org-clock.el +and changed org-capture.el org.el org-agenda.el cl-macs.el org-clock.el org-colview.el org.texi Toby Speight: changed generic-x.el window.el @@ -5098,10 +5580,18 @@ Tokuya Kameshima: changed org-mew.el org-agenda.el Tomas Abrahamsson: wrote artist.el +Tomas Nordin: changed progmodes/python.el + Tomasz Gajewski: changed cpp-root.el +Tomasz Konojacki: changed perl-mode.el + Tom Breton: changed autoinsert.el cus-edit.el gnus-agent.el lread.c +Tom Fitzhenry: changed vc-hg.el + +Tom Gillespie: changed files.el + Tom Hageman: changed etags.c Tom Houlder: wrote mantemp.el @@ -5135,10 +5625,10 @@ Tom Seddon: changed w32font.c Tom Tromey: wrote bug-reference.el erc-list.el package-x.el and co-wrote package.el tcl.el -and changed data.c lisp.h js.el buffer.c data-tests.el alloc.c - css-mode.el js-tests.el mhtml-mode.el process.c window.c editfns.c - fns.c keyboard.c keymap.c lread.c makefile.el xfns.c bytecode.c cmds.c - configure.ac and 206 other files +and changed data.c lisp.h js.el buffer.c data-tests.el mhtml-mode.el + alloc.c css-mode.el js-tests.el process.c window.c bytecode.c editfns.c + files.el fns.c keyboard.c keymap.c lread.c makefile.el xfns.c cmds.c + and 208 other files Tom Willemse: changed elec-pair.el package.el perl-mode.el prog-mode.el progmodes/python.el simple.el @@ -5154,6 +5644,9 @@ Torsten Anders: changed ox-beamer.el Torsten Bronger: changed latin-ltx.el +Torsten Hilbrich: wrote dictionary-connection.el dictionary.el +and changed net + Toru Tomabechi: wrote language/tibetan.el quail/tibetan.el tibet-util.el Toru Tsuneyoshi: changed ange-ftp.el buff-menu.el cus-start.el fileio.c @@ -5163,7 +5656,7 @@ Toshiaki Nomura: changed uxpds.h Trent W. Buck: changed rcirc.el remember.el rx.el -Trevor Murphy: changed find-dired.el gnus.texi nnimap.el org.el +Trevor Murphy: changed find-dired.el gnus.texi nnimap.el org.el window.el Trevor Spiteri: changed progmodes/grep.el @@ -5184,8 +5677,8 @@ Tsuchiya Masatoshi: changed gnus-art.el mm-view.el gnus-sum.el Tsugutomo Enami: changed frame.c keyboard.c configure.ac dispnew.c fileio.c process.c simple.el sysdep.c xdisp.c add-log.el bytecomp.el - editfns.c emacs.c frame.h gnus-group.el netbsd.h nnheader.el nnimap.el - perl-mode.el regex.c regex.h and 6 other files + editfns.c emacs-regex.c emacs-regex.h emacs.c frame.h gnus-group.el + netbsd.h nnheader.el nnimap.el perl-mode.el and 6 other files Tsuyoshi Akiho: changed gnus-sum.el nnrss.el @@ -5214,16 +5707,21 @@ Ulrich Müller: changed configure.ac calc-units.el lib-src/Makefile.in src/Makefile.in version.el doctor.el emacs.1 files.el gamegrid.el gud.el server.el ChgPane.c ChgSel.c HELLO INSTALL Makefile.in XMakeAssoc.c authors.el bytecomp.el case-table.el configure - and 39 other files + and 40 other files Ulrich Neumerkel: changed xterm.c +Ulrich Ölmann: changed misc.texi + Ulrik Vieth: wrote meta-mode.el and changed files.el Ury Marshak: changed nsfns.m -Uwe Brauer: changed mml-smime.el +Utkarsh Singh: changed em-script.el files.el outline.el tex-mode.el + vc-git.el window.el + +Uwe Brauer: changed tex-mode.el mml-smime.el Vadim Nasardinov: changed allout.el @@ -5237,9 +5735,11 @@ Valentin Gatien-Baron: changed emacs-module.c Valentin Wüstholz: changed org.el +Valery Alexeev: changed cyril-util.el cyrillic.el + Van L: changed subr.el -Vasilij Schneidermann: changed cus-start.el eww.el cc-mode.el +Vasilij Schneidermann: changed ETAGS.EBNF cus-start.el eww.el cc-mode.el debugging.texi display.texi edebug.el emacs-lisp/debug.el eval.c ielm.el os.texi profiler.el redisplay-testsuite.el shr.el snake.el term.el tetris.el xdisp.c xterm.c @@ -5260,7 +5760,10 @@ Victor J. Orlikowski: changed erc-dcc.el Victor Zandy: wrote zone.el -Viktor Rosenfeld: changed ob-sql.el org.el +Viktor Rosenfeld: co-wrote ox-koma-letter.el +and changed ob-sql.el org.el + +Viktor Slavkovikj: changed rmail.el Ville Skyttä: changed mh-comp.el pgg.el tcl.el @@ -5296,10 +5799,14 @@ and changed erc-backend.el erc.el erc-services.el hexl.el emacs.c erc-button.el erc-capab.el erc-join.el htmlfontify.texi sh-script.el xterm.c xterm.h +Vladimir Alexiev: changed arc-mode.el nnvirtual.el tmm.el + Vladimir Kazanov: changed java.srt Vladimir Lomov: changed ox-html.el +Vladimir Nikishkin: changed scm.el + Vladimir Panteleev: wrote bat-mode-tests.el and changed ert.texi bat-mode.el @@ -5343,6 +5850,8 @@ Wilfred Hughes: changed button.el byte-opt.el css-mode.el find-func.el Will Glozer: changed macterm.c +William Denton: changed ruby-mode.el + William F. Schelter: wrote telnet.el William M. Perry: wrote url-dav.el url-gw.el url-http.el url-util.el @@ -5363,10 +5872,8 @@ William Sommerfeld: wrote emacsclient.c scribe.el server.el William Stevenson: wrote adwaita-theme.el and changed artist.el -William Waites: wrote ob-abc.el - William Xu: changed arc-mode.el gcc.el hideif.el nsterm.m outline.el - url.el webjump.el + url.el webjump.el xref.el Will Mengarini: wrote repeat.el @@ -5377,6 +5884,8 @@ and changed files.el Wim Nieuwenhuizen: changed TUTORIAL.nl +Win Treese: changed nsmenu.m + Wlodzimierz Bzyl: co-wrote ogonek.el and changed pl-refcard.tex @@ -5405,6 +5914,7 @@ and changed process.c alloc.c callint.c config.in configure.ac data.c print.c sort.el Wolfgang Scherer: changed vc-cvs.el vc-dir.el vc-svn.el vc.el pcvs.el + vc-git.el Wolfgang Schnerring: changed emacsclient.c @@ -5418,7 +5928,7 @@ Xavier Maillard: changed gnus-faq.texi gnus-score.el mh-utils.el spam.el Xi Lu: changed etags.c tramp-sh.el -Xu Chunyang: changed dom.el eww.el gud.el netrc.el +Xu Chunyang: changed eww.el dom.el gud.el netrc.el Xue Fuqiao: changed display.texi emacs-lisp-intro.texi files.texi maintaining.texi text.texi windows.texi nonascii.texi frames.texi @@ -5433,14 +5943,18 @@ Yair F: changed hebrew.el Yamamoto Mitsuharu: wrote uvs.el and changed macterm.c macfns.c mac-win.el xterm.c mac.c macterm.h image.c macmenu.c macgui.h xdisp.c ftfont.c xfns.c keyboard.c macselect.c - ftcrfont.c configure.ac macfont.m w32term.c dispextern.h - src/Makefile.in unexmacosx.c and 109 other files + ftcrfont.c macfont.m configure.ac w32term.c dispextern.h + src/Makefile.in unexmacosx.c and 108 other files + +Yan Gajdos: changed vc-git.el Yann Dirson: changed imenu.el Yann Hodique: changed ox-publish.el package.el rcirc.el -Yasuhiro Kimura: changed japan-util.el +Yasuhiro Kimura: changed schemas.xml japan-util.el + +Yasuoka Masahiko: changed configure.ac Yasushi Shoji: changed org-clock.el org.texi ox-ascii.el @@ -5449,6 +5963,10 @@ Yavor Doganov: changed configure.ac Makefile.in emacs.1 etags.1 make-dist Ye Qianchuan: changed descr-text.el +Yichao Yu: changed xfns.c xterm.c + +Yikai Zhao: changed memory-report.el + Yoichi Nakayama: changed browse-url.el finder.el man.el rfc2368.el Yong Lu: changed charset.c coding.c language/greek.el @@ -5466,17 +5984,21 @@ Yoshinari Nomura: changed ox-html.el ox.el Yoshinori Koseki: wrote iimage.el and changed fontset.el message.el nnheader.el nnmail.el -Yuan Fu: changed gdb-mi.el +Yuan Fu: changed gdb-mi.el building.texi doc-view.el outline.el + simple-tests.el cus-start.el display.texi gud.el simple.el text.texi + window.el xdisp.c Yuanle Song: changed rng-xsd.el +Yuchen Pei: changed calendar.texi diary-lib.el icalendar-tests.el + Yue Daian: wrote cl-font-lock.el Yu-ji Hosokawa: changed README.W32 Yukihiro Matsumoto: co-wrote ruby-mode.el -Yuri D'elia: changed message.el package.el +Yuri D'Elia: changed message.el package.el Yuri Karaban: changed pop3.el @@ -5500,15 +6022,20 @@ Yves Baumes: changed package.el Zachary Kanfer: changed org.el cus-edit.el keyboard.c newcomment.el simple.el +Zajcev Evgeny: changed display.texi image.c battery.el buffer.c fileio.c + lread.c svg.el window.el xdisp.c + Zhang Wei: changed chinese.el characters.el mule-cmds.el xfns.c erc.el faces.el fontset.el mm-util.el mule.el org-publish.el rfc2047.el x-win.el Zhang Weize: wrote ob-plantuml.el +Zhiwei Chen: changed hideif.el + Zhongwei Yao: changed tramp-adb.el -Zhu Zihao: changed svg.el +Zhu Zihao: changed eieio.el svg.el Zoltan Kemenczy: changed gud.el commit 6294e60205dbe23e7874c79545d1f2130e98b519 Author: Stefan Kangas Date: Wed Dec 1 17:14:04 2021 +0100 ; * admin/authors.el (authors-aliases): More fixes. diff --git a/admin/authors.el b/admin/authors.el index 5d57b09c22..a2020f3d32 100644 --- a/admin/authors.el +++ b/admin/authors.el @@ -50,6 +50,7 @@ files.") ("Álvar Jesús Ibeas Martín" "Álvar Ibeas") ("Andrea Corallo" "AndreaCorallo") ("Andrew Csillag" "Drew Csillag") + ("Andrew G Cohen" "Andrew Cohen") ("Anna M. Bigatti" "Anna Bigatti") ("Aurélien Aptel" "Aurelien Aptel") ("Barry A. Warsaw" "Barry A. Warsaw, Century Computing, Inc." @@ -59,6 +60,7 @@ files.") ("Bill Mann" "William F. Mann") ("Bill Rozas" "Guillermo J. Rozas") (nil "binjo.cn@gmail.com") + (nil "bug-gnu-emacs@gnu.org") ; mistake ("Björn Torkelsson" "Bjorn Torkelsson") ("Brian Fox" "Brian J. Fox") ("Brian P Templeton" "BT Templeton") @@ -143,6 +145,7 @@ files.") ("Agustín Martín" "Agustin Martin" "Agustín Martín Domingo") ("Martin Lorentzon" "Martin Lorentzson") ("Matt Swift" "Matthew Swift") + ("Mattias Engdegård" "Mattias Engdegard") (nil "^Madhu") (nil "mu@magi.net.ru") ("Maxime Edouard Robert Froumentin" "Max Froumentin") commit d086d4f91d159d554dd8d9200052a66ccf9c287a Author: Lars Ingebrigtsen Date: Wed Dec 1 17:33:34 2021 +0100 Fix fencepost error in pixel-fill--fill-line * lisp/textmodes/pixel-fill.el (pixel-fill--fill-line): Don't add a newline (and continuation) if we're at the end of the line. diff --git a/lisp/textmodes/pixel-fill.el b/lisp/textmodes/pixel-fill.el index 86fdd3c2ff..f69696e1f5 100644 --- a/lisp/textmodes/pixel-fill.el +++ b/lisp/textmodes/pixel-fill.el @@ -127,10 +127,11 @@ prefix on subsequent lines." ;; Success; continue. (when (= (preceding-char) ?\s) (delete-char -1)) - (insert ?\n) - (when (> indentation 0) - (insert (propertize " " 'display - (list 'space :align-to (list indentation))))) + (unless (eobp) + (insert ?\n) + (when (> indentation 0) + (insert (propertize " " 'display + (list 'space :align-to (list indentation)))))) (setq start (point)) (pixel-fill--goto-pixel width)))) commit 0f6bf308ab302cb8850e97bd7e41a4b432fcfeca Author: Robert Pluim Date: Wed Dec 1 17:11:07 2021 +0100 characters.el: remove repetition in glyphless-char-display-control * lisp/international/characters.el (glyphless-char-display-method): New custom widget for the different options for displaying glyphless characters. (glyphless-char-display-control): Use 'glyphless-char-display-method'. diff --git a/lisp/international/characters.el b/lisp/international/characters.el index 9e0cc88d80..3b8924f503 100644 --- a/lisp/international/characters.el +++ b/lisp/international/characters.el @@ -1576,6 +1576,19 @@ option `glyphless-char-display'." (set-char-table-range chartable (cons from to) method))) ;;; Control of displaying glyphless characters. +(define-widget 'glyphless-char-display-method 'lazy + "Display method for glyphless characters." + :group 'mule + :format "%v" + :value 'thin-space + :type + '(choice + (const :tag "Don't display" zero-width) + (const :tag "Display as thin space" thin-space) + (const :tag "Display as empty box" empty-box) + (const :tag "Display acronym" acronym) + (const :tag "Display hex code in a box" hex-code))) + (defcustom glyphless-char-display-control '((format-control . thin-space) (variation-selectors . thin-space) @@ -1619,41 +1632,11 @@ function (`update-glyphless-char-display'), which updates :version "28.1" :type '(alist :key-type (symbol :tag "Character Group") :value-type (symbol :tag "Display Method")) - :options '((c0-control - (choice :value thin-space - (const :tag "Don't display" zero-width) - (const :tag "Display as thin space" thin-space) - (const :tag "Display as empty box" empty-box) - (const :tag "Display acronym" acronym) - (const :tag "Display hex code in a box" hex-code))) - (c1-control - (choice :value thin-space - (const :tag "Don't display" zero-width) - (const :tag "Display as thin space" thin-space) - (const :tag "Display as empty box" empty-box) - (const :tag "Display acronym" acronym) - (const :tag "Display hex code in a box" hex-code))) - (format-control - (choice :value thin-space - (const :tag "Don't display" zero-width) - (const :tag "Display as thin space" thin-space) - (const :tag "Display as empty box" empty-box) - (const :tag "Display acronym" acronym) - (const :tag "Display hex code in a box" hex-code))) - (variation-selectors - (choice :value thin-space - (const :tag "Don't display" zero-width) - (const :tag "Display as thin space" thin-space) - (const :tag "Display as empty box" empty-box) - (const :tag "Display acronym" acronym) - (const :tag "Display hex code in a box" hex-code))) - (no-font - (choice :value hex-code - (const :tag "Don't display" zero-width) - (const :tag "Display as thin space" thin-space) - (const :tag "Display as empty box" empty-box) - (const :tag "Display acronym" acronym) - (const :tag "Display hex code in a box" hex-code)))) + :options '((c0-control glyphless-char-display-method) + (c1-control glyphless-char-display-method) + (format-control glyphless-char-display-method) + (variation-selectors glyphless-char-display-method) + (no-font (glyphless-char-display-method :value hex-code))) :set 'update-glyphless-char-display :group 'display) commit 93824a760edb738ad12000dace1958a629d97f7b Author: Lars Ingebrigtsen Date: Wed Dec 1 17:20:11 2021 +0100 Add new face `variable-pitch-text' * doc/emacs/display.texi (Standard Faces): Mention in. * lisp/faces.el (variable-pitch-text): New face. * lisp/gnus/gnus-art.el (gnus-header): Use it. * lisp/net/shr.el (shr-text): Use it. diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi index 0230a2863a..15cad88d59 100644 --- a/doc/emacs/display.texi +++ b/doc/emacs/display.texi @@ -642,24 +642,41 @@ apply them to specific text when you want the effects they produce. @item default This face is used for ordinary text that doesn't specify any face. Its background color is used as the frame's background color. + @item bold This face uses a bold variant of the default font. + @item italic This face uses an italic variant of the default font. + @item bold-italic This face uses a bold italic variant of the default font. + @item underline This face underlines text. + @item fixed-pitch This face forces use of a fixed-width font. It's reasonable to customize this face to use a different fixed-width font, if you like, but you should not make it a variable-width font. + @item fixed-pitch-serif This face is like @code{fixed-pitch}, except the font has serifs and looks more like traditional typewriting. + @cindex @code{variable-pitch} face @item variable-pitch -This face forces use of a variable-width font. +This face forces use of a variable-width (i.e., proportional) font. +The font size picked for this face matches the font picked for the +default (usually fixed-width) font. + +@item variable-pitch-text +This is like the @code{variable-pitch} face (from which it inherits), +but is slightly larger. A proportional font of the same height as a +monospace font usually appears visually smaller, and can therefore be +harder to read. When displaying longer texts, this face can be a good +choice over the (slightly smaller) @code{variable-pitch} face. + @cindex @code{shadow} face @item shadow This face is used for making the text less noticeable than the surrounding diff --git a/etc/NEWS b/etc/NEWS index e30ad609bc..7a94052625 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -75,6 +75,13 @@ time. * Changes in Emacs 29.1 ++++ +** New face 'variable-pitch-text'. +This face is like 'variable-pitch' (from which it inherits), but is +slightly larger, which should help with the visual size differences +between the default, non-proportional font and proportional fonts when +mixed. + +++ ** New face 'mode-line-active'. This inherits from the 'mode-line' face, but is the face actually used diff --git a/lisp/faces.el b/lisp/faces.el index 5ed6bd1766..9caba3a11b 100644 --- a/lisp/faces.el +++ b/lisp/faces.el @@ -2381,6 +2381,15 @@ If you set `term-file-prefix' to nil, this function does nothing." "The basic variable-pitch face." :group 'basic-faces) +(defface variable-pitch-text + '((t :inherit variable-pitch + :height 1.1)) + "The proportional face used for longer texts. +This is like the `variable-pitch' face, but is slightly bigger by +default." + :version "29.1" + :group 'basic-faces) + (defface shadow '((((class color grayscale) (min-colors 88) (background light)) :foreground "grey50") diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 554381e212..07cb68667f 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -769,7 +769,7 @@ Obsolete; use the face `gnus-signature' for customizations instead." :group 'gnus-article-signature) (defface gnus-header - '((t :inherit variable-pitch)) + '((t :inherit variable-pitch-text)) "Base face used for all Gnus header faces. All the other `gnus-header-' faces inherit from this face." :version "29.1" diff --git a/lisp/net/shr.el b/lisp/net/shr.el index d4c7aaf1c8..ee0e824411 100644 --- a/lisp/net/shr.el +++ b/lisp/net/shr.el @@ -163,7 +163,7 @@ cid: URL as the argument.") (defvar shr-put-image-function #'shr-put-image "Function called to put image and alt string.") -(defface shr-text '((t :inherit variable-pitch)) +(defface shr-text '((t :inherit variable-pitch-text)) "Face used for rendering text." :version "29.1") commit 40fc31ea2868c7ad22e1a09fea967a2739d115b1 Author: Stefan Kangas Date: Wed Dec 1 17:05:48 2021 +0100 ; * ChangeLog.3: Update. diff --git a/ChangeLog.3 b/ChangeLog.3 index ac188adeb8..6e621823ff 100644 --- a/ChangeLog.3 +++ b/ChangeLog.3 @@ -1,3 +1,65 @@ +2021-12-01 Alan Mackenzie + + CC Mode: Recognise "struct foo {" as introducing a type declaration + + This fixes bug #52157. + + * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): If such a construct + is parsed, set the flag at-type-decl which is part of the function's return + value. + +2021-12-01 Stefan Kangas + + Update authors.el for Emacs 28 + + * admin/authors.el (authors-aliases, authors-ignored-files) + (authors-renamed-files-alist): Update for Emacs 28. + +2021-11-30 Juri Linkov + + * lisp/repeat.el: Fix long-standing problem when a random key activates map + + * lisp/repeat.el (repeat-check-key): New defcustom (bug#51390). + (repeat--command-property): New internal function. + (repeat-check-key): New function. + (repeat-post-hook): Use repeat--command-property and repeat-check-key. + + * test/lisp/repeat-tests.el (repeat-tests-check-key): New test. + +2021-11-30 Juri Linkov + + * lisp/repeat.el (repeat-keep-prefix): Change default to nil. + + 'repeat-keep-prefix' doesn't yet have sufficient support + that covers all cases in bug#51281, so it's disabled now. + +2021-11-30 Juri Linkov + + * test/lisp/repeat-tests.el (repeat-tests-call-b): Test for commit 588caf0b27. + + This tests for 'repeat-map' as a variable instead of a symbol. + +2021-11-30 Juri Linkov + + * src/callint.c (Fcall_interactively): Fix inhibit_mouse_event_check. + + Don't search for the next mouse event with parameters + when inhibit-mouse-event-check is non-nil (bug#50067). + +2021-11-30 Lars Ingebrigtsen + + Fix regression in gdb-frame-handler + + * lisp/progmodes/gdb-mi.el (gdb-frame-handler): Protect against + nil fullnames (bug#52196). + +2021-11-30 YugaEgo (tiny change) + + Format and index concept 'predicate' in ELisp Intro + + * doc/lispintro/emacs-lisp-intro.texi (Wrong Type of Argument): + Add index and format definition (bug#52197). + 2021-11-29 Protesilaos Stavrou Remove problematic characters from modus-themes.org (bug#52126) @@ -233321,7 +233383,7 @@ This file records repository revisions from commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to -commit 30553d889d733613e8e5fd22358980baa7ee148e (inclusive). +commit 2be090d5d3002e2ddfc8dbe46c29536f7410a86d (inclusive). See ChangeLog.2 for earlier changes. ;; Local Variables: commit 2be090d5d3002e2ddfc8dbe46c29536f7410a86d Author: Stefan Kangas Date: Wed Dec 1 16:01:23 2021 +0100 ; * ChangeLog.3: Minor fixes. diff --git a/ChangeLog.3 b/ChangeLog.3 index 0650586bed..ac188adeb8 100644 --- a/ChangeLog.3 +++ b/ChangeLog.3 @@ -130058,6 +130058,7 @@ to pacify LeakSanitizer. 2019-04-20 Michael R. Mauger + Fix Bug#35307. * lisp/progmodes/sql.el(sql-product-alist): Added @@ -130067,6 +130068,7 @@ adjustments needed for Emacs to support it. 2019-04-20 Michael R. Mauger + Fix Bug#24483. * lisp/progmodes/sql.el @@ -233319,8 +233321,6 @@ This file records repository revisions from commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to -2021-03-18bd67a4f40a733cb139ace3af4616bc2702282 (inclusive). -2021-02-03d9244f7cbef9f91e697ad5fc0ce49ec97 (inclusive). commit 30553d889d733613e8e5fd22358980baa7ee148e (inclusive). See ChangeLog.2 for earlier changes. commit 9963b11bf71515b08097781ad9cef28c7674bbf5 Author: Stefan Kangas Date: Wed Dec 1 16:56:59 2021 +0100 ; * admin/authors.el (authors-aliases): Further updates. diff --git a/admin/authors.el b/admin/authors.el index 4feb300401..5d57b09c22 100644 --- a/admin/authors.el +++ b/admin/authors.el @@ -84,6 +84,7 @@ files.") ("Emilio C. Lopes" "Emilio Lopes") ("Eric M. Ludlam" "Eric Ludlam") ("Eric S. Raymond" "Eric Raymond") + ("Etienne Prud’Homme" "Etienne Prud'Homme") ("Fabián Ezequiel Gallina" "Fabian Ezequiel Gallina" "Fabi.n E\\. Gallina") (nil "felix.*EmacsWiki") (nil "foudfou") @@ -132,7 +133,6 @@ files.") ("Kim F. Storm" "Kim Storm") ("Kyle Jones" "Kyle E. Jones") ("Lars Magne Ingebrigtsen" "Lars Ingebrigtsen") - (nil "leo") (nil "LynX@bk.ru") (nil "lu4nx") ("Marcus G. Daniels" "Marcus Daniels") @@ -143,7 +143,7 @@ files.") ("Agustín Martín" "Agustin Martin" "Agustín Martín Domingo") ("Martin Lorentzon" "Martin Lorentzson") ("Matt Swift" "Matthew Swift") - (nil "Madhu") + (nil "^Madhu") (nil "mu@magi.net.ru") ("Maxime Edouard Robert Froumentin" "Max Froumentin") ("Michael R. Mauger" "Michael Mauger") @@ -206,7 +206,7 @@ files.") ("Takaaki Ota" "Tak Ota") ("Takahashi Naoto" "Naoto Takahashi") ("Teodor Zlatanov" "Ted Zlatanov") - (nil "TEC") + (nil "^TEC") (nil "The PCL-CVS Trust") ("Thomas Dye" "Tom Dye") ("Thomas Horsley" "Tom Horsley") ; FIXME ? @@ -232,7 +232,7 @@ files.") ("Carlos Pita" "memeplex") ("Vinicius Jose Latorre" "viniciusjl") ("Gaby Launay" "galaunay") - ("Dick R. Chiang" "dickmao" "dick") + ("Dick R. Chiang" "dickmao") ) "Alist of author aliases. commit 50b40e1d4f0063ac78a53673736a2eaa3ba3287b Author: Stefan Kangas Date: Wed Dec 1 16:21:34 2021 +0100 ; * lisp/org/ob-julia.el: Fix Author header for authors.el. diff --git a/lisp/org/ob-julia.el b/lisp/org/ob-julia.el index 4fae0d142b..3176baf370 100644 --- a/lisp/org/ob-julia.el +++ b/lisp/org/ob-julia.el @@ -1,7 +1,7 @@ ;;; ob-julia.el --- org-babel functions for julia code evaluation -*- lexical-binding: t; -*- ;; Copyright (C) 2013-2021 Free Software Foundation, Inc. -;; Authors: G. Jay Kerns, based on ob-R.el by Eric Schulte and Dan Davison +;; Authors: G. Jay Kerns ;; Maintainer: Pedro Bruel ;; Keywords: literate programming, reproducible research, scientific computing ;; Homepage: https://github.com/phrb/ob-julia @@ -24,6 +24,8 @@ ;;; Commentary: ;; Org-Babel support for evaluating julia code +;; +;; Based on ob-R.el by Eric Schulte and Dan Davison. ;;; Code: (require 'cl-lib) commit 45252ad8f932c98a373ef0ab7f3363a3e27ccbe4 Author: Mattias Engdegård Date: Mon Nov 22 16:56:38 2021 +0100 Fix closure-conversion of shadowed captured lambda-lifted vars Lambda-lifted variables (ones passed explicitly to lambda-lifted functions) that are also captured in an outer closure and shadowed were renamed incorrectly (bug#51982). Reported by Paul Pogonyshev. * lisp/emacs-lisp/cconv.el (cconv--lifted-arg): New. (cconv-convert): Provide correct definiens for the closed-over variable. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases): * test/lisp/emacs-lisp/cconv-tests.el (cconv-tests--intern-all) (cconv-closure-convert-remap-var): Add tests. diff --git a/lisp/emacs-lisp/cconv.el b/lisp/emacs-lisp/cconv.el index 03e109f250..f86744fd1a 100644 --- a/lisp/emacs-lisp/cconv.el +++ b/lisp/emacs-lisp/cconv.el @@ -304,6 +304,25 @@ of converted forms." `(,@(nreverse special-forms) ,@(macroexp-unprogn body)))) funcbody))) +(defun cconv--lifted-arg (var env) + "The argument to use for VAR in λ-lifted calls according to ENV. +This is used when VAR is being shadowed; we may still need its value for +such calls." + (let ((mapping (cdr (assq var env)))) + (pcase-exhaustive mapping + (`(internal-get-closed-var . ,_) + ;; The variable is captured. + mapping) + (`(car-safe (internal-get-closed-var . ,_)) + ;; The variable is mutably captured; skip + ;; the indirection step because the variable is + ;; passed "by reference" to the λ-lifted function. + (cadr mapping)) + ((or '() `(car-safe ,(pred symbolp))) + ;; The variable is not captured; use the (shadowed) variable value. + ;; (If the mapping is `(car-safe SYMBOL)', SYMBOL is always VAR. + var)))) + (defun cconv-convert (form env extend) ;; This function actually rewrites the tree. "Return FORM with all its lambdas changed so they are closed. @@ -428,10 +447,11 @@ places where they originally did not directly appear." ;; One of the lambda-lifted vars is shadowed, so add ;; a reference to the outside binding and arrange to use ;; that reference. - (let ((closedsym (make-symbol (format "closed-%s" var)))) + (let ((var-def (cconv--lifted-arg var env)) + (closedsym (make-symbol (format "closed-%s" var)))) (setq new-env (cconv--remap-llv new-env var closedsym)) (setq new-extend (cons closedsym (remq var new-extend))) - (push `(,closedsym ,var) binders-new))) + (push `(,closedsym ,var-def) binders-new))) ;; We push the element after redefined free variables are ;; processed. This is important to avoid the bug when free @@ -449,14 +469,13 @@ places where they originally did not directly appear." ;; before we know that the var will be in `new-extend' (bug#24171). (dolist (binder binders-new) (when (memq (car-safe binder) new-extend) - ;; One of the lambda-lifted vars is shadowed, so add - ;; a reference to the outside binding and arrange to use - ;; that reference. + ;; One of the lambda-lifted vars is shadowed. (let* ((var (car-safe binder)) + (var-def (cconv--lifted-arg var env)) (closedsym (make-symbol (format "closed-%s" var)))) (setq new-env (cconv--remap-llv new-env var closedsym)) (setq new-extend (cons closedsym (remq var new-extend))) - (push `(,closedsym ,var) binders-new))))) + (push `(,closedsym ,var-def) binders-new))))) `(,letsym ,(nreverse binders-new) . ,(mapcar (lambda (form) diff --git a/test/lisp/emacs-lisp/bytecomp-tests.el b/test/lisp/emacs-lisp/bytecomp-tests.el index 816f14a18d..b82afd353c 100644 --- a/test/lisp/emacs-lisp/bytecomp-tests.el +++ b/test/lisp/emacs-lisp/bytecomp-tests.el @@ -643,6 +643,49 @@ inner loops respectively." (cond) (mapcar (lambda (x) (cond ((= x 0)))) '(0 1)) + + ;; These expressions give different results in lexbind and dynbind modes, + ;; but in each the compiler and interpreter should agree! + ;; (They look much the same but come in pairs exercising both the + ;; `let' and `let*' paths.) + (let ((f (lambda (x) + (lambda () + (let ((g (lambda () x))) + (let ((x 'a)) + (list x (funcall g)))))))) + (funcall (funcall f 'b))) + (let ((f (lambda (x) + (lambda () + (let ((g (lambda () x))) + (let* ((x 'a)) + (list x (funcall g)))))))) + (funcall (funcall f 'b))) + (let ((f (lambda (x) + (lambda () + (let ((g (lambda () x))) + (setq x (list x x)) + (let ((x 'a)) + (list x (funcall g)))))))) + (funcall (funcall f 'b))) + (let ((f (lambda (x) + (lambda () + (let ((g (lambda () x))) + (setq x (list x x)) + (let* ((x 'a)) + (list x (funcall g)))))))) + (funcall (funcall f 'b))) + (let ((f (lambda (x) + (let ((g (lambda () x)) + (h (lambda () (setq x (list x x))))) + (let ((x 'a)) + (list x (funcall g) (funcall h))))))) + (funcall (funcall f 'b))) + (let ((f (lambda (x) + (let ((g (lambda () x)) + (h (lambda () (setq x (list x x))))) + (let* ((x 'a)) + (list x (funcall g) (funcall h))))))) + (funcall (funcall f 'b))) ) "List of expressions for cross-testing interpreted and compiled code.") diff --git a/test/lisp/emacs-lisp/cconv-tests.el b/test/lisp/emacs-lisp/cconv-tests.el index 4290571735..0701892b8c 100644 --- a/test/lisp/emacs-lisp/cconv-tests.el +++ b/test/lisp/emacs-lisp/cconv-tests.el @@ -205,5 +205,157 @@ nil 99) 42))) +(defun cconv-tests--intern-all (x) + "Intern all symbols in X." + (cond ((symbolp x) (intern (symbol-name x))) + ((consp x) (cons (cconv-tests--intern-all (car x)) + (cconv-tests--intern-all (cdr x)))) + ;; Assume we don't need to deal with vectors etc. + (t x))) + +(ert-deftest cconv-closure-convert-remap-var () + ;; Verify that we correctly remap shadowed lambda-lifted variables. + + ;; We intern all symbols for ease of comparison; this works because + ;; the `cconv-closure-convert' result should contain no pair of + ;; distinct symbols having the same name. + + ;; Sanity check: captured variable, no lambda-lifting or shadowing: + (should (equal (cconv-tests--intern-all + (cconv-closure-convert + '#'(lambda (x) + #'(lambda () x)))) + '#'(lambda (x) + (internal-make-closure + nil (x) nil + (internal-get-closed-var 0))))) + + ;; Basic case: + (should (equal (cconv-tests--intern-all + (cconv-closure-convert + '#'(lambda (x) + (let ((f #'(lambda () x))) + (let ((x 'b)) + (list x (funcall f))))))) + '#'(lambda (x) + (let ((f #'(lambda (x) x))) + (let ((x 'b) + (closed-x x)) + (list x (funcall f closed-x))))))) + (should (equal (cconv-tests--intern-all + (cconv-closure-convert + '#'(lambda (x) + (let ((f #'(lambda () x))) + (let* ((x 'b)) + (list x (funcall f))))))) + '#'(lambda (x) + (let ((f #'(lambda (x) x))) + (let* ((closed-x x) + (x 'b)) + (list x (funcall f closed-x))))))) + + ;; With the lambda-lifted shadowed variable also being captured: + (should (equal + (cconv-tests--intern-all + (cconv-closure-convert + '#'(lambda (x) + #'(lambda () + (let ((f #'(lambda () x))) + (let ((x 'a)) + (list x (funcall f)))))))) + '#'(lambda (x) + (internal-make-closure + nil (x) nil + (let ((f #'(lambda (x) x))) + (let ((x 'a) + (closed-x (internal-get-closed-var 0))) + (list x (funcall f closed-x)))))))) + (should (equal + (cconv-tests--intern-all + (cconv-closure-convert + '#'(lambda (x) + #'(lambda () + (let ((f #'(lambda () x))) + (let* ((x 'a)) + (list x (funcall f)))))))) + '#'(lambda (x) + (internal-make-closure + nil (x) nil + (let ((f #'(lambda (x) x))) + (let* ((closed-x (internal-get-closed-var 0)) + (x 'a)) + (list x (funcall f closed-x)))))))) + ;; With lambda-lifted shadowed variable also being mutably captured: + (should (equal + (cconv-tests--intern-all + (cconv-closure-convert + '#'(lambda (x) + #'(lambda () + (let ((f #'(lambda () x))) + (setq x x) + (let ((x 'a)) + (list x (funcall f)))))))) + '#'(lambda (x) + (let ((x (list x))) + (internal-make-closure + nil (x) nil + (let ((f #'(lambda (x) (car-safe x)))) + (setcar (internal-get-closed-var 0) + (car-safe (internal-get-closed-var 0))) + (let ((x 'a) + (closed-x (internal-get-closed-var 0))) + (list x (funcall f closed-x))))))))) + (should (equal + (cconv-tests--intern-all + (cconv-closure-convert + '#'(lambda (x) + #'(lambda () + (let ((f #'(lambda () x))) + (setq x x) + (let* ((x 'a)) + (list x (funcall f)))))))) + '#'(lambda (x) + (let ((x (list x))) + (internal-make-closure + nil (x) nil + (let ((f #'(lambda (x) (car-safe x)))) + (setcar (internal-get-closed-var 0) + (car-safe (internal-get-closed-var 0))) + (let* ((closed-x (internal-get-closed-var 0)) + (x 'a)) + (list x (funcall f closed-x))))))))) + ;; Lambda-lifted variable that isn't actually captured where it is shadowed: + (should (equal + (cconv-tests--intern-all + (cconv-closure-convert + '#'(lambda (x) + (let ((g #'(lambda () x)) + (h #'(lambda () (setq x x)))) + (let ((x 'b)) + (list x (funcall g) (funcall h))))))) + '#'(lambda (x) + (let ((x (list x))) + (let ((g #'(lambda (x) (car-safe x))) + (h #'(lambda (x) (setcar x (car-safe x))))) + (let ((x 'b) + (closed-x x)) + (list x (funcall g closed-x) (funcall h closed-x)))))))) + (should (equal + (cconv-tests--intern-all + (cconv-closure-convert + '#'(lambda (x) + (let ((g #'(lambda () x)) + (h #'(lambda () (setq x x)))) + (let* ((x 'b)) + (list x (funcall g) (funcall h))))))) + '#'(lambda (x) + (let ((x (list x))) + (let ((g #'(lambda (x) (car-safe x))) + (h #'(lambda (x) (setcar x (car-safe x))))) + (let* ((closed-x x) + (x 'b)) + (list x (funcall g closed-x) (funcall h closed-x)))))))) + ) + (provide 'cconv-tests) ;;; cconv-tests.el ends here commit 6a60bd475d67b7e8c9184836abf7eea229183066 Author: Lars Ingebrigtsen Date: Wed Dec 1 16:53:00 2021 +0100 Add a new minor mode `glyphless-display-mode' * doc/emacs/display.texi (Text Display): Mention it. * doc/lispref/display.texi (Glyphless Chars): Document it. * lisp/textmodes/glyphless-mode.el: New minor mode (bug#27544). diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi index 90044b1d4b..0230a2863a 100644 --- a/doc/emacs/display.texi +++ b/doc/emacs/display.texi @@ -1673,6 +1673,12 @@ characters more prominent on display. @xref{Glyphless Chars,, Glyphless Character Display, elisp, The Emacs Lisp Reference Manual}, for details. +@findex glyphless-display-mode + The @code{glyphless-display-mode} minor mode can be used to toggle +the display of glyphless characters in the current buffer. The +glyphless characters will be displayed as boxes with acronyms of their +names inside. + @cindex curly quotes, and terminal capabilities @cindex curved quotes, and terminal capabilities @cindex @code{homoglyph} face diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index f37b35112a..275c15e5d4 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -8193,7 +8193,14 @@ there is no available font (on a graphical display), and characters which cannot be encoded by the terminal's coding system (on a text terminal). +@vindex glyphless-display-mode +The @code{glyphless-display-mode} minor mode can be used to toggle +displaying glyphless characters in a convenient manner in the current +buffer. If this mode is enabled, all the glyphless characters are +displayed as boxes that display acronyms of their character names. + @defvar glyphless-char-display +For more fine-grained (and global) control, this variable can be used. The value of this variable is a char-table which defines glyphless characters and how they are displayed. Each entry must be one of the following display methods: diff --git a/etc/NEWS b/etc/NEWS index 352d189612..e30ad609bc 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -295,6 +295,10 @@ received. * Changes in Specialized Modes and Packages in Emacs 29.1 +** New minor mode 'glyphless-display-mode'. +This allows an easy way to toggle seeing all glyphless characters in +the current buffer. + ** Registers +++ diff --git a/lisp/textmodes/glyphless-mode.el b/lisp/textmodes/glyphless-mode.el new file mode 100644 index 0000000000..3aeb360084 --- /dev/null +++ b/lisp/textmodes/glyphless-mode.el @@ -0,0 +1,67 @@ +;;; glyphless-mode.el --- minor mode for displaying glyphless characters -*- lexical-binding: t; -*- + +;; Copyright (C) 2021 Free Software Foundation, Inc. + +;; Maintainer: emacs-devel@gnu.org + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . + +;;; Commentary: + +;;; Code: + +(defcustom glyphless-mode-types '(all) + "Which glyphless characters to display. +The value can be any of the groups supported by +`glyphless-char-display-control' (which see), and in addition +`all', for all glyphless characters." + :version "29.1" + :type '(repeat (choice (const :tag "All" all) + (const :tag "No font" no-font) + (const :tag "C0 Control" c0-control) + (const :tag "C1 Control" c1-control) + (const :tag "Format Control" format-control) + (const :tag "Variation Selectors" variation-selectors) + (const :tag "No Font" no-font))) + :group 'display) + +;;;###autoload +(define-minor-mode glyphless-display-mode + "Minor mode for displaying glyphless characters in the current buffer. +If enabled, all glyphless characters will be displayed as boxes +that display their acronyms." + :lighter " Glyphless" + (if glyphless-display-mode + (progn + (setq-local glyphless-char-display + (let ((table (make-display-table))) + (set-char-table-parent table glyphless-char-display) + table)) + (glyphless-mode--setup)) + (kill-local-variable 'glyphless-char-display))) + +(defun glyphless-mode--setup () + (let ((types (if (memq 'all glyphless-mode-types) + '(c0-control c1-control format-control + variation-selectors no-font) + glyphless-mode-types))) + (when types + (update-glyphless-char-display + nil (mapcar (lambda (e) (cons e 'acronym)) types))))) + +(provide 'glyphless-mode) + +;;; glyphless-mode.el ends here commit 8959b1343b4ba20a7f58a5bec23d703d0cae1ddb Author: Lars Ingebrigtsen Date: Wed Dec 1 16:48:06 2021 +0100 Fix update-glyphless-char-display variable setting * lisp/international/characters.el (update-glyphless-char-display): Only set the variable if given. diff --git a/lisp/international/characters.el b/lisp/international/characters.el index 3a8e968c34..9e0cc88d80 100644 --- a/lisp/international/characters.el +++ b/lisp/international/characters.el @@ -1522,7 +1522,7 @@ Setup `char-width-table' appropriate for non-CJK language environment." This function updates the char-table `glyphless-char-display', and is intended to be used in the `:set' attribute of the option `glyphless-char-display'." - (when value + (when variable (set-default variable value)) (dolist (elt value) (let ((target (car elt)) commit 84166ea2e6a5c54fad1d31812eb6f3b3ca7374a1 Author: Alan Mackenzie Date: Wed Dec 1 15:41:09 2021 +0000 CC Mode: Recognise "struct foo {" as introducing a type declaration This fixes bug #52157. * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): If such a construct is parsed, set the flag at-type-decl which is part of the function's return value. diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index c42c95764a..db1f46621d 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el @@ -9978,7 +9978,12 @@ This function might do hidden buffer changes." (save-excursion (goto-char type-start) (let ((c-promote-possible-types t)) - (c-forward-type))))) + (c-forward-type)))) + + ;; Signal a type declaration for "struct foo {". + (when (and backup-at-type-decl + (eq (char-after) ?{)) + (setq at-type-decl t))) (setq backup-at-type at-type backup-type-start type-start commit 6348ca1a888974e7ed8d43e5d78961c81d80b140 Author: Lars Ingebrigtsen Date: Wed Dec 1 15:03:16 2021 +0100 Make pixel-fill-region handle space regions better * lisp/textmodes/pixel-fill.el (pixel-fill-region): Preserve the face on the replacement spaces. diff --git a/lisp/textmodes/pixel-fill.el b/lisp/textmodes/pixel-fill.el index 1115ba303e..86fdd3c2ff 100644 --- a/lisp/textmodes/pixel-fill.el +++ b/lisp/textmodes/pixel-fill.el @@ -90,10 +90,17 @@ prefix on subsequent lines." (goto-char (point-min)) ;; First replace all whitespace with space. (while (re-search-forward "[ \t\n]+" nil t) - (if (or (= (match-beginning 0) start) - (= (match-end 0) end)) - (delete-region (match-beginning 0) (match-end 0)) - (replace-match " "))) + (cond + ((or (= (match-beginning 0) start) + (= (match-end 0) end)) + (delete-region (match-beginning 0) (match-end 0))) + ;; If there's just a single space here, don't replace. + ((not (and (= (- (match-end 0) (match-beginning 0)) 1) + (= (char-after (match-beginning 0)) ?\s))) + (replace-match + ;; We need to use a space that has an appropriate width. + (propertize " " 'face + (get-text-property (match-beginning 0) 'face)))))) (goto-char start) (pixel-fill--fill-line pixel-width indentation) (goto-char (point-max)) commit ddaedb1910cd9a6ea394754b0e98502170316e23 Author: Eli Zaretskii Date: Wed Dec 1 15:57:59 2021 +0200 ; * src/w32term.c (w32_construct_mouse_wheel): Fix a typo. diff --git a/src/w32term.c b/src/w32term.c index 6b7cbbea6c..5c6a9fef3a 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -3251,10 +3251,10 @@ w32_construct_mouse_wheel (struct input_event *result, W32Msg *msg, int scroll_unit = max (w32_wheel_scroll_lines, 1), nlines; double value_to_report; - /* w32_wheel_scroll_lines == INT_MAX means the user asked for + /* w32_wheel_scroll_lines == UINT_MAX means the user asked for "entire page" to be the scroll unit. We interpret that as the height of the window under the mouse pointer. */ - if (w32_wheel_scroll_lines == INT_MAX) + if (w32_wheel_scroll_lines == UINT_MAX) { Lisp_Object window = window_from_coordinates (f, p.x, p.y, NULL, false, false); commit 2ee6621fe9ff67cd5ac4ac4e6b6f6d0c4cb6f047 Author: Po Lu Date: Wed Dec 1 21:54:10 2021 +0800 Fix precision pixel scrolling for a recent change * lisp/pixel-scroll.el (pixel-scroll-precision-mode-map): Use `mwheel-coalesce-scroll-events' instead. diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el index 6567153486..59b5b71b92 100644 --- a/lisp/pixel-scroll.el +++ b/lisp/pixel-scroll.el @@ -91,7 +91,7 @@ is always with pixel resolution.") (defvar pixel-last-scroll-time 0 "Time when the last scrolling was made, in second since the epoch.") -(defvar x-coalesce-scroll-events) +(defvar mwheel-coalesce-scroll-events) (defvar pixel-scroll-precision-mode-map (let ((map (make-sparse-keymap))) @@ -490,7 +490,7 @@ precisely, according to the turning of the mouse wheel." :global t :group 'mouse :keymap pixel-scroll-precision-mode-map - (setq x-coalesce-scroll-events + (setq mwheel-coalesce-scroll-events (not pixel-scroll-precision-mode))) (provide 'pixel-scroll) commit 3bc0768e9b82feaf5ce1665227055e97e72af164 Author: Lars Ingebrigtsen Date: Wed Dec 1 14:10:19 2021 +0100 Enable gnus-treat-fold-headers by default * lisp/gnus/gnus-art.el (gnus-treat-fold-headers): Change default to `head'. diff --git a/etc/NEWS b/etc/NEWS index d786d17f21..352d189612 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -373,6 +373,9 @@ following in your .gnus file: (set-face-attribute 'gnus-header nil :inherit 'unspecified) +--- +*** The default value of 'gnus-treat-fold-headers' is now 'head'. + --- *** New face 'gnus-header'. All other 'gnus-header-*' faces inherit from this face now. diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 8b2b7ade29..554381e212 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -1383,11 +1383,11 @@ This variable has no effect if `gnus-treat-unfold-headers' is nil." (const :tag "all" t) (regexp))) -(defcustom gnus-treat-fold-headers nil +(defcustom gnus-treat-fold-headers 'head "Fold headers. Valid values are nil, t, `head', `first', `last', an integer or a predicate. See Info node `(gnus)Customizing Articles'." - :version "22.1" + :version "29.1" :group 'gnus-article-treat :link '(custom-manual "(gnus)Customizing Articles") :type gnus-article-treat-custom) commit 2d60566c8787b63b5e4e2958e9ec9f55fbcf9e87 Author: Lars Ingebrigtsen Date: Wed Dec 1 06:30:32 2021 +0100 Use proportional fonts in the Gnus headers by default * lisp/gnus/gnus-art.el (gnus-header): Inherit from `variable-pitch'. (gnus--variable-pitch-p): New helper function. (gnus-article-treat-fold-headers): Fill using pixel filling. diff --git a/etc/NEWS b/etc/NEWS index 52686479ce..d786d17f21 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -366,6 +366,13 @@ the common "utm_" trackers from URLs. ** Gnus +--- +*** Gnus now uses a variable-pitch font in the headers by default. +To get the monospace font back, you can put something like the +following in your .gnus file: + + (set-face-attribute 'gnus-header nil :inherit 'unspecified) + --- *** New face 'gnus-header'. All other 'gnus-header-*' faces inherit from this face now. diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 02f0d50be5..8b2b7ade29 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -769,7 +769,7 @@ Obsolete; use the face `gnus-signature' for customizations instead." :group 'gnus-article-signature) (defface gnus-header - '((t nil)) + '((t :inherit variable-pitch)) "Base face used for all Gnus header faces. All the other `gnus-header-' faces inherit from this face." :version "29.1" @@ -2212,6 +2212,13 @@ unfolded." (replace-match " " t t)))) (goto-char (point-max))))))) +(defun gnus--variable-pitch-p (face) + (or (eq face 'variable-pitch) + (let ((parent (face-attribute face :inherit))) + (if (eq parent 'unspecified) + nil + (seq-some #'gnus--variable-pitch-p (ensure-list parent)))))) + (defun gnus-article-treat-fold-headers () "Fold message headers." (interactive nil gnus-article-mode gnus-summary-mode) @@ -2219,7 +2226,10 @@ unfolded." (while (not (eobp)) (save-restriction (mail-header-narrow-to-field) - (mail-header-fold-field) + (if (not (gnus--variable-pitch-p (get-text-property (point) 'face))) + (mail-header-fold-field) + (forward-char 1) + (pixel-fill-region (point) (point-max) (pixel-fill-width))) (goto-char (point-max)))))) (defun gnus-treat-smiley () commit 9d17e346fe15d7afff8a2e520522586c51225a4c Author: Lars Ingebrigtsen Date: Wed Dec 1 06:18:12 2021 +0100 Preserve newlines at the end of pixel-fill-region * lisp/textmodes/pixel-fill.el (pixel-fill-region): Preserve newlines at the end. diff --git a/lisp/textmodes/pixel-fill.el b/lisp/textmodes/pixel-fill.el index 53aeb0a2d6..1115ba303e 100644 --- a/lisp/textmodes/pixel-fill.el +++ b/lisp/textmodes/pixel-fill.el @@ -77,20 +77,28 @@ prefix on subsequent lines." (goto-char start) (let ((indentation (car (window-text-pixel-size nil (line-beginning-position) - (point))))) + (point)))) + (newline-end nil)) (when (> indentation pixel-width) (error "The indentation (%s) is wider than the fill width (%s)" indentation pixel-width)) (save-restriction (narrow-to-region start end) - (goto-char start) + (goto-char (point-max)) + (when (looking-back "\n[ \t]*" (point-min)) + (setq newline-end t)) + (goto-char (point-min)) ;; First replace all whitespace with space. (while (re-search-forward "[ \t\n]+" nil t) - (if (= (match-beginning 0) start) + (if (or (= (match-beginning 0) start) + (= (match-end 0) end)) (delete-region (match-beginning 0) (match-end 0)) (replace-match " "))) (goto-char start) - (pixel-fill--fill-line pixel-width indentation))))) + (pixel-fill--fill-line pixel-width indentation) + (goto-char (point-max)) + (when newline-end + (insert "\n")))))) (defun pixel-fill--goto-pixel (width) (vertical-motion (cons (/ width (frame-char-width)) 0))) commit bab29694047d060bb58ff88e1a4d2cc7ef05df2a Author: Eli Zaretskii Date: Wed Dec 1 15:36:55 2021 +0200 Support precision mouse scrolling on MS-Windows * src/w32fns.c (w32_wnd_proc): Pass the WM_SETTINGCHANGE message to the Lisp thread. * src/w32term.c (w32_construct_mouse_wheel): Support mice with precision scrolling wheel. (w32_get_mouse_wheel_vertical_delta): New function. (w32_read_socket): When the WM_SETTINGCHANGE is received, call 'w32_get_mouse_wheel_vertical_delta'. (w32_initialize): Call 'w32_get_mouse_wheel_vertical_delta' at startup. * src/nsterm.m (syms_of_nsterm): * src/haikuterm.c (syms_of_haikuterm): * src/xterm.c (syms_of_xterm): Remove window-system specific variables for coalescing mwheel events. * src/keyboard.c (syms_of_keyboard) : New variable, to replace the above platform-specific ones. * doc/lispref/commands.texi (Misc Events): Improve wording of the description of mouse-wheel events. diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi index 920d380266..073cdd8aa7 100644 --- a/doc/lispref/commands.texi +++ b/doc/lispref/commands.texi @@ -2001,19 +2001,19 @@ These kinds of event are generated by moving a mouse wheel. The Events}), specifying the position of the mouse cursor when the event occurred. -@var{clicks}, if present, is the number of times in quick succession -the wheel has been moved. @xref{Repeat Events}. @var{lines}, if +@var{clicks}, if present, is the number of times that the wheel was +moved in quick succession. @xref{Repeat Events}. @var{lines}, if present and not @code{nil}, is the number of screen lines that should -be scrolled. @var{pixel-delta}, if present, is a pair of the form -@w{@code{(@var{x} . @var{y})}}, where @var{x} and @var{y} are the -number of pixels to scroll by in each axis. +be scrolled. @var{pixel-delta}, if present, is a cons cell of the +form @w{@code{(@var{x} . @var{y})}}, where @var{x} and @var{y} are the +numbers of pixels by which to scroll in each axis, a.k.a.@: +@dfn{pixelwise deltas}. @cindex pixel-resolution wheel events -You can use @var{x} and @var{y} to determine how much the mouse wheel -has actually moved at pixel resolution. - -For example, the pixelwise deltas could be used to scroll the display -at pixel resolution, exactly according to the user's turning the mouse +You can use these @var{x} and @var{y} pixelwise deltas to determine +how much the mouse wheel has actually moved at pixel resolution. For +example, the pixelwise deltas could be used to scroll the display at +pixel resolution, exactly according to the user's turning the mouse wheel. @vindex mouse-wheel-up-event diff --git a/src/haikuterm.c b/src/haikuterm.c index 6bf4589406..f3c37b0258 100644 --- a/src/haikuterm.c +++ b/src/haikuterm.c @@ -3024,7 +3024,7 @@ haiku_read_socket (struct terminal *terminal, struct input_event *hold_quit) if (fabsf (py) >= FRAME_LINE_HEIGHT (f) || fabsf (px) >= FRAME_COLUMN_WIDTH (f) - || !x_coalesce_scroll_events) + || !mwheel_coalesce_scroll_events) { inev.kind = (fabsf (px) > fabsf (py) ? HORIZ_WHEEL_EVENT @@ -3565,10 +3565,6 @@ syms_of_haikuterm (void) doc: /* SKIP: real doc in xterm.c. */); Vx_toolkit_scroll_bars = Qt; - DEFVAR_BOOL ("x-coalesce-scroll-events", x_coalesce_scroll_events, - doc: /* SKIP: real doc in xterm.c. */); - x_coalesce_scroll_events = true; - DEFVAR_BOOL ("haiku-debug-on-fatal-error", haiku_debug_on_fatal_error, doc: /* If non-nil, Emacs will launch the system debugger upon a fatal error. */); haiku_debug_on_fatal_error = 1; diff --git a/src/keyboard.c b/src/keyboard.c index c98175aea0..b3e6e5029b 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -12571,6 +12571,12 @@ other similar functions ignore input events in `while-no-input-ignore-events'. This flag may eventually be removed once this behavior is deemed safe. */); input_pending_p_filter_events = true; + DEFVAR_BOOL ("mwheel-coalesce-scroll-events", mwheel_coalesce_scroll_events, + doc: /* Non-nil means send a wheel event only for scrolling at least one screen line. +Otherwise, a wheel event will be sent every time the mouse wheel is +moved. */); + mwheel_coalesce_scroll_events = true; + pdumper_do_now_and_after_load (syms_of_keyboard_for_pdumper); } diff --git a/src/nsterm.m b/src/nsterm.m index 807309eb2e..5c19b0cab8 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -6606,7 +6606,7 @@ - (void)mouseDown: (NSEvent *)theEvent * reset the total delta for the direction we're NOT * scrolling so that small movements don't add up. */ if (abs (totalDeltaX) > abs (totalDeltaY) - && (!x_coalesce_scroll_events + && (!mwheel_coalesce_scroll_events || abs (totalDeltaX) > lineHeight)) { horizontal = YES; @@ -6614,14 +6614,14 @@ - (void)mouseDown: (NSEvent *)theEvent lines = abs (totalDeltaX / lineHeight); x = totalDeltaX; - if (!x_coalesce_scroll_events) + if (!mwheel_coalesce_scroll_events) totalDeltaX = 0; else totalDeltaX = totalDeltaX % lineHeight; totalDeltaY = 0; } else if (abs (totalDeltaY) >= abs (totalDeltaX) - && (!x_coalesce_scroll_events + && (!mwheel_coalesce_scroll_events || abs (totalDeltaY) > lineHeight)) { horizontal = NO; @@ -6629,7 +6629,7 @@ - (void)mouseDown: (NSEvent *)theEvent lines = abs (totalDeltaY / lineHeight); y = totalDeltaY; - if (!x_coalesce_scroll_events) + if (!mwheel_coalesce_scroll_events) totalDeltaY = 0; else totalDeltaY = totalDeltaY % lineHeight; @@ -6662,7 +6662,7 @@ - (void)mouseDown: (NSEvent *)theEvent y = [theEvent scrollingDeltaY]; } - if (lines == 0 && x_coalesce_scroll_events) + if (lines == 0 && mwheel_coalesce_scroll_events) return; if (NUMBERP (Vns_scroll_event_delta_factor)) @@ -10037,10 +10037,6 @@ Nil means use fullscreen the old (< 10.7) way. The old way works better with doc: /* SKIP: real doc in xterm.c. */); x_underline_at_descent_line = 0; - DEFVAR_BOOL ("x-coalesce-scroll-events", x_coalesce_scroll_events, - doc: /* SKIP: real doc in xterm.c. */); - x_coalesce_scroll_events = true; - DEFSYM (Qx_underline_at_descent_line, "x-underline-at-descent-line"); DEFVAR_LISP ("ns-scroll-event-delta-factor", Vns_scroll_event_delta_factor, diff --git a/src/w32fns.c b/src/w32fns.c index c1686beaaa..65463b5261 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -5173,6 +5173,13 @@ w32_wnd_proc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) my_post_msg (&wmsg, hwnd, msg, wParam, lParam); goto dflt; + case WM_SETTINGCHANGE: + /* Inform the Lisp thread that some system-wide setting has + changed, so if Emacs is interested in some of them, it could + update its internal values. */ + my_post_msg (&wmsg, hwnd, msg, wParam, lParam); + goto dflt; + case WM_SETFOCUS: dpyinfo->faked_key = 0; reset_modifiers (); diff --git a/src/w32term.c b/src/w32term.c index 07a5cd3564..6b7cbbea6c 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -164,6 +164,10 @@ int last_scroll_bar_drag_pos; /* Keyboard code page - may be changed by language-change events. */ int w32_keyboard_codepage; +/* The number of screen lines to scroll for the default mouse-wheel + scroll amount, given by WHEEL_DELTA. */ +static UINT w32_wheel_scroll_lines; + #ifdef CYGWIN int w32_message_fd = -1; #endif /* CYGWIN */ @@ -271,6 +275,19 @@ XGetGCValues (void *ignore, XGCValues *gc, } #endif +static void +w32_get_mouse_wheel_vertical_delta (void) +{ + if (os_subtype != OS_SUBTYPE_NT) + return; + + UINT scroll_lines; + BOOL ret = SystemParametersInfo (SPI_GETWHEELSCROLLLINES, 0, + &scroll_lines, 0); + if (ret) + w32_wheel_scroll_lines = scroll_lines; +} + static void w32_set_clip_rectangle (HDC hdc, RECT *rect) { @@ -3203,32 +3220,94 @@ w32_construct_mouse_wheel (struct input_event *result, W32Msg *msg, { POINT p; int delta; + static int sum_delta_y = 0; result->kind = msg->msg.message == WM_MOUSEHWHEEL ? HORIZ_WHEEL_EVENT : WHEEL_EVENT; result->code = 0; result->timestamp = msg->msg.time; + result->arg = Qnil; /* A WHEEL_DELTA positive value indicates that the wheel was rotated forward, away from the user (up); a negative value indicates that the wheel was rotated backward, toward the user (down). */ delta = GET_WHEEL_DELTA_WPARAM (msg->msg.wParam); + if (delta == 0) + { + result->kind = NO_EVENT; + return Qnil; + } + + /* With multiple monitors, we can legitimately get negative + coordinates, so cast to short to interpret them correctly. */ + p.x = (short) LOWORD (msg->msg.lParam); + p.y = (short) HIWORD (msg->msg.lParam); + + if (eabs (delta) < WHEEL_DELTA) + { + /* This is high-precision mouse wheel, which sends + fine-resolution wheel events. Produce a wheel event only if + the conditions for sending such an event are fulfilled. */ + int scroll_unit = max (w32_wheel_scroll_lines, 1), nlines; + double value_to_report; + + /* w32_wheel_scroll_lines == INT_MAX means the user asked for + "entire page" to be the scroll unit. We interpret that as + the height of the window under the mouse pointer. */ + if (w32_wheel_scroll_lines == INT_MAX) + { + Lisp_Object window = window_from_coordinates (f, p.x, p.y, NULL, + false, false); + if (!WINDOWP (window)) + { + result->kind = NO_EVENT; + return Qnil; + } + scroll_unit = XWINDOW (window)->pixel_height; + if (scroll_unit < 1) /* paranoia */ + scroll_unit = 1; + } + + /* If mwheel-coalesce-scroll-events is non-nil, report a wheel event + only when we have accumulated enough delta's for WHEEL_DELTA. */ + if (mwheel_coalesce_scroll_events) + { + /* If the user changed the direction, reset the accumulated + deltas. */ + if ((delta > 0) != (sum_delta_y > 0)) + sum_delta_y = 0; + sum_delta_y += delta; + /* https://docs.microsoft.com/en-us/previous-versions/ms997498(v=msdn.10) */ + if (eabs (sum_delta_y) < WHEEL_DELTA) + { + result->kind = NO_EVENT; + return Qnil; + } + value_to_report = + ((double)FRAME_LINE_HEIGHT (f) * scroll_unit) + / ((double)WHEEL_DELTA / sum_delta_y); + sum_delta_y = 0; + } + else + value_to_report = + ((double)FRAME_LINE_HEIGHT (f) * scroll_unit) + / ((double)WHEEL_DELTA / delta); + nlines = value_to_report / FRAME_LINE_HEIGHT (f) + 0.5; + result->arg = list3 (make_fixnum (nlines), + make_float (0.0), + make_float (value_to_report)); + } /* The up and down modifiers indicate if the wheel was rotated up or down based on WHEEL_DELTA value. */ result->modifiers = (msg->dwModifiers | ((delta < 0 ) ? down_modifier : up_modifier)); - /* With multiple monitors, we can legitimately get negative - coordinates, so cast to short to interpret them correctly. */ - p.x = (short) LOWORD (msg->msg.lParam); - p.y = (short) HIWORD (msg->msg.lParam); /* For the case that F's w32 window is not msg->msg.hwnd. */ ScreenToClient (FRAME_W32_WINDOW (f), &p); XSETINT (result->x, p.x); XSETINT (result->y, p.y); XSETFRAME (result->frame_or_window, f); - result->arg = Qnil; return Qnil; } @@ -4905,6 +4984,14 @@ w32_read_socket (struct terminal *terminal, } break; + case WM_SETTINGCHANGE: + /* We are only interested in changes of the number of lines + to scroll when the vertical mouse wheel is moved. This + is only supported on NT. */ + if (msg.msg.wParam == SPI_SETWHEELSCROLLLINES) + w32_get_mouse_wheel_vertical_delta (); + break; + case WM_KEYDOWN: case WM_SYSKEYDOWN: f = w32_window_to_frame (dpyinfo, msg.msg.hwnd); @@ -7522,6 +7609,8 @@ w32_initialize (void) horizontal_scroll_bar_left_border = horizontal_scroll_bar_right_border = GetSystemMetrics (SM_CYHSCROLL); } + + w32_get_mouse_wheel_vertical_delta (); } void diff --git a/src/xterm.c b/src/xterm.c index ed6a31125c..d633953018 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -10024,7 +10024,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, val->emacs_value += delta; - if (x_coalesce_scroll_events + if (mwheel_coalesce_scroll_events && (fabs (val->emacs_value) < 1)) continue; @@ -15214,13 +15214,6 @@ consuming frame position adjustments. In newer versions of GTK, Emacs always uses gtk_window_move and ignores the value of this variable. */); x_gtk_use_window_move = true; - DEFVAR_BOOL ("x-coalesce-scroll-events", x_coalesce_scroll_events, - doc: /* Non-nil means send a wheel event only for scrolling at least one screen line. -Otherwise, a wheel event will be sent every time the mouse wheel is -moved. This option is only effective when Emacs is built with XInput -2, with Haiku windowing support, or with NS. */); - x_coalesce_scroll_events = true; - DEFVAR_LISP ("x-scroll-event-delta-factor", Vx_scroll_event_delta_factor, doc: /* A scale to apply to pixel deltas reported in scroll events. This option is only effective when Emacs is built with XInput 2 commit c13b49a110ffd23975e98c053746054492a3908a Author: Stefan Kangas Date: Wed Dec 1 11:23:29 2021 +0100 update_autogen: Remove deprecated -I flag * admin/update_autogen (info_dir): Remove deprecated -I flag; it is no longer used since info/dir is now generated at install time if needed, and is not in the repository any more. diff --git a/admin/update_autogen b/admin/update_autogen index a54c5ace1d..ff5a338886 100755 --- a/admin/update_autogen +++ b/admin/update_autogen @@ -64,7 +64,6 @@ Options: -q: be quiet; only give error messages, not status messages. -A: only update autotools files, copying into specified dir. -H: also update ChangeLog.${changelog_n} --I: also update info/dir. -L: also update ldefs-boot.el. -C: start from a clean state. Slower, but more correct. EOF @@ -81,7 +80,6 @@ clean= autogendir= # was "autogen" ldefs_flag=1 lboot_flag= -info_flag= changelog_flag= ## Parameters. @@ -129,8 +127,6 @@ while getopts ":hcfqA:HCIL" option ; do (H) changelog_flag=1 ;; - (I) info_flag=1 ;; - (L) lboot_flag=1 ;; (\?) die "Bad option -$OPTARG" ;; @@ -172,7 +168,7 @@ status () echo "Checking input file status..." ## The lisp portion could be more permissive, eg only care about .el files. -modified=$(status ${autogendir:+$sources} ${ldefs_flag:+lisp} ${info_flag:+doc}) || die +modified=$(status ${autogendir:+$sources} ${ldefs_flag:+lisp}) || die [ "$modified" ] && { echo "Locally modified: $modified" @@ -235,61 +231,6 @@ commit () } # function commit -## No longer used since info/dir is now generated at install time if needed, -## and is not in the repository any more. -info_dir () -{ - local basefile=build-aux/dir_top outfile=info/dir - - echo "Regenerating info/dir..." - - ## Header contains non-printing characters, so this is more - ## reliable than using echo. - rm -f $outfile - cp $basefile $outfile - - local topic file dircat - - ## FIXME inefficient looping. - for topic in "Texinfo documentation system" "Emacs" "GNU Emacs Lisp" \ - "Emacs editing modes" "Emacs network features" "Emacs misc features" \ - "Emacs lisp libraries"; do - - cat - <> $outfile - -$topic -EOF - ## Bit faster than doc/*/*.texi. - for file in doc/emacs/emacs.texi doc/lispintro/*.texi \ - doc/lispref/elisp.texi doc/misc/*.texi; do - - ## FIXME do not ignore w32 if OS is w32. - case $file in - *-xtra.texi|*efaq-w32.texi) continue ;; - esac - - dircat=$(sed -n -e 's/@value{emacsname}/Emacs/' -e 's/^@dircategory //p' $file) - - ## TODO warn about unknown topics (check-info in top-level - ## Makefile does this). - [ "$dircat" = "$topic" ] || continue - - sed -n -e 's/@value{emacsname}/Emacs/' \ - -e 's/@acronym{\([A-Z]*\)}/\1/' \ - -e '/^@direntry/,/^@end direntry/ s/^\([^@]\)/\1/p' \ - $file >> $outfile - - done - done - - local modified - - modified=$(status $outfile) || die - - commit "info/dir" $modified || die "commit error" -} # function info_dir - - [ "$autogendir" ] && { cp $genfiles $autogendir/ @@ -306,9 +247,6 @@ EOF } # $autogendir -[ "$info_flag" ] && info_dir - - [ "$ldefs_flag" ] || exit 0