commit 6ea5b5e1b434eb57c6f476b242761c37b54515c7 (HEAD, refs/remotes/origin/master) Author: Po Lu Date: Sun Mar 13 07:27:24 2022 +0000 Fix small regression for horizontal scroll bars * src/haikuterm.c (haiku_read_socket): Restore previous horizontal scrollbar code, since the change it was intended for was never made. diff --git a/src/haikuterm.c b/src/haikuterm.c index c98ab13e1a..6f8d2eaac5 100644 --- a/src/haikuterm.c +++ b/src/haikuterm.c @@ -3285,8 +3285,8 @@ haiku_read_socket (struct terminal *terminal, struct input_event *hold_quit) if (bar->horizontal) { - portion = bar->total * ceil ((double) b->position - / BE_SB_MAX); + portion = bar->total * ((float) b->position + / BE_SB_MAX); whole = (bar->total * ((float) (BE_SB_MAX - bar->page_size) / BE_SB_MAX)); commit 12f666c1d521668911b3e0143fafb8cf8bd7952b Author: Po Lu Date: Sun Mar 13 07:22:59 2022 +0000 Improve overscrolling support on Haiku * src/haiku_support.cc (class EmacsScrollBar): New field `real_max_value'. (MessageReceived): Set real max value. (MouseMoved): Get rid of magic numbers by using real max value instead. diff --git a/src/haiku_support.cc b/src/haiku_support.cc index 98cc8e9314..5fc8d2675e 100644 --- a/src/haiku_support.cc +++ b/src/haiku_support.cc @@ -1569,7 +1569,8 @@ class EmacsScrollBar : public BScrollBar bool can_overscroll = false; BPoint last_overscroll; int last_reported_overscroll_value; - int max_value; + int max_value, real_max_value; + int overscroll_start_value; EmacsScrollBar (int x, int y, int x1, int y1, bool horizontal_p) : BScrollBar (BRect (x, y, x1, y1), NULL, NULL, 0, 0, horizontal_p ? @@ -1593,7 +1594,8 @@ class EmacsScrollBar : public BScrollBar portion = msg->GetInt32 ("emacs:portion", 0); range = msg->GetInt32 ("emacs:range", 0); dragging = msg->GetInt32 ("emacs:dragging", 0); - proportion = (float) portion / range; + proportion = ((range <= 0 || portion <= 0) + ? 1.0f : (float) portion / range); value = msg->GetInt32 ("emacs:units", 0); can_overscroll = msg->GetBool ("emacs:overscroll", false); @@ -1616,6 +1618,7 @@ class EmacsScrollBar : public BScrollBar SetRange (0, range - portion); SetProportion (proportion); max_value = range - portion; + real_max_value = range; if (in_overscroll || value > max_value) value = max_value; @@ -1634,6 +1637,7 @@ class EmacsScrollBar : public BScrollBar old_value = value; SetValue (value); max_value = range - portion; + real_max_value = range; } } } @@ -1879,21 +1883,20 @@ class EmacsScrollBar : public BScrollBar goto allow; } - range = max_value; + range = real_max_value; bounds = Bounds (); bounds.InsetBy (1.0, 1.0); - value = Value (); + value = overscroll_start_value; trough_size = BE_RECT_HEIGHT (bounds); trough_size -= BE_RECT_WIDTH (bounds) / 2; if (info.double_arrows) trough_size -= BE_RECT_WIDTH (bounds) / 2; - value += ((double) range / trough_size) * diff * 2; + value += ((double) range / trough_size) * diff; if (value != last_reported_overscroll_value) { last_reported_overscroll_value = value; - last_overscroll = point; value_event.scroll_bar = this; value_event.window = Window (); @@ -1913,6 +1916,7 @@ class EmacsScrollBar : public BScrollBar if (value == Value () && Proportion () < 1.0f) { + overscroll_start_value = value; in_overscroll = true; last_overscroll = point; last_reported_overscroll_value = value; commit ae8c146332132013bd98d63da1a4f8bbff7624f6 Author: Po Lu Date: Sun Mar 13 06:50:12 2022 +0000 ; * haiku_support.cc (MessageReceived): Fix 32-bit build. diff --git a/src/haiku_support.cc b/src/haiku_support.cc index ecd93dd226..98cc8e9314 100644 --- a/src/haiku_support.cc +++ b/src/haiku_support.cc @@ -1596,7 +1596,9 @@ class EmacsScrollBar : public BScrollBar proportion = (float) portion / range; value = msg->GetInt32 ("emacs:units", 0); can_overscroll = msg->GetBool ("emacs:overscroll", false); - value = std::max (0, value); + + if (value < 0) + value = 0; if (dragging != 1) { commit 8c1a06815927cc4fc6114cddc4a6bf96f613ed5e Author: Po Lu Date: Sun Mar 13 06:41:58 2022 +0000 Allow dragging scroll bar for overscroll on Haiku * src/haiku_support.cc (class EmacsScrollBar): New fields `in_overscroll', `can_overscroll', `last_overscroll', `last_reported_overscroll_value' and `max_value'. (ValueChanged): Make very sure extraneous value are not generated. (MouseUp): Clear overscroll if enabled. (MouseMoved): If overscroll is enabled and dragging downwards fails to dislodge the maximum value, enable overscrolling. (BView_scroll_bar_update): New parameter `can_overscroll' * src/haiku_support.h: Update prototypes. * src/haikuterm.c (haiku_set_scroll_bar_thumb) (haiku_set_horizontal_scroll_bar_thumb): Adjust parameters to scroll bar update functions. (haiku_read_socket): Take ceiling of bar position if horizontal. diff --git a/src/haiku_support.cc b/src/haiku_support.cc index 6b33245f64..ecd93dd226 100644 --- a/src/haiku_support.cc +++ b/src/haiku_support.cc @@ -1565,6 +1565,11 @@ class EmacsScrollBar : public BScrollBar /* True if button events should be passed to the parent. */ bool handle_button = false; + bool in_overscroll = false; + bool can_overscroll = false; + BPoint last_overscroll; + int last_reported_overscroll_value; + int max_value; EmacsScrollBar (int x, int y, int x1, int y1, bool horizontal_p) : BScrollBar (BRect (x, y, x1, y1), NULL, NULL, 0, 0, horizontal_p ? @@ -1580,23 +1585,54 @@ class EmacsScrollBar : public BScrollBar void MessageReceived (BMessage *msg) { - int32 portion, range; + int32 portion, range, dragging, value; float proportion; if (msg->what == SCROLL_BAR_UPDATE) { - old_value = msg->GetInt32 ("emacs:units", 0); portion = msg->GetInt32 ("emacs:portion", 0); range = msg->GetInt32 ("emacs:range", 0); + dragging = msg->GetInt32 ("emacs:dragging", 0); proportion = (float) portion / range; + value = msg->GetInt32 ("emacs:units", 0); + can_overscroll = msg->GetBool ("emacs:overscroll", false); + value = std::max (0, value); - if (!msg->GetBool ("emacs:dragging", false)) + if (dragging != 1) { - /* Unlike on Motif, PORTION isn't included in the total - range of the scroll bar. */ - this->SetRange (0, range - portion); - this->SetValue (old_value); - this->SetProportion (proportion); + if (in_overscroll || dragging != -1) + { + /* Set the value to the smallest possible one. + Otherwise, the call to SetRange could lead to + spurious updates. */ + old_value = 0; + SetValue (0); + + /* Unlike on Motif, PORTION isn't included in the total + range of the scroll bar. */ + + SetRange (0, range - portion); + SetProportion (proportion); + max_value = range - portion; + + if (in_overscroll || value > max_value) + value = max_value; + + old_value = roundf (value); + SetValue (old_value); + } + else + { + value = Value (); + + old_value = 0; + SetValue (0); + SetRange (0, range - portion); + SetProportion (proportion); + old_value = value; + SetValue (value); + max_value = range - portion; + } } } @@ -1609,6 +1645,8 @@ class EmacsScrollBar : public BScrollBar struct haiku_scroll_bar_value_event rq; struct haiku_scroll_bar_part_event part; + new_value = Value (); + if (dragging) { if (new_value != old_value) @@ -1781,6 +1819,8 @@ class EmacsScrollBar : public BScrollBar struct haiku_scroll_bar_drag_event rq; BView *parent; + in_overscroll = false; + if (handle_button) { handle_button = false; @@ -1804,7 +1844,13 @@ class EmacsScrollBar : public BScrollBar MouseMoved (BPoint point, uint32 transit, const BMessage *msg) { struct haiku_menu_bar_left_event rq; + struct haiku_scroll_bar_value_event value_event; + int range, diff, value, trough_size; + BRect bounds; BPoint conv; + uint32 buttons; + + GetMouse (NULL, &buttons, false); if (transit == B_EXITED_VIEW) { @@ -1821,6 +1867,61 @@ class EmacsScrollBar : public BScrollBar } } + if (in_overscroll) + { + diff = point.y - last_overscroll.y; + + if (diff < 0) + { + in_overscroll = false; + goto allow; + } + + range = max_value; + bounds = Bounds (); + bounds.InsetBy (1.0, 1.0); + value = Value (); + trough_size = BE_RECT_HEIGHT (bounds); + trough_size -= BE_RECT_WIDTH (bounds) / 2; + if (info.double_arrows) + trough_size -= BE_RECT_WIDTH (bounds) / 2; + + value += ((double) range / trough_size) * diff * 2; + + if (value != last_reported_overscroll_value) + { + last_reported_overscroll_value = value; + last_overscroll = point; + + value_event.scroll_bar = this; + value_event.window = Window (); + value_event.position = value; + + haiku_write (SCROLL_BAR_VALUE_EVENT, &value_event); + return; + } + } + else if (can_overscroll && (buttons == B_PRIMARY_MOUSE_BUTTON)) + { + value = Value (); + + if (value >= max_value) + { + BScrollBar::MouseMoved (point, transit, msg); + + if (value == Value () && Proportion () < 1.0f) + { + in_overscroll = true; + last_overscroll = point; + last_reported_overscroll_value = value; + + MouseMoved (point, transit, msg); + return; + } + } + } + + allow: BScrollBar::MouseMoved (point, transit, msg); } }; @@ -2314,9 +2415,13 @@ BView_move_frame (void *view, int x, int y, int x1, int y1) vw->UnlockLooper (); } +/* DRAGGING can either be 0 (which means to update everything), 1 + (which means to update nothing), or -1 (which means to update only + the thumb size and range). */ + void BView_scroll_bar_update (void *sb, int portion, int whole, int position, - bool dragging) + int dragging, bool can_overscroll) { BScrollBar *bar = (BScrollBar *) sb; BMessage msg = BMessage (SCROLL_BAR_UPDATE); @@ -2324,7 +2429,8 @@ BView_scroll_bar_update (void *sb, int portion, int whole, int position, msg.AddInt32 ("emacs:range", whole); msg.AddInt32 ("emacs:units", position); msg.AddInt32 ("emacs:portion", portion); - msg.AddBool ("emacs:dragging", dragging); + msg.AddInt32 ("emacs:dragging", dragging); + msg.AddBool ("emacs:overscroll", can_overscroll); mr.SendMessage (&msg); } diff --git a/src/haiku_support.h b/src/haiku_support.h index e7c55d4d75..8b21fafad7 100644 --- a/src/haiku_support.h +++ b/src/haiku_support.h @@ -629,7 +629,7 @@ extern "C" extern void BView_scroll_bar_update (void *sb, int portion, int whole, int position, - bool dragging); + int dragging, bool can_overscroll); extern int BScrollBar_default_size (int horizontal_p); diff --git a/src/haikuterm.c b/src/haikuterm.c index cd0dcb0834..c98ab13e1a 100644 --- a/src/haikuterm.c +++ b/src/haikuterm.c @@ -485,7 +485,10 @@ haiku_set_scroll_bar_thumb (struct scroll_bar *bar, int portion, } BView_scroll_bar_update (scroll_bar, lrint (size), - BE_SB_MAX, ceil (value), bar->dragging); + BE_SB_MAX, ceil (value), + (scroll_bar_adjust_thumb_portion_p + ? bar->dragging : bar->dragging ? -1 : 0), + !scroll_bar_adjust_thumb_portion_p); } static void @@ -505,7 +508,7 @@ haiku_set_horizontal_scroll_bar_thumb (struct scroll_bar *bar, int portion, bar->page_size = size; BView_scroll_bar_update (scroll_bar, lrint (size), BE_SB_MAX, - ceil (value), bar->dragging); + ceil (value), bar->dragging, false); } static struct scroll_bar * @@ -3282,8 +3285,8 @@ haiku_read_socket (struct terminal *terminal, struct input_event *hold_quit) if (bar->horizontal) { - portion = bar->total * ((float) b->position - / BE_SB_MAX); + portion = bar->total * ceil ((double) b->position + / BE_SB_MAX); whole = (bar->total * ((float) (BE_SB_MAX - bar->page_size) / BE_SB_MAX)); commit 9f4be0e6a5fb84270d45847c7451e218e0f92035 Merge: e5d48a2263 5ba9c8c364 Author: Stefan Kangas Date: Sun Mar 13 06:30:42 2022 +0100 ; Merge from origin/emacs-28 The following commit was skipped: 5ba9c8c364 Emacs pretest 28.0.92 commit e5d48a226358a0b2e7898c1e0b80255c9b9d178b Merge: 20d9c4b59f e5b191465d Author: Stefan Kangas Date: Sun Mar 13 06:30:41 2022 +0100 Merge from origin/emacs-28 e5b191465d ; * admin/authors.el (authors-canonical-file-name): Remove... 6b0fdf73cf ; Fix data structures in authors.el commit 20d9c4b59fe8f9cc94230292ceab9d4d2b74c696 Author: Stefan Monnier Date: Sat Mar 12 23:51:22 2022 -0500 Flocate_file_internal: Protect from `.eln` remapping Don't use `openp`s functionality to remap `.elc` files to `.eln` files since `locate-file` is not specific to ELisp files. This should be not just simpler but more robust than the current hack which tries to undo the damage after the fact. * src/lread.c (Flocate_file_internal): Don't map `.elc` to `.eln`. * lisp/files.el (locate-file): Simplify accordingly. diff --git a/lisp/files.el b/lisp/files.el index 7be93662b1..eca8cba93f 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -987,20 +987,7 @@ one or more of those symbols." (logior (if (memq 'executable predicate) 1 0) (if (memq 'writable predicate) 2 0) (if (memq 'readable predicate) 4 0)))) - (let ((file (locate-file-internal filename path suffixes predicate))) - (if (and file (string-match "\\.eln\\'" file)) - ;; This is all a bit of a mess. We pass in a list of suffixes - ;; that doesn't include .eln, but with a nativecomp emacs, we - ;; get the .eln file back. We then map that to the .el file. - ;; But `load-history' has the .elc file, so that's the file we - ;; return here (if it exists). - (let* ((el (gethash (file-name-nondirectory file) comp-eln-to-el-h)) - (elc (replace-regexp-in-string "\\.el\\'" ".elc" el))) - (if (and (member ".elc" suffixes) - (file-exists-p elc)) - elc - el)) - file))) + (locate-file-internal filename path suffixes predicate)) (defun locate-file-completion-table (dirs suffixes string pred action) "Do completion for file names passed to `locate-file'." diff --git a/src/lread.c b/src/lread.c index 0486a98883..d7b56c5087 100644 --- a/src/lread.c +++ b/src/lread.c @@ -1661,7 +1661,7 @@ directories, make sure the PREDICATE function returns `dir-ok' for them. */) (Lisp_Object filename, Lisp_Object path, Lisp_Object suffixes, Lisp_Object predicate) { Lisp_Object file; - int fd = openp (path, filename, suffixes, &file, predicate, false, false); + int fd = openp (path, filename, suffixes, &file, predicate, false, true); if (NILP (predicate) && fd >= 0) emacs_close (fd); return file; commit e7ab69e762c10073e6c52b69ff5e83ad2c638803 Author: Po Lu Date: Sun Mar 13 09:28:58 2022 +0800 Improve reliaibility of scroll bar dimensions adjustment on GTK 3 * src/gtkutil.c (xg_scroll_bar_size_allocate_cb): New function. (xg_finish_scroll_bar_creation): Attach new signal. (xg_update_scrollbar_pos) (xg_update_horizontal_scrollbar_pos): Also set window dimensions for the event box. * src/xterm.c (x_scroll_bar_configure): New function. * src/xterm.h: Update prototypes. diff --git a/src/gtkutil.c b/src/gtkutil.c index 7287f6761d..174a1bffea 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -4476,6 +4476,32 @@ xg_gtk_scroll_destroy (GtkWidget *widget, gpointer data) } #endif +#if defined HAVE_GTK3 && !defined HAVE_PGTK +static void +xg_scroll_bar_size_allocate_cb (GtkWidget *widget, + GdkRectangle *allocation, + gpointer user_data) +{ + GdkEvent *event = gtk_get_current_event (); + GdkEvent dummy; + + if (event && event->any.type == GDK_CONFIGURE) + x_scroll_bar_configure (event); + else + { + /* These are the only fields used by x_scroll_bar_configure. */ + dummy.configure.send_event = FALSE; + dummy.configure.x = allocation->x; + dummy.configure.y = allocation->y; + dummy.configure.width = allocation->width; + dummy.configure.height = allocation->height; + dummy.configure.window = gtk_widget_get_window (widget); + + x_scroll_bar_configure (&dummy); + } +} +#endif + static void xg_finish_scroll_bar_creation (struct frame *f, GtkWidget *wscroll, @@ -4494,7 +4520,13 @@ xg_finish_scroll_bar_creation (struct frame *f, #ifndef HAVE_GTK3 gtk_range_set_update_policy (GTK_RANGE (wscroll), GTK_UPDATE_CONTINUOUS); #endif - g_object_set_data (G_OBJECT (wscroll), XG_FRAME_DATA, (gpointer)f); + g_object_set_data (G_OBJECT (wscroll), XG_FRAME_DATA, (gpointer) f); + +#if defined HAVE_GTK3 && !defined HAVE_PGTK + g_signal_connect (G_OBJECT (webox), "size-allocate", + G_CALLBACK (xg_scroll_bar_size_allocate_cb), + NULL); +#endif #if defined HAVE_PGTK || !defined HAVE_GTK3 ptrdiff_t scroll_id = xg_store_widget_in_map (wscroll); @@ -4534,6 +4566,7 @@ xg_finish_scroll_bar_creation (struct frame *f, gtk_widget_show_all (webox); #elif defined HAVE_GTK3 bar->x_window = GTK_WIDGET_TO_X_WIN (webox); + gtk_widget_show_all (webox); #else GTK_WIDGET_TO_X_WIN (webox); #endif @@ -4553,6 +4586,7 @@ xg_finish_scroll_bar_creation (struct frame *f, #ifndef HAVE_PGTK gtk_widget_add_events (webox, GDK_STRUCTURE_MASK); + gtk_widget_set_double_buffered (wscroll, FALSE); #endif #endif @@ -4662,6 +4696,9 @@ xg_update_scrollbar_pos (struct frame *f, { GtkWidget *wfixed = f->output_data.xp->edit_widget; GtkWidget *wparent = gtk_widget_get_parent (wscroll); +#if !defined HAVE_PGTK && defined HAVE_GTK3 + GdkWindow *wdesc = gtk_widget_get_window (wparent); +#endif gint msl; int scale = xg_get_scale (f); @@ -4694,6 +4731,14 @@ xg_update_scrollbar_pos (struct frame *f, { gtk_widget_show_all (wparent); gtk_widget_set_size_request (wscroll, width, height); + +#if !defined HAVE_PGTK && defined HAVE_GTK3 + if (wdesc) + { + gdk_window_move_resize (wdesc, left, top, width, height); + gtk_widget_queue_allocate (wparent); + } +#endif } if (oldx != -1 && oldw > 0 && oldh > 0) @@ -4757,6 +4802,9 @@ xg_update_horizontal_scrollbar_pos (struct frame *f, { GtkWidget *wfixed = f->output_data.xp->edit_widget; GtkWidget *wparent = gtk_widget_get_parent (wscroll); +#if !defined HAVE_PGTK && defined HAVE_GTK3 + GdkWindow *wdesc = gtk_widget_get_window (wparent); +#endif gint msl; int scale = xg_get_scale (f); @@ -4788,6 +4836,14 @@ xg_update_horizontal_scrollbar_pos (struct frame *f, { gtk_widget_show_all (wparent); gtk_widget_set_size_request (wscroll, width, height); + +#if !defined HAVE_PGTK && defined HAVE_GTK3 + if (wdesc) + { + gdk_window_move_resize (wdesc, left, top, width, height); + gtk_widget_queue_allocate (wparent); + } +#endif } if (oldx != -1 && oldw > 0 && oldh > 0) /* Clear under old scroll bar position. */ diff --git a/src/xterm.c b/src/xterm.c index 46f9364abe..18a8d5b431 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -9952,6 +9952,34 @@ flush_dirty_back_buffer_on (struct frame *f) unblock_input (); } +#ifdef HAVE_GTK3 +void +x_scroll_bar_configure (GdkEvent *event) +{ + XEvent configure; + GdkDisplay *gdpy; + Display *dpy; + + configure.xconfigure.type = ConfigureNotify; + configure.xconfigure.serial = 0; + configure.xconfigure.send_event = event->configure.send_event; + configure.xconfigure.x = event->configure.x; + configure.xconfigure.y = event->configure.y; + configure.xconfigure.width = event->configure.width; + configure.xconfigure.height = event->configure.height; + configure.xconfigure.border_width = 0; + configure.xconfigure.event = GDK_WINDOW_XID (event->configure.window); + configure.xconfigure.window = GDK_WINDOW_XID (event->configure.window); + configure.xconfigure.above = None; + configure.xconfigure.override_redirect = False; + + gdpy = gdk_window_get_display (event->configure.window); + dpy = gdk_x11_display_get_xdisplay (gdpy); + + x_dispatch_event (&configure, dpy); +} +#endif + /** mouse_or_wdesc_frame: When not dropping and the mouse was grabbed for DPYINFO, return the frame where the mouse was seen last. If @@ -11319,8 +11347,11 @@ handle_one_xevent (struct x_display_info *dpyinfo, if (configureEvent.xconfigure.width != max (bar->width, 1) || configureEvent.xconfigure.height != max (bar->height, 1)) - XResizeWindow (dpyinfo->display, bar->x_window, - max (bar->width, 1), max (bar->height, 1)); + { + XResizeWindow (dpyinfo->display, bar->x_window, + max (bar->width, 1), max (bar->height, 1)); + x_flush (WINDOW_XFRAME (XWINDOW (bar->window))); + } if (f && FRAME_X_DOUBLE_BUFFERED_P (f)) x_drop_xrender_surfaces (f); diff --git a/src/xterm.h b/src/xterm.h index 5b199cab6b..3638f322e5 100644 --- a/src/xterm.h +++ b/src/xterm.h @@ -1353,6 +1353,10 @@ extern void x_xr_apply_ext_clip (struct frame *f, GC gc); extern void x_xr_reset_ext_clip (struct frame *f); #endif +#ifdef HAVE_GTK3 +extern void x_scroll_bar_configure (GdkEvent *); +#endif + extern void x_display_set_last_user_time (struct x_display_info *, Time); INLINE int commit 49683652f8b7f3680b3bc76cfee39be0b8efd524 Author: Lars Ingebrigtsen Date: Sat Mar 12 22:54:28 2022 +0100 Further locate-file fixes on nativecomp * lisp/files.el (locate-file): Fix up previous locate-file change -- don't unconditionally return .elc on nativecomp. diff --git a/lisp/files.el b/lisp/files.el index 327375ddaa..7be93662b1 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -996,7 +996,8 @@ one or more of those symbols." ;; return here (if it exists). (let* ((el (gethash (file-name-nondirectory file) comp-eln-to-el-h)) (elc (replace-regexp-in-string "\\.el\\'" ".elc" el))) - (if (file-exists-p elc) + (if (and (member ".elc" suffixes) + (file-exists-p elc)) elc el)) file))) commit 07868952d1c42cf9e304f2e55676d8b29f5cd398 Author: Lars Ingebrigtsen Date: Sat Mar 12 22:45:28 2022 +0100 Disable esh-proc-test/kill-pipeline on EMBA Test esh-proc-test/kill-pipeline condition: (ert-test-failed ((should (string-match-p (rx ...) (buffer-substring-no-properties output-start ...))) :form (string-match-p "\\(?:\\(?:interrupt\\|killed\\)\n\\)" "") diff --git a/test/lisp/eshell/esh-proc-tests.el b/test/lisp/eshell/esh-proc-tests.el index 7dc9d29cfe..d2184688f3 100644 --- a/test/lisp/eshell/esh-proc-tests.el +++ b/test/lisp/eshell/esh-proc-tests.el @@ -50,6 +50,9 @@ prompt. See bug#54136." (skip-unless (and (executable-find "sh") (executable-find "echo") (executable-find "sleep"))) + ;; This test doesn't work on EMBA with AOT nativecomp, but works + ;; fine elsewhere. + (skip-unless (not (getenv "EMACS_EMBA_CI"))) (with-temp-eshell (eshell-insert-command (concat "sh -c 'while true; do echo y; sleep 1; done' | " commit ed42d7ffb07da6d4cbfee5357384371cf0f2f00f Author: Lars Ingebrigtsen Date: Sat Mar 12 22:40:49 2022 +0100 Fix EMBA failure for ert-test-record-backtrace * test/lisp/emacs-lisp/ert-tests.el (ert-test-record-backtrace): Make this work with AOT. diff --git a/test/lisp/emacs-lisp/ert-tests.el b/test/lisp/emacs-lisp/ert-tests.el index 7573d2ed05..84c28e1131 100644 --- a/test/lisp/emacs-lisp/ert-tests.el +++ b/test/lisp/emacs-lisp/ert-tests.el @@ -377,8 +377,11 @@ This macro is used to test if macroexpansion in `should' works." (test (make-ert-test :body test-body)) (result (ert-run-test test))) (should (ert-test-failed-p result)) - (should (eq (backtrace-frame-fun (car (ert-test-failed-backtrace result))) - 'signal)))) + (should (memq (backtrace-frame-fun (car (ert-test-failed-backtrace result))) + ;;; This is `ert-fail' on nativecomp and `signal' + ;;; otherwise. It's not clear whether that's a bug + ;;; or not (bug#51308). + '(ert-fail signal))))) (ert-deftest ert-test-messages () :tags '(:causes-redisplay) commit f8bb6cca331cc487c4b3c16f33fe05a28fbacf01 Author: Lars Ingebrigtsen Date: Sat Mar 12 22:32:08 2022 +0100 Return the same file from locate-file in nativecomp and non * lisp/files.el (locate-file): Return the .elc file (if it exists) in nativecomp, too, to mimic the behaviour from non-nativecomp builds (bug#51308). diff --git a/lisp/files.el b/lisp/files.el index a0501cffa1..327375ddaa 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -989,7 +989,16 @@ one or more of those symbols." (if (memq 'readable predicate) 4 0)))) (let ((file (locate-file-internal filename path suffixes predicate))) (if (and file (string-match "\\.eln\\'" file)) - (gethash (file-name-nondirectory file) comp-eln-to-el-h) + ;; This is all a bit of a mess. We pass in a list of suffixes + ;; that doesn't include .eln, but with a nativecomp emacs, we + ;; get the .eln file back. We then map that to the .el file. + ;; But `load-history' has the .elc file, so that's the file we + ;; return here (if it exists). + (let* ((el (gethash (file-name-nondirectory file) comp-eln-to-el-h)) + (elc (replace-regexp-in-string "\\.el\\'" ".elc" el))) + (if (file-exists-p elc) + elc + el)) file))) (defun locate-file-completion-table (dirs suffixes string pred action) commit 84f59f75853704520323fb37edee4fe03d2f3021 Author: Lars Ingebrigtsen Date: Sat Mar 12 18:53:36 2022 +0100 Make find-function-regexp also find cl-defun/defmethod * lisp/emacs-lisp/find-func.el (find-function-regexp): Also find cl-defun and cl-defmethod (bug#54343). diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el index 571087c963..777334a7a7 100644 --- a/lisp/emacs-lisp/find-func.el +++ b/lisp/emacs-lisp/find-func.el @@ -61,6 +61,7 @@ "^\\s-*(\\(def\\(ine-skeleton\\|ine-generic-mode\\|ine-derived-mode\\|\ ine\\(?:-global\\)?-minor-mode\\|ine-compilation-mode\\|un-cvs-mode\\|\ foo\\|\\(?:[^icfgv]\\|g[^r]\\)\\(\\w\\|\\s_\\)+\\*?\\)\\|easy-mmode-define-[a-z-]+\\|easy-menu-define\\|\ +cl-\\(?:defun\\|defmethod\\)\\|\ menu-bar-make-toggle\\|menu-bar-make-toggle-command\\)" find-function-space-re "\\('\\|(quote \\)?%s\\(\\s-\\|$\\|[()]\\)") commit 139042eb8629e6fd49b2c3002a8fc4d1aabd174d Author: Colin Woodbury Date: Sat Mar 12 18:46:55 2022 +0100 * lisp/progmodes/python.el: Account for new keywords. * lisp/progmodes/python.el (python-font-lock-keywords-level-2): As of Python 3.10, Python has structured pattern matching. This adds two new keywords which need to be highlighted (bug#54345). diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index d83290fe45..c4d8b123a8 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -563,6 +563,8 @@ class declarations.") ;; Python 3.5+ PEP492 (and "async" (+ space) (or "def" "for" "with")) "await" + ;; Python 3.10+ + "match" "case" ;; Extra: "self") symbol-end) commit f143fcc0ed15fdaae65e14fd9280b2f5faac2c0a Author: Alexander Adolf Date: Sat Mar 12 18:15:24 2022 +0100 Facilitate Customisation of Message-Mode Header Completion Behaviour * lisp/gnus/message.el (message-email-recipient-header-regexp): New user option. (message-completion-alist): Use it here. diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index a5b3d40467..2e9242d3e1 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el @@ -8265,17 +8265,23 @@ When FORCE, rebuild the tool bar." 'message-mode-map)))) message-tool-bar-map) -;;; Group name completion. +;;; Group name and email address completion. (defcustom message-newgroups-header-regexp "^\\(Newsgroups\\|Followup-To\\|Posted-To\\|Gcc\\):" - "Regexp that match headers that lists groups." + "Regexp matching headers that list groups." :group 'message :type 'regexp) +(defcustom message-email-recipient-header-regexp + "^\\([^ :]*-\\)?\\(To\\|B?Cc\\|From\\|Reply-to\\|Mail-Followup-To\\|Mail-Copies-To\\):" + "Regexp matching headers that list email addresses." + :version "29.1" + :type 'regexp) + (defcustom message-completion-alist `((,message-newgroups-header-regexp . ,#'message-expand-group) - ("^\\([^ :]*-\\)?\\(To\\|B?Cc\\|From\\):" . ,#'message-expand-name)) + (,message-email-recipient-header-regexp . ,#'message-expand-name)) "Alist of (RE . FUN). Use FUN for completion on header lines matching RE. FUN should be a function that obeys the same rules as those of `completion-at-point-functions'." commit bea1a96335d13502b6ef895accc116690517a394 Author: Mattias Engdegård Date: Sat Mar 12 17:53:29 2022 +0100 ; * src/eval.c: (grow_specpdl): Remove another redundant declaration diff --git a/src/eval.c b/src/eval.c index a9d56ca23b..b747d2cbb6 100644 --- a/src/eval.c +++ b/src/eval.c @@ -267,8 +267,6 @@ restore_stack_limits (Lisp_Object data) integer_to_intmax (XCDR (data), &max_lisp_eval_depth); } -static void grow_specpdl (void); - /* Call the Lisp debugger, giving it argument ARG. */ Lisp_Object commit 67be8a45a62aad3c55adeaf59aec81a537343a91 Author: Lars Ingebrigtsen Date: Sat Mar 12 17:49:42 2022 +0100 Mark tramp-test30-make-process unstable on EMBA * test/lisp/net/tramp-tests.el (tramp-test30-make-process): This times out on EMBA. diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el index ef82d3ac61..afe7a74063 100644 --- a/test/lisp/net/tramp-tests.el +++ b/test/lisp/net/tramp-tests.el @@ -4713,7 +4713,9 @@ If UNSTABLE is non-nil, the test is tagged as `:unstable'." (ert-deftest tramp-test30-make-process () "Check `make-process'." - :tags '(:expensive-test :tramp-asynchronous-processes) + :tags (append '(:expensive-test :tramp-asynchronous-processes) + (and (getenv "EMACS_EMBA_CI") + '(:unstable))) (skip-unless (tramp--test-enabled)) (skip-unless (tramp--test-supports-processes-p)) ;; `make-process' supports file name handlers since Emacs 27. commit b176b9d4d17d797739e25a0f5d79001504403cc8 Author: Mattias Engdegård Date: Sat Mar 12 17:46:38 2022 +0100 ; * src/lisp.h: Remove redundant declaration diff --git a/src/lisp.h b/src/lisp.h index 3c73570bab..0b649a92f5 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -4504,7 +4504,6 @@ extern Lisp_Object safe_call2 (Lisp_Object, Lisp_Object, Lisp_Object); extern void init_eval (void); extern void syms_of_eval (void); extern void prog_ignore (Lisp_Object); -extern specpdl_ref record_in_backtrace (Lisp_Object, Lisp_Object *, ptrdiff_t); extern void mark_specpdl (union specbinding *first, union specbinding *ptr); extern void get_backtrace (Lisp_Object array); Lisp_Object backtrace_top_function (void); commit 2c54e9a1dd6b4ea561be10567a7363012e70fa28 Author: Mattias Engdegård Date: Thu Mar 3 19:50:46 2022 +0100 Remove never-used relative jump opcodes * src/bytecode.c (BYTE_CODES, exec_byte_code): Remove relative jump opcodes that seem to have been a short-lived experiment, never used in a release. diff --git a/src/bytecode.c b/src/bytecode.c index 8d3817e64c..286a8d675d 100644 --- a/src/bytecode.c +++ b/src/bytecode.c @@ -255,11 +255,7 @@ DEFINE (Brem, 0246) \ DEFINE (Bnumberp, 0247) \ DEFINE (Bintegerp, 0250) \ \ -DEFINE (BRgoto, 0252) \ -DEFINE (BRgotoifnil, 0253) \ -DEFINE (BRgotoifnonnil, 0254) \ -DEFINE (BRgotoifnilelsepop, 0255) \ -DEFINE (BRgotoifnonnilelsepop, 0256) \ +/* 0252-0256 were relative jumps, apparently never used. */ \ \ DEFINE (BlistN, 0257) \ DEFINE (BconcatN, 0260) \ @@ -702,7 +698,6 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, op = FETCH2; op_branch: op -= pc - bytestr_data; - op_relative_branch: if (BYTE_CODE_SAFE && ! (bytestr_data - pc <= op && op < bytestr_data + bytestr_length - pc)) @@ -737,36 +732,6 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, DISCARD (1); NEXT; - CASE (BRgoto): - op = FETCH - 128; - goto op_relative_branch; - - CASE (BRgotoifnil): - op = FETCH - 128; - if (NILP (POP)) - goto op_relative_branch; - NEXT; - - CASE (BRgotoifnonnil): - op = FETCH - 128; - if (!NILP (POP)) - goto op_relative_branch; - NEXT; - - CASE (BRgotoifnilelsepop): - op = FETCH - 128; - if (NILP (TOP)) - goto op_relative_branch; - DISCARD (1); - NEXT; - - CASE (BRgotoifnonnilelsepop): - op = FETCH - 128; - if (!NILP (TOP)) - goto op_relative_branch; - DISCARD (1); - NEXT; - CASE (Breturn): goto exit; commit 88889212c7d74fb189131dcae4abaabd05eb1870 Author: Mattias Engdegård Date: Thu Mar 3 19:46:13 2022 +0100 Remove debug code for opcodes long gone * src/bytecode.c (BYTE_CODES, enum byte_code_op, exec_byte_code): Don't display custom messages in debug mode for Bscan_buffer and Bset_mark which were removed long ago. diff --git a/src/bytecode.c b/src/bytecode.c index c5cc659012..8d3817e64c 100644 --- a/src/bytecode.c +++ b/src/bytecode.c @@ -186,6 +186,7 @@ DEFINE (Bfollowing_char, 0147) \ DEFINE (Bpreceding_char, 0150) \ DEFINE (Bcurrent_column, 0151) \ DEFINE (Bindent_to, 0152) \ +/* 0153 was Bscan_buffer in v17. */ \ DEFINE (Beolp, 0154) \ DEFINE (Beobp, 0155) \ DEFINE (Bbolp, 0156) \ @@ -193,6 +194,7 @@ DEFINE (Bbobp, 0157) \ DEFINE (Bcurrent_buffer, 0160) \ DEFINE (Bset_buffer, 0161) \ DEFINE (Bsave_current_buffer_1, 0162) /* Replacing Bsave_current_buffer. */ \ +/* 0163 was Bset_mark in v17. */ \ DEFINE (Binteractive_p, 0164) /* Obsolete since Emacs-24.1. */ \ \ DEFINE (Bforward_char, 0165) \ @@ -277,11 +279,6 @@ enum byte_code_op #define DEFINE(name, value) name = value, BYTE_CODES #undef DEFINE - -#if BYTE_CODE_SAFE - Bscan_buffer = 0153, /* No longer generated as of v18. */ - Bset_mark = 0163, /* this loser is no longer generated as of v18 */ -#endif }; /* Fetch the next byte from the bytecode stream. */ @@ -1467,19 +1464,6 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, TOP = INTEGERP (TOP) ? Qt : Qnil; NEXT; -#if BYTE_CODE_SAFE - /* These are intentionally written using 'case' syntax, - because they are incompatible with the threaded - interpreter. */ - - case Bset_mark: - error ("set-mark is an obsolete bytecode"); - break; - case Bscan_buffer: - error ("scan-buffer is an obsolete bytecode"); - break; -#endif - CASE_ABORT: /* Actually this is Bstack_ref with offset 0, but we use Bdup for that instead. */ commit 2fb98486e18f8a3275adc56d2740901ef5cb6e8b Author: Mattias Engdegård Date: Thu Mar 3 13:57:26 2022 +0100 Faster bytecode immediate argument fetching * src/bytecode.c (FETCH2): Use `|` instead of `+` to combine the bytes forming a 16-bit immediate argument so that GCC (prior to version 12) recognises the idiom and generates a 16-bit load. This applies for little-endian machines with cheap unaligned accesses such as x86[-64], arm64 and power64le. This 1-character change results in a measurable speed gain on many kinds of Lisp code, as 16-bit immediates are used by all jump instructions. Clang performs this optimisation for both `+` and `|` from version 10. diff --git a/src/bytecode.c b/src/bytecode.c index 96f1f90581..c5cc659012 100644 --- a/src/bytecode.c +++ b/src/bytecode.c @@ -291,7 +291,7 @@ enum byte_code_op /* Fetch two bytes from the bytecode stream and make a 16-bit number out of them. */ -#define FETCH2 (op = FETCH, op + (FETCH << 8)) +#define FETCH2 (op = FETCH, op | (FETCH << 8)) /* Push X onto the execution stack. The expression X should not contain TOP, to avoid competing side effects. */ commit fe65db05f42bcbf755f037575b3c29b74f279bdf Author: Mattias Engdegård Date: Sat Feb 26 12:49:02 2022 +0100 Maintain end of specpdl instead of size Keep track of the end of specpdl explicitly since that is what we are comparing against on critical code paths. * src/eval.c (init_eval_once_for_pdumper, signal_or_quit) (grow_specpdl_allocation): * src/fileio.c (Fdo_auto_save): * src/lisp.h (grow_specpdl): * src/thread.c (run_thread, Fmake_thread): * src/thread.h (struct thread_state): Replace specpdl_size with specpdl_end, according to the equation specpdl_end = specpdl + specpdl_size. diff --git a/src/eval.c b/src/eval.c index 0fc492fbe0..a9d56ca23b 100644 --- a/src/eval.c +++ b/src/eval.c @@ -223,8 +223,8 @@ init_eval_once_for_pdumper (void) { enum { size = 50 }; union specbinding *pdlvec = malloc ((size + 1) * sizeof *specpdl); - specpdl_size = size; specpdl = specpdl_ptr = pdlvec + 1; + specpdl_end = specpdl + size; } void @@ -1773,7 +1773,7 @@ signal_or_quit (Lisp_Object error_symbol, Lisp_Object data, bool keyboard_quit) && ! NILP (error_symbol) /* Don't try to call a lisp function if we've already overflowed the specpdl stack. */ - && specpdl_ptr < specpdl + specpdl_size) + && specpdl_ptr < specpdl_end) { /* Edebug takes care of restoring these variables when it exits. */ max_ensure_room (&max_lisp_eval_depth, lisp_eval_depth, 20); @@ -2323,22 +2323,23 @@ alist mapping symbols to their value. */) void grow_specpdl_allocation (void) { - eassert (specpdl_ptr == specpdl + specpdl_size); + eassert (specpdl_ptr == specpdl_end); specpdl_ref count = SPECPDL_INDEX (); ptrdiff_t max_size = min (max_specpdl_size, PTRDIFF_MAX - 1000); union specbinding *pdlvec = specpdl - 1; - ptrdiff_t pdlvecsize = specpdl_size + 1; - if (max_size <= specpdl_size) + ptrdiff_t size = specpdl_end - specpdl; + ptrdiff_t pdlvecsize = size + 1; + if (max_size <= size) { if (max_specpdl_size < 400) max_size = max_specpdl_size = 400; - if (max_size <= specpdl_size) + if (max_size <= size) xsignal0 (Qexcessive_variable_binding); } pdlvec = xpalloc (pdlvec, &pdlvecsize, 1, max_size + 1, sizeof *specpdl); specpdl = pdlvec + 1; - specpdl_size = pdlvecsize - 1; + specpdl_end = specpdl + pdlvecsize - 1; specpdl_ptr = specpdl_ref_to_ptr (count); } diff --git a/src/fileio.c b/src/fileio.c index 243a87a482..a0282204de 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -5973,7 +5973,8 @@ A non-nil CURRENT-ONLY argument means save only current buffer. */) bool old_message_p = 0; struct auto_save_unwind auto_save_unwind; - intmax_t sum = INT_ADD_WRAPV (specpdl_size, 40, &sum) ? INTMAX_MAX : sum; + intmax_t sum = INT_ADD_WRAPV (specpdl_end - specpdl, 40, &sum) + ? INTMAX_MAX : sum; if (max_specpdl_size < sum) max_specpdl_size = sum; diff --git a/src/lisp.h b/src/lisp.h index b99441fa6c..3c73570bab 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -3469,7 +3469,7 @@ INLINE void grow_specpdl (void) { specpdl_ptr++; - if (specpdl_ptr == specpdl + specpdl_size) + if (specpdl_ptr == specpdl_end) grow_specpdl_allocation (); } diff --git a/src/thread.c b/src/thread.c index 4c98d590b7..b5b7d7c0d7 100644 --- a/src/thread.c +++ b/src/thread.c @@ -790,7 +790,7 @@ run_thread (void *state) xfree (self->m_specpdl - 1); self->m_specpdl = NULL; self->m_specpdl_ptr = NULL; - self->m_specpdl_size = 0; + self->m_specpdl_end = NULL; { struct handler *c, *c_next; @@ -862,11 +862,10 @@ If NAME is given, it must be a string; it names the new thread. */) /* Perhaps copy m_last_thing_searched from parent? */ new_thread->m_current_buffer = current_thread->m_current_buffer; - new_thread->m_specpdl_size = 50; - new_thread->m_specpdl = xmalloc ((1 + new_thread->m_specpdl_size) - * sizeof (union specbinding)); - /* Skip the dummy entry. */ - ++new_thread->m_specpdl; + ptrdiff_t size = 50; + union specbinding *pdlvec = xmalloc ((1 + size) * sizeof (union specbinding)); + new_thread->m_specpdl = pdlvec + 1; /* Skip the dummy entry. */ + new_thread->m_specpdl_end = new_thread->m_specpdl + size; new_thread->m_specpdl_ptr = new_thread->m_specpdl; sys_cond_init (&new_thread->thread_condvar); diff --git a/src/thread.h b/src/thread.h index 1e7eb86f6e..f2755045b2 100644 --- a/src/thread.h +++ b/src/thread.h @@ -92,14 +92,14 @@ struct thread_state struct handler *m_handlerlist_sentinel; #define handlerlist_sentinel (current_thread->m_handlerlist_sentinel) - /* Current number of specbindings allocated in specpdl. */ - ptrdiff_t m_specpdl_size; -#define specpdl_size (current_thread->m_specpdl_size) - /* Pointer to beginning of specpdl. */ union specbinding *m_specpdl; #define specpdl (current_thread->m_specpdl) + /* End of specpld (just beyond the last element). */ + union specbinding *m_specpdl_end; +#define specpdl_end (current_thread->m_specpdl_end) + /* Pointer to first unused element in specpdl. */ union specbinding *m_specpdl_ptr; #define specpdl_ptr (current_thread->m_specpdl_ptr) commit 213483124b4381663efd0dd001037363223ce188 Author: Mattias Engdegård Date: Wed Feb 16 16:52:07 2022 +0100 Inline record_in_backtrace It's critical in several function call paths. * src/eval.c (grow_specpdl_allocation): Make non-static. (grow_specpdl, record_in_backtrace): Move from here... * src/lisp.h (grow_specpdl, record_in_backtrace): ... to here, and declare inline. diff --git a/src/eval.c b/src/eval.c index 294d79e67a..0fc492fbe0 100644 --- a/src/eval.c +++ b/src/eval.c @@ -2320,7 +2320,7 @@ alist mapping symbols to their value. */) return unbind_to (count, eval_sub (form)); } -static void +void grow_specpdl_allocation (void) { eassert (specpdl_ptr == specpdl + specpdl_size); @@ -2342,40 +2342,6 @@ grow_specpdl_allocation (void) specpdl_ptr = specpdl_ref_to_ptr (count); } -/* Grow the specpdl stack by one entry. - The caller should have already initialized the entry. - Signal an error on stack overflow. - - Make sure that there is always one unused entry past the top of the - stack, so that the just-initialized entry is safely unwound if - memory exhausted and an error is signaled here. Also, allocate a - never-used entry just before the bottom of the stack; sometimes its - address is taken. */ - -INLINE void -grow_specpdl (void) -{ - specpdl_ptr++; - if (specpdl_ptr == specpdl + specpdl_size) - grow_specpdl_allocation (); -} - -specpdl_ref -record_in_backtrace (Lisp_Object function, Lisp_Object *args, ptrdiff_t nargs) -{ - specpdl_ref count = SPECPDL_INDEX (); - - eassert (nargs >= UNEVALLED); - specpdl_ptr->bt.kind = SPECPDL_BACKTRACE; - specpdl_ptr->bt.debug_on_exit = false; - specpdl_ptr->bt.function = function; - current_thread->stack_top = specpdl_ptr->bt.args = args; - specpdl_ptr->bt.nargs = nargs; - grow_specpdl (); - - return count; -} - /* Eval a sub-expression of the current expression (i.e. in the same lexical scope). */ Lisp_Object diff --git a/src/lisp.h b/src/lisp.h index 778bd1bfa5..b99441fa6c 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -3454,6 +3454,41 @@ backtrace_debug_on_exit (union specbinding *pdl) return pdl->bt.debug_on_exit; } +void grow_specpdl_allocation (void); + +/* Grow the specpdl stack by one entry. + The caller should have already initialized the entry. + Signal an error on stack overflow. + + Make sure that there is always one unused entry past the top of the + stack, so that the just-initialized entry is safely unwound if + memory exhausted and an error is signaled here. Also, allocate a + never-used entry just before the bottom of the stack; sometimes its + address is taken. */ +INLINE void +grow_specpdl (void) +{ + specpdl_ptr++; + if (specpdl_ptr == specpdl + specpdl_size) + grow_specpdl_allocation (); +} + +INLINE specpdl_ref +record_in_backtrace (Lisp_Object function, Lisp_Object *args, ptrdiff_t nargs) +{ + specpdl_ref count = SPECPDL_INDEX (); + + eassert (nargs >= UNEVALLED); + specpdl_ptr->bt.kind = SPECPDL_BACKTRACE; + specpdl_ptr->bt.debug_on_exit = false; + specpdl_ptr->bt.function = function; + current_thread->stack_top = specpdl_ptr->bt.args = args; + specpdl_ptr->bt.nargs = nargs; + grow_specpdl (); + + return count; +} + /* This structure helps implement the `catch/throw' and `condition-case/signal' control structures. A struct handler contains all the information needed to restore the state of the interpreter after a non-local jump. commit 6ef9dc7797729a547dace431f57a73fe278172cc Author: Po Lu Date: Sat Mar 12 20:58:18 2022 +0800 Fix the PGTK build * src/gtkutil.c (xg_finish_scroll_bar_creation): Fix ifdefs preventing x_window from being correctly set. (xg_get_scroll_id_for_window): Ifdef out unused function. diff --git a/src/gtkutil.c b/src/gtkutil.c index c9a3999afe..7287f6761d 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -4440,7 +4440,7 @@ xg_get_default_scrollbar_height (struct frame *f) return scroll_bar_width_for_theme * xg_get_scale (f); } -#if defined HAVE_PGTK || !defined HAVE_GTK3 +#ifndef HAVE_GTK3 /* Return the scrollbar id for X Window WID on display DPY. Return -1 if WID not in id_to_widget. */ @@ -4556,7 +4556,7 @@ xg_finish_scroll_bar_creation (struct frame *f, #endif #endif -#if !defined HAVE_GTK3 || !defined HAVE_GTK3 +#if defined HAVE_PGTK || !defined HAVE_GTK3 bar->x_window = scroll_id; #endif } commit 82a454915ca2f162794812c5d9d668ec15b50372 Author: Po Lu Date: Sat Mar 12 20:33:18 2022 +0800 Try really hard to make GTK 3 scroll bars fit * src/gtkutil.c (xg_get_widget_from_map): New argument DISPLAY. All callers changed. (find_scrollbar_cb): New function. (xg_finish_scroll_bar_creation, xg_remove_scroll_bar) (xg_update_scrollbar_pos, xg_update_horizontal_scrollbar_pos) (xg_set_toolkit_scroll_bar_thumb) (xg_set_toolkit_horizontal_scroll_bar_thumb, xg_initialize): Stop using id_to_widget_map on X builds with GTK 3 and set the event box as the x_window instead. * src/xterm.c (x_window_to_scroll_bar): Don't look for ID on GTK 3. (handle_one_xevent): If a ConfigureNotify event is found for a scroll bar and the dimensions are wrong, resize the X window to the right ones. diff --git a/src/gtkutil.c b/src/gtkutil.c index fd32dc15bf..c9a3999afe 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -142,7 +142,7 @@ struct xg_frame_tb_info bool xg_gtk_initialized; /* Used to make sure xwidget calls are possible */ #endif -static GtkWidget * xg_get_widget_from_map (ptrdiff_t idx); +static GtkWidget *xg_get_widget_from_map (ptrdiff_t idx, Display *dpy); @@ -2038,8 +2038,8 @@ xg_set_background_color (struct frame *f, unsigned long bg) !NILP (bar); bar = XSCROLL_BAR (bar)->next) { - GtkWidget *scrollbar = - xg_get_widget_from_map (XSCROLL_BAR (bar)->x_window); + GtkWidget *scrollbar = xg_get_widget_from_map (XSCROLL_BAR (bar)->x_window, + FRAME_X_DISPLAY (f)); GtkWidget *webox = gtk_widget_get_parent (scrollbar); xg_set_widget_bg (f, webox, FRAME_BACKGROUND_PIXEL (f)); } @@ -4264,6 +4264,8 @@ bool xg_ignore_gtk_scrollbar; static int scroll_bar_width_for_theme; static int scroll_bar_height_for_theme; +#if defined HAVE_PGTK || !defined HAVE_GTK3 + /* Xlib's `Window' fits in 32 bits. But we want to store pointers, and they may be larger than 32 bits. Keep a mapping from integer index to widget pointers to get around the 32 bit limitation. */ @@ -4335,7 +4337,7 @@ xg_remove_widget_from_map (ptrdiff_t idx) /* Get the widget pointer at IDX from id_to_widget. */ static GtkWidget * -xg_get_widget_from_map (ptrdiff_t idx) +xg_get_widget_from_map (ptrdiff_t idx, Display *dpy) { if (idx < id_to_widget.max_size && id_to_widget.widgets[idx] != 0) return id_to_widget.widgets[idx]; @@ -4343,6 +4345,42 @@ xg_get_widget_from_map (ptrdiff_t idx) return 0; } +#else +static void +find_scrollbar_cb (GtkWidget *widget, gpointer user_data) +{ + GtkWidget **scroll_bar = user_data; + + if (GTK_IS_SCROLLBAR (widget)) + *scroll_bar = widget; +} + +static GtkWidget * +xg_get_widget_from_map (ptrdiff_t window, Display *dpy) +{ + GtkWidget *gwdesc, *scroll_bar = NULL; + GdkWindow *gdkwin; + + gdkwin = gdk_x11_window_lookup_for_display (gdk_x11_lookup_xdisplay (dpy), + (Window) window); + if (gdkwin) + { + GdkEvent event; + event.any.window = gdkwin; + event.any.type = GDK_NOTHING; + gwdesc = gtk_get_event_widget (&event); + + if (gwdesc && GTK_IS_EVENT_BOX (gwdesc)) + gtk_container_forall (GTK_CONTAINER (gwdesc), + find_scrollbar_cb, &scroll_bar); + } + else + return NULL; + + return scroll_bar; +} +#endif + static void update_theme_scrollbar_width (void) { @@ -4402,7 +4440,7 @@ xg_get_default_scrollbar_height (struct frame *f) return scroll_bar_width_for_theme * xg_get_scale (f); } -#ifndef HAVE_PGTK +#if defined HAVE_PGTK || !defined HAVE_GTK3 /* Return the scrollbar id for X Window WID on display DPY. Return -1 if WID not in id_to_widget. */ @@ -4429,12 +4467,14 @@ xg_get_scroll_id_for_window (Display *dpy, Window wid) DATA is the index into id_to_widget for WIDGET. We free pointer to last scroll bar values here and remove the index. */ +#if !defined HAVE_GTK3 || defined HAVE_PGTK static void xg_gtk_scroll_destroy (GtkWidget *widget, gpointer data) { intptr_t id = (intptr_t) data; xg_remove_widget_from_map (id); } +#endif static void xg_finish_scroll_bar_creation (struct frame *f, @@ -4456,12 +4496,15 @@ xg_finish_scroll_bar_creation (struct frame *f, #endif g_object_set_data (G_OBJECT (wscroll), XG_FRAME_DATA, (gpointer)f); +#if defined HAVE_PGTK || !defined HAVE_GTK3 ptrdiff_t scroll_id = xg_store_widget_in_map (wscroll); g_signal_connect (G_OBJECT (wscroll), "destroy", G_CALLBACK (xg_gtk_scroll_destroy), (gpointer) scroll_id); +#endif + g_signal_connect (G_OBJECT (wscroll), "change-value", scroll_callback, @@ -4489,8 +4532,9 @@ xg_finish_scroll_bar_creation (struct frame *f, gtk_widget_realize (webox); #ifdef HAVE_PGTK gtk_widget_show_all (webox); -#endif -#ifndef HAVE_PGTK +#elif defined HAVE_GTK3 + bar->x_window = GTK_WIDGET_TO_X_WIN (webox); +#else GTK_WIDGET_TO_X_WIN (webox); #endif @@ -4506,9 +4550,15 @@ xg_finish_scroll_bar_creation (struct frame *f, GTK_STYLE_PROVIDER_PRIORITY_USER); gtk_style_context_add_provider (ctxt, GTK_STYLE_PROVIDER (background_provider), GTK_STYLE_PROVIDER_PRIORITY_USER); + +#ifndef HAVE_PGTK + gtk_widget_add_events (webox, GDK_STRUCTURE_MASK); +#endif #endif +#if !defined HAVE_GTK3 || !defined HAVE_GTK3 bar->x_window = scroll_id; +#endif } /* Create a scroll bar widget for frame F. Store the scroll bar @@ -4582,7 +4632,8 @@ xg_create_horizontal_scroll_bar (struct frame *f, void xg_remove_scroll_bar (struct frame *f, ptrdiff_t scrollbar_id) { - GtkWidget *w = xg_get_widget_from_map (scrollbar_id); + GtkWidget *w = xg_get_widget_from_map (scrollbar_id, + FRAME_X_DISPLAY (f)); if (w) { GtkWidget *wparent = gtk_widget_get_parent (w); @@ -4605,7 +4656,8 @@ xg_update_scrollbar_pos (struct frame *f, int width, int height) { - GtkWidget *wscroll = xg_get_widget_from_map (scrollbar_id); + GtkWidget *wscroll = xg_get_widget_from_map (scrollbar_id, + FRAME_X_DISPLAY (f)); if (wscroll) { GtkWidget *wfixed = f->output_data.xp->edit_widget; @@ -4658,7 +4710,8 @@ xg_update_scrollbar_pos (struct frame *f, if (!hidden) { - GtkWidget *scrollbar = xg_get_widget_from_map (scrollbar_id); + GtkWidget *scrollbar = xg_get_widget_from_map (scrollbar_id, + FRAME_X_DISPLAY (f)); GtkWidget *webox = gtk_widget_get_parent (scrollbar); #ifndef HAVE_PGTK @@ -4697,7 +4750,8 @@ xg_update_horizontal_scrollbar_pos (struct frame *f, int width, int height) { - GtkWidget *wscroll = xg_get_widget_from_map (scrollbar_id); + GtkWidget *wscroll = xg_get_widget_from_map (scrollbar_id, + FRAME_X_DISPLAY (f)); if (wscroll) { @@ -4749,7 +4803,7 @@ xg_update_horizontal_scrollbar_pos (struct frame *f, { GtkWidget *scrollbar = - xg_get_widget_from_map (scrollbar_id); + xg_get_widget_from_map (scrollbar_id, FRAME_X_DISPLAY (f)); GtkWidget *webox = gtk_widget_get_parent (scrollbar); #ifndef HAVE_PGTK @@ -4789,9 +4843,10 @@ xg_set_toolkit_scroll_bar_thumb (struct scroll_bar *bar, int position, int whole) { - GtkWidget *wscroll = xg_get_widget_from_map (bar->x_window); - struct frame *f = XFRAME (WINDOW_FRAME (XWINDOW (bar->window))); + GtkWidget *wscroll = xg_get_widget_from_map (bar->x_window, + FRAME_X_DISPLAY (f)); + if (wscroll && bar->dragging == -1) { @@ -4876,7 +4931,9 @@ xg_set_toolkit_horizontal_scroll_bar_thumb (struct scroll_bar *bar, int position, int whole) { - GtkWidget *wscroll = xg_get_widget_from_map (bar->x_window); + struct frame *f = XFRAME (WINDOW_FRAME (XWINDOW (bar->window))); + GtkWidget *wscroll = xg_get_widget_from_map (bar->x_window, + FRAME_X_DISPLAY (f)); if (wscroll && bar->dragging == -1) { @@ -6055,8 +6112,10 @@ xg_initialize (void) xg_menu_cb_list.prev = xg_menu_cb_list.next = xg_menu_item_cb_list.prev = xg_menu_item_cb_list.next = 0; +#if defined HAVE_PGTK || !defined HAVE_GTK3 id_to_widget.max_size = id_to_widget.used = 0; id_to_widget.widgets = 0; +#endif settings = gtk_settings_get_for_screen (gdk_display_get_default_screen (gdk_display_get_default ())); diff --git a/src/xterm.c b/src/xterm.c index d831182811..46f9364abe 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -7238,9 +7238,9 @@ x_window_to_scroll_bar (Display *display, Window window_id, int type) { Lisp_Object tail, frame; -#if defined (USE_GTK) && defined (USE_TOOLKIT_SCROLL_BARS) +#if defined (USE_GTK) && !defined (HAVE_GTK3) && defined (USE_TOOLKIT_SCROLL_BARS) window_id = (Window) xg_get_scroll_id_for_window (display, window_id); -#endif /* USE_GTK && USE_TOOLKIT_SCROLL_BARS */ +#endif /* USE_GTK && !HAVE_GTK3 && USE_TOOLKIT_SCROLL_BARS */ FOR_EACH_FRAME (tail, frame) { @@ -11294,6 +11294,41 @@ handle_one_xevent (struct x_display_info *dpyinfo, configureEvent = next_event; } +#if defined HAVE_GTK3 && defined USE_TOOLKIT_SCROLL_BARS + struct scroll_bar *bar = x_window_to_scroll_bar (dpyinfo->display, + configureEvent.xconfigure.window, 2); + + /* There is really no other way to make GTK scroll bars fit + in the dimensions we want them to. */ + if (bar) + { + /* Skip all the pending configure events, not just the + ones where window motion occurred. */ + while (XPending (dpyinfo->display)) + { + XNextEvent (dpyinfo->display, &next_event); + if (next_event.type != ConfigureNotify + || next_event.xconfigure.window != event->xconfigure.window) + { + XPutBackEvent (dpyinfo->display, &next_event); + break; + } + else + configureEvent = next_event; + } + + if (configureEvent.xconfigure.width != max (bar->width, 1) + || configureEvent.xconfigure.height != max (bar->height, 1)) + XResizeWindow (dpyinfo->display, bar->x_window, + max (bar->width, 1), max (bar->height, 1)); + + if (f && FRAME_X_DOUBLE_BUFFERED_P (f)) + x_drop_xrender_surfaces (f); + + goto OTHER; + } +#endif + f = x_top_window_to_frame (dpyinfo, configureEvent.xconfigure.window); /* Unfortunately, we need to call x_drop_xrender_surfaces for _all_ ConfigureNotify events, otherwise we miss some and commit 5ba9c8c364f652221a0ac9ed918a831e122581db (tag: refs/tags/emacs-28.0.92) Author: Eli Zaretskii Date: Sat Mar 12 04:44:46 2022 -0500 Emacs pretest 28.0.92 * README: * configure.ac: * nt/README.W32: * msdos/sed2v2.inp: Bump Emacs version to 28.0.92. * etc/AUTHORS: * lisp/ldefs-boot.el: Update for pretest 28.0.92. * ChangeLog.3: Regenerate. diff --git a/ChangeLog.3 b/ChangeLog.3 index 18b7b7c11a..778c01b5e5 100644 --- a/ChangeLog.3 +++ b/ChangeLog.3 @@ -1,3 +1,803 @@ +2022-03-10 Eli Zaretskii + + Fix regression in 'custom-prompt-customize-unsaved-options' + + * lisp/cus-edit.el (custom-prompt-customize-unsaved-options): + Don't depend on the value returned by 'customize-unsaved'. Fix + the doc string. Patch by Sebastian Miele . + (Bug#54329) + +2022-03-10 Eli Zaretskii + + Improve documentation of 'map-charset-chars' + + * doc/lispref/nonascii.texi (Character Sets): + * src/charset.c (Fmap_charset_chars): Clarify the codepoint issue + in using 'map-charset-chars'. + +2022-03-08 Eli Zaretskii + + Avoid assertion violations in 'bidi_resolve_brackets' + + * src/bidi.c (bidi_resolve_brackets): Move assertion to where it + really matters. (Bug#54295) + +2022-03-07 Lars Ingebrigtsen + + Fix which-func-update doc string + + * lisp/progmodes/which-func.el (which-func-update): Make the doc + string match the code (bug#54288). + +2022-03-07 Eli Zaretskii + + Improve wording of 'dired-jump's description + + * doc/emacs/dired.texi (Dired Enter): Clarify wording. Reported + by Natalie . + +2022-03-06 Lars Ingebrigtsen + + Add a comment for previous browse-url-of-dired-file change + + * lisp/net/browse-url.el (browse-url-of-dired-file): Add a comment + for previous change. + +2022-03-06 Lars Ingebrigtsen + + Restore documented Emacs 27.2 behaviour of browse-url-of-dired-file + + * lisp/net/browse-url.el (browse-url-of-dired-file): Restore the + documented behaviour -- open a web browser instead of passing to + the various handlers. + +2022-03-06 Kyle Meyer + + Update to Org 9.5.2-24-g668205 + +2022-03-05 Andreas Schwab + + * lib-src/seccomp-filter.c (main): Use faccessat2 only if defined. + +2022-03-04 Lars Ingebrigtsen + + Fix regression in derived-mode-init-mode-variables + + * lisp/emacs-lisp/derived.el (derived-mode-init-mode-variables): + Fix regression caused by lexical-binding derived.el (bug#54240). + +2022-03-03 Eli Zaretskii + + Avoid crashes when fringe bitmaps are defined in daemon mode + + * src/dispextern.h (gui_define_fringe_bitmap): Add prototype. + (max_used_fringe_bitmap): Add declaration. + * src/fringe.c (gui_define_fringe_bitmap): New function. + * src/w32term.c (w32_draw_fringe_bitmap): + * src/xterm.c (x_draw_fringe_bitmap) [USE_CAIRO]: Call + 'gui_define_fringe_bitmap' if the terminal-specific bitmap data is + not available when a fringe bitmap is about to be drawn. Don't + try to draw a bitmap that is not known to fringe.c. (Bug#54183) + +2022-03-03 Eli Zaretskii + + One more fix of the BPA implementation + + * src/bidi.c (bidi_find_bracket_pairs): Disable BPA optimization + when there are no strong directional characters inside the + bracketed pair. (Bug#54219) + +2022-03-03 Eli Zaretskii + + Fix handling of brackets in BPA + + * src/bidi.c (bidi_resolve_brackets): Fix implementation of UBA's + N0 rule when there are no strong directional characters inside the + bracketed pair. (Bug#54219) + +2022-03-02 Po Lu + + Correct etc/NEWS entry about bitmapped fonts + + * etc/NEWS: Don't say that bitmap font issues are due to Pango, that's + not accurate. + +2022-03-01 Jim Porter + + Improve/correct documentation about Eshell variable expansion + + * lisp/eshell/esh-var.el: Correct documentation comment. + (eshell-parse-variable-ref): Correct docstring. + + * doc/misc/eshell.texi (Dollars Expansion): Add documentation for + $"var"/$'var' and $ syntaxes. + +2022-03-01 Jim Porter + + Partially revert b03f74e0f2a578b1580e8b1c368665850ee7f808 + + That commit regressed '$' forms in Eshell, due to a + limitation/bug in how 'eshell-do-eval' works. This fixes + bug#54190. + + * lisp/eshell/esh-var.el (eshell-parse-variable-ref): Quote a lambda. + + * test/lisp/eshell/eshell-tests.el (eshell-test/interp-temp-cmd): + New test. + +2022-03-01 Paul Eggert + + Backport: Port pre-commit hook to Git 2.35.0 + + * build-aux/git-hooks/pre-commit: Use LC_ALL=C grep -E instead of + sane_egrep (removed in Git 2.35.0). + + (cherry picked from commit b8a96f055624f86fe965a0d1b7b2495b2db80e63) + +2022-02-28 Lars Ingebrigtsen + + Fix :tag for eol in tab-first-completion + + * lisp/indent.el (tab-first-completion): Fix the :tag description + (bug#54179). + +2022-02-28 Kyle Meyer + + Update to Org 9.5.2-22-g33543d + +2022-02-27 Dmitry Gutov + + Add explicit '--no-heading' for ripgrep + + * lisp/progmodes/xref.el (xref-search-program-alist): + Add explicit '--no-heading' for ripgrep (bug#54177). + +2022-02-26 Michael Albinus + + Follow OpenSSH changes in Tramp + + * lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options): + Reimplement. OpenSSH has changed its diagnostics messages. + +2022-02-26 Eli Zaretskii + + Document better how to reset attributes of faces for new frames + + * doc/lispref/display.texi (Attribute Functions): + * lisp/faces.el (set-face-attribute): Explain how to reset an + attribute's value for future frames. (Bug#54156) + +2022-02-25 Michael Albinus + + * lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options): Adapt test. + +2022-02-24 Lars Ingebrigtsen + + Mention flyspell-prog-mode in flyspell-mode doc string + + * lisp/textmodes/flyspell.el (flyspell-mode): Mention + flyspell-prog-mode (bug#54131). + +2022-02-23 Lars Ingebrigtsen + + Reword face-remap-add-relative manual entry + + * doc/lispref/display.texi (Face Remapping): Clarify the + face-remap-add-relative (bug#54114). + +2022-02-22 Philipp Stephani + + Fix indexing of module functions that return enumeration types. + + Return types that consist of more than one word need to be enclosed in + braces, see Info node `(texinfo) Typed Functions'. Otherwise they are + indexed incorrectly. + + * doc/lispref/internals.texi (Module Misc, Module Nonlocal): Enclose + multi-word return types in braces. + +2022-02-22 Eli Zaretskii + + * doc/misc/transient.texi (Other Options): Fix a @ref. (Bug#54108) + +2022-02-22 Glenn Morris + + tramp.texi texinfo 4.13 compatibility + + * doc/misc/tramp.texi (Frequently Asked Questions): + Restore compatibility with Texinfo < 5. + +2022-02-22 Michael Albinus + + Explain "Tramp" spelling in its manual + + * doc/misc/tramp.texi (Frequently Asked Questions): + Explain "Tramp" spelling. + +2022-02-21 Eli Zaretskii + + Fix 'display-line-numbers-mode' in hide-show buffers + + * src/xdisp.c (redisplay_internal): Disable redisplay + optimizations that consider just the current line, when + 'display-line-numbers-mode' is turned on in the buffer. + (Bug#54091) + +2022-02-21 Martin Rudalics + + Don't check whether a deleted window is deletable (Bug#54028) + + * lisp/window.el (window-state-put): Make sure window is live + before calling 'window-deletable-p' on it (Bug#54028). + +2022-02-21 Eli Zaretskii + + A friendlier error message from image-mode in an empty buffer + + * lisp/image-mode.el (image-mode): Handle the case where the empty + buffer doesn't visit a file (Bug#54084) + +2022-02-20 Kyle Meyer + + Update to Org 9.5.2-17-gea6b74 + +2022-02-18 Eli Zaretskii + + Improve documentation of filling and justification commands + + * doc/lispref/text.texi (Filling): + * lisp/textmodes/fill.el (fill-region-as-paragraph) + (default-justification, set-justification, justify-current-line): + Clarify "canonicalization" of spaces and the meaning of + justification styles. (Bug#54047) + (set-justification-left, set-justification-right) + (set-justification-full): Improve wording of doc strings. + +2022-02-18 Eli Zaretskii + + * lisp/progmodes/subword.el (superword-mode): Doc fix. (Bug#54045) + +2022-02-17 Philipp Stephani + + Fix indexing of module functions that return complex types. + + Return types that consist of more than one word need to be enclosed in + braces, see Info node `(texinfo) Typed Functions'. Otherwise they are + indexed incorrectly. + + * doc/lispref/internals.texi (Module Values): Enclose multi-word + return types in braces. + +2022-02-17 Po Lu + + Prevent crashes caused by invalid locale coding systems + + * src/xterm.c (handle_one_xevent): Prevent a signal inside + `setup_coding_system' which crashes recent versions of GLib if + the locale coding system is invalid. + + Do not merge to master. + +2022-02-15 Michael Albinus + + Fix problem with popd for in remote shell buffers + + * lisp/shell.el (shell-prefixed-directory-name): + Use `file-local-name' for DIR. (Bug#53927) + +2022-02-15 Jonas Bernoulli + + Import texi source file for transient manual + + * doc/misc/Makefile.in: Add transient to INFO_COMMON. + * doc/misc/transient.texi: New file. + +2022-02-13 Kyle Meyer + + Update to Org 9.5.2-15-gc5ceb6 + +2022-02-13 Eli Zaretskii + + Fix 'exchange-point-and-mark' in 'transient-mark-mode' + + * lisp/simple.el (exchange-point-and-mark): Don't deactivate mark + when 'transient-mark-mode' is ON. (Bug#53150) + + (cherry picked from commit 415ed4b42515ff2e6dd9b94e964b479e50c6392e) + +2022-02-13 Eli Zaretskii + + Fix "C-SPC C-SPC" after "C-x C-x" + + * lisp/simple.el (exchange-point-and-mark): Fix what the command + does when 'transient-mark-mode' is OFF. (Bug#52896) + + (cherry picked from commit 19c6cad1821eb896b2ddd0f6eab030f0880ea254) + +2022-02-13 Eli Zaretskii + + Fix a typo in fontset.el + + * lisp/international/fontset.el (xlfd-regexp-spacing-subnum): Fix + a typo. Reported by Greg A. Woods . + +2022-02-12 Eli Zaretskii + + Note in ELisp manual that too-wide images are truncated + + * doc/lispref/display.texi (Showing Images): Note that images are + truncated at the window's edge. (Bug#53952) + +2022-02-11 Andrea Corallo + + * lisp/mail/emacsbug.el (report-emacs-bug): Report libgccjit status. + + * lisp/startup.el (normal-top-level): Small code move, improve 202d3be873. + +2022-02-10 Andrea Corallo + + * lisp/startup.el (normal-top-level): Disable native-comp if not available + +2022-02-09 Andrea Corallo + + Fix integer arithmetic miss-compilation (bug#53451) + + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-set-range-for-arithm): + When one of the two sources is negated revert to set dst as + number. + * test/src/comp-tests.el (comp-tests-type-spec-tests): Add test to + verify this is effective. + +2022-02-08 Robert Pluim + + Mark flymake as compatible with emacs-26.1 + + * lisp/progmodes/flymake.el: Bump package version and set + emacs version in Package-Requires to 26.1 (Bug#53853). + +2022-02-08 Brian Leung + + flymake: Ensure compatibility with older Emacsen + + * lisp/progmodes/flymake.el (flymake--log-1): Use + replace-regexp-in-string instead of Emacs 28's + string-replace (bug#53853). + +2022-02-07 Eric Abrahamsen + + Don't remove dummy.group from gnus-newsrc-alist on Gnus save + + bug#53352 + + * lisp/gnus/gnus-start.el (gnus-gnus-to-quick-newsrc-format): This + function was removing dummy.group from the global value of + `gnus-newsrc-alist' on save; we only wanted to remove it temporarily. + +2022-02-05 Bob Rogers + + Fix ietf-drums-get-comment doc string + + * lisp/mail/ietf-drums.el (ietf-drums-get-comment): We really return + the last comment (bug#53810). + +2022-02-05 Daniel Martín + + Fix typo in display.texi + + * doc/lispref/display.texi (Making Buttons): Fix typo. (Bug#53807) + +2022-02-03 Michael Albinus + + Revert an erroneous change in tramp-cache.el + + * lisp/net/tramp-cache.el (tramp-get-hash-table): + Use `string-match-p' instead of `string-search'. The latter one + was introduced by accident. Reported by Kai Tetzlaff . + +2022-02-02 Eli Zaretskii + + Improve documentation of 'emacs-version' + + * doc/emacs/trouble.texi (Checklist): Mention the possibility of + invoking 'emacs-version' with a prefix argument. + + * lisp/version.el (emacs-version): Improve doc string. (Bug#53720) + +2022-02-01 Michael Albinus + + * etc/NEWS: Apply final fixes after proofreading. + +2022-01-31 Eli Zaretskii + + Clarify documentation of a "face's font" + + * doc/lispref/display.texi (Attribute Functions) + (Face Attributes): Clarify that the :font attribute of a face and + the font returned by 'face-font' are by default for ASCII + characters. (Bug#53664) + +2022-01-31 Alan Mackenzie + + Bind Qdebugger to Qdebug in signal_or_quit. + + * src/eval.c (signal_or_quit): Bind the correct variable, Qdebugger (not + Vdebugger) to Qdebug in the section for errors in batch jobs. + (syms_of_eval): New DEFSYM for Qdebugger. + +2022-01-30 Kyle Meyer + + Update to Org 9.5.2-13-gdd6486 + +2022-01-30 Eli Zaretskii + + Fix regression in Occur Edit mode + + * lisp/replace.el (occur-after-change-function): Fix the algorithm + to find the smallest change in some corner cases. (Bug#53598) + +2022-01-29 Eli Zaretskii + + Fix last change of Malayalam composition rules + + * lisp/language/indian.el (malayalam-composable-pattern): + Reinstate. Instead of removing it, add any sequence of + Malayalam characters to the existing patterns, so as not + to lose the patterns that use ZWJ and ZWNJ. (Bug#53625) + +2022-01-29 Eli Zaretskii + + Fix rendering of Malayalam script + + * lisp/language/indian.el (malayalam-composable-pattern): Remove. + (script-regexp-alist): Remove 'malayalam-composable-pattern'. + Instead, pass any sequence of Malayalam codepoints to the shaping + engine. (Bug#53625) + +2022-01-29 Eli Zaretskii + + Improve documentation of Occur mode + + * doc/emacs/search.texi (Other Repeating Search): Improve wording + and document Occur Edit mode better. + +2022-01-29 Alan Third + + Remove debug logging + + * src/nsterm.m ([EmacsView copyRect:to:]): Remove logging as it's no + longer required. + +2022-01-29 Michael Albinus + + Fix error in filelock.c + + * src/filelock.c (lock_file): Move call of file name handler to + `Flock_file'. Determine lock_filename only in case + create_lockfiles is non-nil. Adapt the rest of the function accordingly. + (Flock_file): Do not check for create_lockfiles. Call file name + handler if appropriate. (Bug#53207) + +2022-01-27 Juri Linkov + + * lisp/frame.el (clone-frame): Filter out 'parent-id' (bug#51883). + +2022-01-26 Lars Ingebrigtsen + + Partially revert a fill-region-as-paragraph regression + + * lisp/textmodes/fill.el (fill-region-as-paragraph): Revert + e186af261 (bug#53537), because it leads to regressions. (But + leave tests in place.) + +2022-01-26 Eli Zaretskii + + Fix 'make_lispy_position' when there's an image at EOB + + * src/xdisp.c (move_it_to): Don't compare IT_CHARPOS with an + invalid TO_CHARPOS. (Bug#53546) + +2022-01-26 Lars Ingebrigtsen + + Fix copyright-find-copyright when searching from the end + + * lisp/emacs-lisp/copyright.el (copyright-find-copyright): Make + the double check also work when searching from the end (bug#7179). + + Do not merge to master. + +2022-01-26 Lars Ingebrigtsen + + Fix copyright.el comment and add a test + + * lisp/emacs-lisp/copyright.el (copyright-find-copyright): Fix + comment (bug#7179). + + Do not merge to master. + +2022-01-24 Philipp Stephani + + * configure.ac (LIBSECCOMP): Bump minimum version for faccessat2. + +2022-01-24 Lars Ingebrigtsen + + Make the `f' command work in image-mode again + + * lisp/image.el (image-show-frame): Protect against not having + computed the animation data yed (bug#53489). + +2022-01-22 Philipp Stephani + + Seccomp: improve support for newer versions of glibc (Bug#51073) + + * lib-src/seccomp-filter.c (main): Allow 'pread64' and 'faccessat2' + system calls. Newer versions of glibc use these system call (starting + with commits 95c1056962a3f2297c94ce47f0eaf0c5b6563231 and + 3d3ab573a5f3071992cbc4f57d50d1d29d55bde2, respectively). + +2022-01-21 Thomas Fitzsimmons + + EUDC: Fix a quoting bug in the BBDB backend + + * lisp/net/eudcb-bbdb.el (eudc-bbdb-query-internal): Fix a quoting + bug introduced during lexical-binding conversion. + +2022-01-21 Sergey Vinokurov + + Fix memory-report-object-size to initialize memory-report--type-size + + * lisp/emacs-lisp/memory-report.el (memory-report-object-size): + Allow using function directly (bug#53310). + + Do not merge to master. + +2022-01-20 Stefan Monnier + + Fix menu-bar mouse clicks in "C-h c" and "C-h k" (bug#53322) + + * lisp/subr.el (event-start, event-end): Handle '(menu-bar)' + events. + * lisp/net/browse-url.el (browse-url-interactive-arg): Simplify + accordingly. + + (cherry picked from commit 9ceb3070e34ad8a54184fd0deda477bf5ff77000) + +2022-01-20 Eli Zaretskii (tiny change) + + Fix UB in ebrowse + + * lib-src/ebrowse.c (matching_regexp): Avoid writing beyond the + limits of 'matching_regexp_buffer'. Patch by Jan Stranik + . (Bug#53333) + +2022-01-20 Lars Ingebrigtsen + + Fix execute-extended-command-for-buffer in fundamental-mode + + * lisp/simple.el (execute-extended-command-for-buffer): Protect + against the current local map being nil (bug#52907). + +2022-01-20 Martin Rudalics + + Add workaround to handle a problem with Enlightenment WM (Bug#53298) + + * src/xterm.c (handle_one_xevent): Handle setting of variable + 'x_set_frame_visibility_more_laxly' when receiving an Expose or + FocusIn event (Bug#53298). + (Qexpose): Define symbol. + (x_set_frame_visibility_more_laxly): New Lisp variable. + * etc/PROBLEMS: Mention frame redraw problem with the + Enlightenment WM and 'x-set-frame-visibility-more-laxly' + workaround. + +2022-01-17 Po Lu + + Fix regression leading to flickering tooltips when the mouse is moved + + * lisp/tooltip.el (tooltip-show-help): Compare string with + previous tooltip string ignoring properties. + +2022-01-17 Andrea Corallo + + * Fix native comp for non trivial function names (bug#52833) + + * lisp/emacs-lisp/comp.el (comp-c-func-name): Fix native compilation + for functions with function names containing non trivial + characters (bug#52833). + + This commit is the backport of e7699bf290. + + Do not merge to master + +2022-01-15 Kyle Meyer + + Update to Org 9.5.2-9-g7ba24c + +2022-01-15 Juri Linkov + + * lisp/net/dictionary.el (dictionary-context-menu): Use package prefix. + +2022-01-15 Philipp Stephani + + Mark a few more map tests as unstable on Emacs 28 (Bug#46722). + + At least for me, these tests still occasionally fail. + + Do not merge to master. + + * test/lisp/emacs-lisp/map-tests.el (test-map-into-hash-test) + (test-map-merge, test-map-merge-with, test-map-merge-empty): Mark as + unstable. + +2022-01-15 Philipp Stephani + + * lisp/indent.el (tab-first-completion): Fix incorrect choices. + +2022-01-14 Philipp Stephani + + * lisp/simple.el (undo-no-redo): Fix customization group + + * lisp/progmodes/xref.el (xref-file-name-display): Fix docstring. + +2022-01-14 Eli Zaretskii + + Avoid another segfault in 'face_at_buffer_position' + + * src/xfaces.c (face_at_buffer_position): Make really sure the + default face is usable. (Bug#53254) + +2022-01-14 Lars Ingebrigtsen + + Mark test-map-into as unstable + + * test/lisp/emacs-lisp/map-tests.el (test-map-into): Mark as + unstable (bug#46722). + + Do not merge to master. + +2022-01-13 Philipp Stephani + + Fix Edebug specification for inline functions (Bug#53068). + + * lisp/emacs-lisp/inline.el (inline-quote): Fix Edebug specification. + + * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-inline): New unit + test. + +2022-01-13 N. Jackson + + Remove mention of removed `gnus-treat-play-sounds' variable from manual + + * info/gnus.info: Remove `gnus-treat-play-sounds' from + manual. According to lisp/gnus/ChangeLog.3 this variable was + removed in 2010 (bug#53192). + +2022-01-12 Mattias Engdegård + + Revert "Fix closure-conversion of shadowed captured lambda-lifted vars" + + This reverts commit 3ec8c8b3ae2359ceb8135b672e86526969c16b7e. + + It was committed to a stable branch without prior discussion; + see bug#53071. + +2022-01-12 Juri Linkov + + * doc/lispref/windows.texi (Textual Scrolling): Remove obsolete text. + + Remove text about scrolling the minibuffer from the buffer, + obsolete since Emacs 27 (bug#51210). + +2022-01-12 Glenn Morris + + * lisp/files.el (lock-file-name-transforms): Doc tweaks. + +2022-01-12 Mattias Engdegård + + 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. + + (cherry picked from commit 45252ad8f932c98a373ef0ab7f3363a3e27ccbe4) + +2022-01-12 Philipp Stephani + + Fix test lisp/cedet/semantic/bovine/gcc-tests on macOS (Bug#52431) + + * test/lisp/cedet/semantic/bovine/gcc-tests.el + (semantic-gcc-test-output-parser-this-machine): Also detect Apple + clang on macOS Monterey. + + (cherry picked from commit 6e52becfbe2a33c025b8c4838b3c8f06ba5a6fb8) + +2022-01-12 Mattias Engdegård + + Don't fail flymake-tests if `gcc` actually is Clang + + * test/lisp/progmodes/flymake-tests.el (flymake-tests--gcc-is-clang) + (different-diagnostic-types, included-c-header-files): Skip tests that + depend on the `gcc` command really being GCC and not Clang. + + (cherry picked from commit b2167d98432a78442522b7564e22f47d75a98b6f) + +2022-01-10 Eli Zaretskii + + Revert "Remove the filename argument from the command line after an ELC+ELN build" + + This reverts commit ffc047c896413b6e00032518fc934f08768671fa. + + Please don't install anything non-trivial on the release branch + without asking first. + +2022-01-10 Alan Mackenzie + + Remove the filename argument from the command line after an ELC+ELN build + + This fixes bug #53164. Without this fix, bootstrap-emacs loads the source + file uselessly into a buffer after completing the compilation. + +2022-01-09 Stefan Monnier + + (save-some-buffers): Simplify the fix for bug#46374 + + * lisp/files.el (save-some-buffers): Only check the + `save-some-buffers-function` property on functions from + `save-some-buffers-default-predicate` since callers which provide + a `pred` argument can arrange to compute `pred` themselves if needed. + + * test/lisp/files-tests.el (files-tests-buffer-offer-save): Don't test + with `pred` set to `save-some-buffers-root` since it's not an + appropriate function for that any more. + +2022-01-09 Stefan Kangas + + Improve docstring of edit-abbrevs + + * lisp/abbrev.el (edit-abbrevs): Doc fix; don't use obsolete name. + Improve docstring formatting. + +2022-01-09 Eli Zaretskii + + Revert "Fix alignment on font size change in tabulated-list-mode" + + This reverts commit 2767c89db729a6106146d0aeff76678c64d4fc53. + + That change caused a regression in a much more important use + case, see bug#53133. + +2022-01-08 Stefan Kangas + + Clarify docstring of package-native-compile + + * lisp/emacs-lisp/package.el (package-native-compile): Clarify + docstring. + +2022-01-08 Eli Zaretskii + + Fix Subject "simplification" in Rmail + + * lisp/mail/rmail.el (rmail-simplified-subject): Match against + "[external]" _after_ decoding the Subject by RFC-2047. + +2022-01-08 Stefan Kangas + + Bump Emacs version to 28.0.91 + + * README: + * configure.ac: + * msdos/sed2v2.inp: + * nt/README.W32: Bump Emacs version to 28.0.91. + 2022-01-05 Dmitry Gutov Fix vc-git with old Git over Tramp and cygwin-mount.el @@ -234065,7 +234865,7 @@ This file records repository revisions from commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to -commit e7aa3ece52d26cc7e4d3f3990aff56127389779f (inclusive). +commit dbe6a3ecf74536cbfb7ca59630b48020ae4e732a (inclusive). See ChangeLog.2 for earlier changes. ;; Local Variables: diff --git a/README b/README index 2abcadd76c..7840e7a108 100644 --- a/README +++ b/README @@ -2,7 +2,7 @@ Copyright (C) 2001-2022 Free Software Foundation, Inc. See the end of the file for license conditions. -This directory tree holds version 28.0.91 of GNU Emacs, the extensible, +This directory tree holds version 28.0.92 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 9e8519dc3c..7c2b7aa62e 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.91, bug-gnu-emacs@gnu.org, , https://www.gnu.org/software/emacs/) +AC_INIT(GNU Emacs, 28.0.92, 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/etc/AUTHORS b/etc/AUTHORS index 0029a4b97f..8281aa9692 100644 --- a/etc/AUTHORS +++ b/etc/AUTHORS @@ -68,7 +68,7 @@ Adrian Robert: co-wrote ns-win.el and changed nsterm.m nsfns.m nsfont.m nsterm.h nsmenu.m configure.ac src/Makefile.in macos.texi README config.in emacs.c font.c keyboard.c nsgui.h nsimage.m xdisp.c image.c lib-src/Makefile.in lisp.h menu.c - Makefile.in and 78 other files + Makefile.in and 79 other files Ævar Arnfjörð Bjarmason: changed rcirc.el @@ -105,8 +105,8 @@ 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 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 + programs.texi eval.c keyboard.c lisp.h modes.texi window.el + windows.texi cus-start.el font-lock.el isearch.el newcomment.el and 166 other files Alan Modra: changed unexelf.c @@ -127,8 +127,7 @@ and changed nsterm.m nsterm.h nsfns.m image.c nsmenu.m configure.ac Alastair Burt: changed gnus-art.el smiley.el Albert Krewinkel: co-wrote sieve-manage.el -and changed sieve.el gnus-msg.el gnus.texi mail/sieve-manage.el - message.el sieve.texi +and changed sieve.el gnus-msg.el gnus.texi message.el sieve.texi Albert L. Ting: changed gnus-group.el mail-hist.el @@ -181,7 +180,7 @@ 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 +and changed unexelf.c format.el iris4d.h iris5d.h regex-emacs.c unexsgi.c Alexandre Veyrenc: changed fr-refcard.tex @@ -332,9 +331,9 @@ Andreas Schwab: changed configure.ac lisp.h xdisp.c process.c alloc.c 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 - url-http.el xterm.c battery.el comint.el doc/misc/gnus.texi - easy-mmode.el gmm-utils.el gnus-art.el gnus-cite.el gnus-draft.el - gnus-group.el and 7 other files + url-http.el xterm.c battery.el comint.el easy-mmode.el gmm-utils.el + gnus-art.el gnus-cite.el gnus-draft.el gnus-group.el gnus-ml.el + and 6 other files Andreas Vögele: changed pgg-def.el @@ -376,9 +375,9 @@ Andrew Hyatt: changed bug-triage CONTRIBUTE org-archive.el org.el org.texi Andrew Innes: changed makefile.nt w32fns.c w32term.c w32.c w32proc.c - fileio.c w32-fns.el dos-w32.el inc/ms-w32.h w32term.h makefile.def + fileio.c ms-w32.h w32-fns.el dos-w32.el w32term.h makefile.def unexw32.c w32menu.c w32xfns.c addpm.c cmdproxy.c emacs.c w32-win.el - w32inevt.c configure.bat lread.c and 129 other files + w32inevt.c configure.bat lread.c and 128 other files Andrew L. Moore: changed executable.el @@ -434,11 +433,11 @@ Ansgar Burchardt: changed latin-ltx.el Antoine Beaupré: changed vc-git.el -Antoine Levitt: changed gnus-group.el gnus-sum.el message.texi +Antoine Levitt: changed gnus-group.el gnus-sum.el message.texi ada-prj.el 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 - mh-mime.el and 7 other files + and 8 other files Antonin Houska: changed newcomment.el @@ -479,11 +478,11 @@ Arthur Miller: changed help-fns.el ange-ftp.el bytecomp.el comp.c comp.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-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 43 other files +and changed package.el isearch.el 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 43 other files Artyom Loenko: changed Info.plist.in @@ -576,7 +575,7 @@ and changed org-clock.el org.el Benjamin Ragheb: changed fortune.el 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 + w32select.c emacs.c image.el lisp.h mac-win.el macterm.c ms-w32.h mule-cmds.el nnrss.el runemacs.c tcl.el w32.c w32.h Benjamin Rutt: co-wrote gnus-dired.el @@ -584,7 +583,7 @@ and changed vc.el gnus-msg.el message.el diff-mode.el ffap.el nnimap.el nnmbox.el simple.el vc-cvs.el Ben Key: changed w32.c w32fns.c w32menu.c configure.bat INSTALL w32.h - w32term.c configure.ac emacs.c inc/ms-w32.h keyboard.c make-docfile.c + w32term.c configure.ac emacs.c keyboard.c make-docfile.c ms-w32.h nsfont.m nsterm.m sound.c xfaces.c Ben Menasha: changed nnmh.el @@ -656,8 +655,8 @@ Bob Nnamtrop: changed viper-cmd.el Bob Olson: co-wrote cperl-mode.el Bob Rogers: changed vc-dir.el vc-svn.el cperl-mode.el diff.el ewoc.el - ffap.el files.el maintaining.texi sql.el thingatpt.el vc.el - vc1-xtra.texi + ffap.el files.el ietf-drums.el maintaining.texi sql.el thingatpt.el + vc.el vc1-xtra.texi Bob Weiner: changed info.el quail.el dframe.el etags.c rmail.el rmailsum.el speedbar.el @@ -709,7 +708,8 @@ 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 + files.el find-func.el flymake.el gdb-mi.el help.el nadvice.el shell.el + shortdoc.el Brian Marick: co-wrote hideif.el @@ -833,7 +833,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 932 other files + custom.texi image.c window.el and 934 other files Chris Chase: co-wrote idlw-shell.el idlwave.el @@ -850,8 +850,8 @@ 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 emacs-regex.c emacsclient.c - fileio.c hp9000s800.h indent.c info.el and 17 other files + 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 Chris Hecker: changed calc-aent.el @@ -973,12 +973,10 @@ 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 Dockerfile.emba button.el configure.ac - display.texi ert.el gitlab-ci.yml keyboard.c tex-mode.el text.texi - xdisp.c + debugging.texi display.texi emacs-lisp/debug.el ert.el eval.c + gitlab-ci.yml keyboard.c progmodes/python.el subr-tests.el subr.el + tex-mode.el text.texi url-http.el url-vars.el xdisp.c Codruț Constantin Gușoi: changed files.el @@ -1114,9 +1112,9 @@ 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 + compile-tests.el cscope.el diff.el dired.el display.texi editfns.c + emacs.texi files-tests.el find-func-tests.el find-func.el frame.c + and 17 other files Daniel McClanahan: changed lisp-mode.el @@ -1201,7 +1199,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 771 other files + files.el keyboard.c byte-opt.el info.el and 772 other files Dave Pearson: wrote 5x5.el quickurl.el @@ -1273,7 +1271,7 @@ David Hedbor: changed nnmail.el David Hull: changed etags.c vc-hg.el -David Hunter: changed flymake.el inc/ms-w32.h process.c +David Hunter: changed flymake.el ms-w32.h process.c David J. Biesack: changed antlr-mode.el quickurl.el @@ -1371,10 +1369,10 @@ Debarshi Ray: changed erc-backend.el erc.el Decklin Foster: changed nngateway.el -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 +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 D. E. Evans: changed basic.texi @@ -1477,7 +1475,7 @@ 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 + and 122 other files Dmitry Kurochkin: changed isearch.el @@ -1574,8 +1572,8 @@ Eli Zaretskii: wrote [bidirectional display in xdisp.c] 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 1232 other files + w32proc.c files.texi frames.texi configure.ac dispextern.h lisp.h + process.c ms-w32.h and 1235 other files Eliza Velasquez: changed server.el @@ -1596,7 +1594,7 @@ Emilio C. Lopes: changed woman.el cmuscheme.el help.el vc.el advice.el and 58 other files Emmanuel Briot: wrote xml.el -and changed ada-stmt.el +and changed ada-mode.el ada-stmt.el ada-prj.el ada-xref.el Era Eriksson: changed bibtex.el dired.el json.el ses.el ses.texi shell.el tramp.el tramp.texi @@ -1763,10 +1761,10 @@ Fabrice Nicol: changed etags.c etags.1 Fabrice Niessen: wrote leuven-theme.el and changed org-agenda.el -Fabrice Popineau: changed w32.c ms-w32.h w32fns.c w32heap.c w32term.c +Fabrice Popineau: changed ms-w32.h w32.c 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-regex.c emacs-x64.manifest emacs-x86.manifest and 25 other files + emacs-x64.manifest emacs-x86.manifest etags.c and 24 other files Fan Kai: changed esh-arg.el @@ -1821,7 +1819,7 @@ Florian Adamsky: changed recentf.el Florian Beck: changed org.el -Florian Ragwitz: changed gnus-html.el mail/sieve-manage.el +Florian Ragwitz: changed gnus-html.el sieve-manage.el Florian V. Savigny: changed sql.el @@ -1949,7 +1947,7 @@ 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 + and 23 other files Geoff Gole: changed align.el ibuffer.el whitespace.el @@ -1960,9 +1958,9 @@ Geoff Kuenning: changed gnus-art.el gnus.texi Geoff Voelker: wrote ms-w32.h w32-fns.el w32.c w32.h w32heap.c w32heap.h w32inevt.c w32proc.c w32term.c and changed makefile.nt w32fns.c fileio.c makefile.def callproc.c - s/ms-w32.h emacs.bat.in unexw32.c w32term.h dos-w32.el loadup.el - w32-win.el emacs.c keyboard.c ntterm.c process.c w32console.c addpm.c - cmdproxy.c comint.el files.el and 100 other files + emacs.bat.in unexw32.c w32term.h dos-w32.el loadup.el w32-win.el + emacs.c keyboard.c ntterm.c process.c w32console.c addpm.c cmdproxy.c + comint.el files.el sysdep.c and 97 other files Georg C. F. Greve: changed pgg-gpg.el @@ -1980,7 +1978,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 607 other files + and 610 other files Gergely Nagy: changed erc.el @@ -2008,7 +2006,7 @@ and changed configure.ac Makefile.in src/Makefile.in calendar.el 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 1790 other files + ack.texi subr.el and 1789 other files Glynn Clements: wrote gamegrid.el snake.el tetris.el @@ -2232,7 +2230,7 @@ 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 - emacs-regex.c emacs-regex.h font-lock.el intervals.h search.c + font-lock.el intervals.h regex-emacs.c regex-emacs.h search.c Ilya Zonov: changed org-mouse.el @@ -2276,7 +2274,8 @@ 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 - ibuffer.el newcomment.el nxml-mode.el progmodes/python.el + ibuffer.el newcomment.el nextstep/templates/Info.plist.in nxml-mode.el + progmodes/python.el Ivan Boldyrev: changed mml1991.el @@ -2456,7 +2455,7 @@ Jason Rumney: wrote w32-vars.el and changed w32fns.c w32term.c w32font.c w32menu.c w32-win.el w32term.h w32.c w32uniscribe.c w32-fns.el makefile.nt w32console.c w32bdf.c configure.bat keyboard.c w32proc.c w32select.c font.c image.c w32font.h - w32gui.h xdisp.c and 153 other files + w32gui.h xdisp.c and 152 other files Jason S. Cornez: changed keyboard.c @@ -2573,8 +2572,8 @@ Jesper Harder: wrote yenc.el and changed gnus-sum.el gnus-art.el message.el gnus-group.el gnus-msg.el gnus.el gnus-util.el rfc2047.el mm-bodies.el mm-util.el mml.el mm-decode.el nnrss.el gnus-srvr.el gnus-topic.el nnmail.el - gnus-start.el gnus-uu.el spam-stat.el gnus-score.el gnus.texi - and 202 other files + gnus-start.el gnus-uu.el gnus.texi spam-stat.el gnus-score.el + and 200 other files Jhair Tocancipa Triana: changed gnus-audio.el @@ -2610,10 +2609,10 @@ Jimmy Yuen Ho Wong: changed nsm.el gnutls.c gnutls.el disass.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 + bindings.el esh-var.el term-tests.el term.el tramp.el callproc.c + dichromacy-theme.el diff-mode.el eshell-tests.el eshell.texi + files-tests.el gdb-mi.el grep-tests.el ispell.el leuven-theme.el man.el + menu-bar.el misterioso-theme.el and 9 other files Jim Radford: changed gnus-start.el @@ -2796,7 +2795,7 @@ 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 + epg.el and 11 other files Jonas Hoersch: changed org-inlinetask.el org.el @@ -2858,7 +2857,7 @@ Jorge P. De Morais Neto: changed TUTORIAL cl.texi Jose A. Ortega Ruiz: changed mixal-mode.el gnus-sum.el url-http.el -Jose E. Marchesi: changed gomoku.el simple.el smtpmail.el +Jose E. Marchesi: changed ada-mode.el gomoku.el simple.el smtpmail.el José L. Doménech: changed dired-aux.el @@ -2903,7 +2902,7 @@ 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 1226 other files + and 1225 other files Juan Pechiar: changed ob-octave.el @@ -2926,7 +2925,7 @@ Julien Danjou: wrote erc-desktop-notifications.el gnus-gravatar.el and co-wrote color.el and changed shr.el org-agenda.el gnus-art.el nnimap.el gnus-html.el gnus.el message.el gnus-group.el gnus-sum.el gnus-util.el mm-decode.el - mm-view.el org.el gnus.texi mail/sieve-manage.el nnir.el mm-uu.el + mm-view.el org.el gnus.texi nnir.el sieve-manage.el mm-uu.el color-lab.el gnus-demon.el gnus-int.el gnus-msg.el and 96 other files Julien Gilles: wrote gnus-ml.el @@ -2950,7 +2949,7 @@ Juri Linkov: wrote compose.el files-x.el misearch.el repeat-tests.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 + faces.el vc.el display.texi search.texi and 445 other files Jussi Lahdenniemi: changed w32fns.c ms-w32.h msdos.texi w32.c w32.h w32console.c w32heap.c w32inevt.c w32term.h @@ -3018,7 +3017,7 @@ and changed simple.el files.el CONTRIBUTE doc-view.el image-mode.el Karl Heuer: changed keyboard.c lisp.h xdisp.c buffer.c xfns.c xterm.c alloc.c files.el frame.c configure.ac window.c data.c minibuf.c editfns.c fns.c process.c Makefile.in fileio.c simple.el keymap.c - indent.c and 446 other files + indent.c and 447 other files Karl Kleinpaste: changed gnus-sum.el gnus-art.el gnus-picon.el gnus-score.el gnus-uu.el gnus-xmas.el gnus.el mm-uu.el mml.el nnmail.el @@ -3048,7 +3047,7 @@ Katsumi Yamaoka: wrote canlock.el and changed gnus-art.el gnus-sum.el message.el mm-decode.el gnus.texi mm-util.el mm-view.el gnus-group.el gnus-util.el gnus-msg.el mml.el 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 + mm-uu.el nnmail.el emacs-mime.texi and 159 other files 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 @@ -3062,7 +3061,7 @@ Kaveh R. Ghazi: changed delta88k.h xterm.c Kayvan Sylvan: changed supercite.el 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 + japan-util.el keyboard.c make-mode.el starttls.el xdisp.c Kazushi Marukawa: changed filelock.c hexl.c profile.c unexalpha.c @@ -3147,7 +3146,7 @@ and changed edt.texi Kevin Gallo: wrote w32-win.el and changed makefile.nt dispnew.c addpm.c config.w95 dispextern.h emacs.c facemenu.el faces.el fns.c frame.c frame.h keyboard.c makefile.def - mouse.el ntterm.c process.c s/ms-w32.h scroll.c startup.el sysdep.c + mouse.el ms-w32.h ntterm.c process.c scroll.c startup.el sysdep.c term.c and 18 other files Kevin Greiner: wrote legacy-gnus-agent.el @@ -3182,7 +3181,7 @@ Kim F. Storm: wrote bindat.el cua-base.el cua-gmrk.el cua-rect.el ido.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 248 other files + and 249 other files Kimit Yada: changed copyright.el @@ -3221,10 +3220,10 @@ Konrad Hinsen: wrote ol-eshell.el and changed ob-python.el 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 + ada-mode.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 and 27 other files Konstantin Kliakhandler: changed org-agenda.el @@ -3306,8 +3305,8 @@ and co-wrote gnus-kill.el gnus-mh.el gnus-msg.el gnus-score.el rfc2047.el svg.el time-date.el 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 860 other files + auth-source.el url-http.el edebug.el image.el gnus-cite.el pop3.el + dired-aux.el fns.c image.c and 859 other files Lars Rasmusson: changed ebrowse.c @@ -3337,11 +3336,11 @@ Lele Gaifax: changed TUTORIAL.it progmodes/python.el 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 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 +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 + progmodes/grep.el recentf.el remember.el replace.el reveal.el + and 6 other files Lennart Staflin: changed dired.el diary-ins.el diary-lib.el tq.el xdisp.c @@ -3379,6 +3378,8 @@ Liang Wang: changed etags.el Liāu, Kiong-Gē 廖宮毅: changed comp.c mingw-cfg.site +Lin Zhou: changed w32fns.c w32term.h + Lixin Chin: changed bibtex.el Lloyd Zusman: changed mml.el pgg-gpg.el @@ -3428,7 +3429,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 288 other files + doclicense.texi and 289 other files Lynn Slater: wrote help-macro.el @@ -3550,7 +3551,7 @@ 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 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 + eldoc.el emacs-lisp/chart.el files.el and 172 other files Mark Plaksin: changed nnrss.el term.el @@ -3573,7 +3574,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 125 other files + and 126 other files Markus Sauermann: changed lisp-mode.el @@ -3618,7 +3619,7 @@ Martin Pohlack: changed iimage.el pc-select.el Martin Rudalics: changed window.el window.c windows.texi frame.c xdisp.c xterm.c frames.texi w32fns.c 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 212 other files + nsfns.m gtkutil.c and 213 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 @@ -3775,7 +3776,7 @@ and co-wrote tramp-cache.el tramp-sh.el tramp.el and changed tramp.texi tramp-adb.el trampver.el trampver.texi dbusbind.c 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 + tramp-imap.el gitlab-ci.yml lisp.h README xesam.el and 278 other files Michael Ben-Gershon: changed acorn.h configure.ac riscix1-1.h riscix1-2.h unexec.c @@ -3878,8 +3879,8 @@ Michael Staats: wrote pc-select.el Michael Vehrs: changed quail.el woman.el Michael Welsh Duggan: changed nnimap.el lisp.h sh-script.el w32term.c - buffer.c gnus-spec.el gud.el keyboard.c mail/sieve-manage.el nnir.el - nnmail.el print.c termhooks.h url-http.el w32-win.el w32fns.c w32menu.c + buffer.c gnus-spec.el gud.el keyboard.c nnir.el nnmail.el print.c + sieve-manage.el termhooks.h url-http.el w32-win.el w32fns.c w32menu.c w32term.h woman.el xdisp.c xterm.c Michael Weylandt: changed ox-latex.el @@ -3897,11 +3898,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 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 +and changed regex-emacs.c casefiddle.c regex-emacs-tests.el simple.el + casefiddle-tests.el message.el regex-emacs.h 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 @@ -3977,7 +3978,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 271 other files + bytecomp.el help.el lisp.h and 272 other files Milton Wulei: changed gdb-ui.el @@ -4168,7 +4169,7 @@ 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 os.texi +N. Jackson: changed emacs.texi forms.texi gnus.info os.texi Noah Evans: changed follow.el @@ -4187,7 +4188,7 @@ Noam Postavsky: changed progmodes/python.el lisp-mode.el bytecomp.el 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 + and 362 other files Nobuyoshi Nakada: co-wrote ruby-mode.el and changed ruby-mode-tests.el @@ -4307,7 +4308,7 @@ and co-wrote cal-dst.el and changed lisp.h configure.ac alloc.c fileio.c process.c editfns.c sysdep.c xdisp.c fns.c image.c keyboard.c data.c emacs.c lread.c xterm.c eval.c gnulib-comp.m4 callproc.c Makefile.in frame.c buffer.c - and 1854 other files + and 1849 other files Paul Fisher: changed fns.c @@ -4333,7 +4334,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 mixal-mode.el reftex-vars.el reftex.el +Paul Rivier: changed ada-mode.el mixal-mode.el reftex-vars.el reftex.el Paul Rubin: changed config.h sun2.h texinfmt.el window.c @@ -4354,7 +4355,7 @@ Pavel Janík: co-wrote eudc-bob.el eudc-export.el eudc-hotlist.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 699 other files + and 702 other files Pavel Kobiakov: wrote flymake-proc.el flymake.el and changed flymake.texi @@ -4508,9 +4509,9 @@ 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 configure.ac json.c - process.c eval.c json-tests.el process-tests.el internals.texi alloc.c + process.c eval.c internals.texi json-tests.el process-tests.el alloc.c emacs-module.h.in emacs.c lread.c nsterm.m lisp.h pdumper.c bytecomp.el - callproc.c seccomp-filter.c gtkutil.c files.el and 179 other files + callproc.c seccomp-filter.c gtkutil.c files.el and 184 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 @@ -4567,6 +4568,7 @@ and changed xdisp.c comp.c fns.c pdumper.c alloc.c byte-opt.el Po Lu: changed xdisp.c browse-url.el callproc.c cc-compat.el config.bat esh-cmd.el fileio.c langinfo.h loadup.el msdos.c msdos.h nsfns.m nsterm.m process.c sed1v2.inp sed2v2.inp sed3v2.inp sedlibmk.inp + tooltip.el xterm.c Pontus Michael: changed simple.el @@ -4662,7 +4664,7 @@ Reiner Steib: wrote gmm-utils.el and changed message.el gnus.texi gnus-art.el gnus-sum.el gnus-group.el gnus.el mml.el gnus-faq.texi mm-util.el gnus-score.el message.texi gnus-msg.el gnus-start.el gnus-util.el spam-report.el mm-uu.el spam.el - mm-decode.el files.el gnus-agent.el nnmail.el and 172 other files + mm-decode.el files.el gnus-agent.el nnmail.el and 171 other files Remek Trzaska: changed gnus-ems.el @@ -4682,8 +4684,9 @@ 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 alloc.c arc-mode.el authors.el - config.bat copyright dired-x.texi dired.el dosfns.c and 35 other files + 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 37 other files Ricardo Wurmus: changed xwidget.el xwidget.c configure.ac xwidget.h @@ -4776,7 +4779,7 @@ Robert Pluim: wrote nsm-tests.el 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 134 other files + nsterm.m unicode xfns.c auth.texi composite.c and 135 other files Robert Thorpe: changed cus-start.el indent.el rmail.texi @@ -4844,9 +4847,10 @@ 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 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 + misc/Makefile.in reftex-vars.el vc-git.el TUTORIAL.de ada-mode.el + autoinsert.el building.texi bytecomp.el calc-lang.el cc-langs.el + dired.texi editfns.c emacs.c emacs.texi epa.el erc.el + and 40 other files Rui-Tao Dong: changed nnweb.el @@ -4905,7 +4909,7 @@ 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 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 + add-log.el bindings.el bookmark.el bug-reference.el and 188 other files Samuel Bronson: changed custom.el emacsclient.c keyboard.c progmodes/grep.el semantic/format.el unexmacosx.c @@ -5009,8 +5013,9 @@ Sébastien Vauban: changed org.el org-agenda.el ox-latex.el ob-core.el org-clock.el ox-ascii.el ox-html.el Seiji Zenitani: changed nsfns.m frame.c xterm.c PkgInfo document.icns - find-func.el frame.h help-fns.el macfns.c nsfont.m nsterm.m w32fns.c - xdisp.c xfns.c + find-func.el frame.h help-fns.el macfns.c + nextstep/templates/Info.plist.in nsfont.m nsterm.m w32fns.c xdisp.c + xfns.c Sen Nagata: wrote crm.el rfc2368.el @@ -5032,6 +5037,7 @@ 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 + memory-report.el Sergio Durigan Junior: changed eudcb-bbdb.el gdb-mi.el @@ -5113,9 +5119,8 @@ and co-wrote gnus-sieve.el gssapi.el mml1991.el nnfolder.el nnimap.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 + gnus-msg.el gnus.texi pgg-pgp5.el browse-url.el gnus-int.el gnus.el + hashcash.el mm-view.el password.el gnus-cache.el and 99 other files Simon Lang: changed building.texi icomplete.el misterioso-theme.el progmodes/grep.el @@ -5170,7 +5175,7 @@ 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 edebug.el - emacs-lisp-intro.texi flyspell.el ibuffer.el and 1337 other files + emacs-lisp-intro.texi flyspell.el ibuffer.el and 1334 other files Stefan Merten: co-wrote rst.el @@ -5187,7 +5192,7 @@ and co-wrote font-lock.el gitmerge.el pcvs.el 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 1616 other files + help-fns.el lread.c and 1615 other files Stefano Facchini: changed gtkutil.c @@ -5247,11 +5252,11 @@ and changed time-stamp.el time-stamp-tests.el mh-e.el mh-junk.el Stephen J. Turnbull: changed ediff-init.el strings.texi subr.el Stephen Leake: wrote elisp-mode-tests.el -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 +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 35 other files Stephen Pegoraro: changed xterm.c @@ -5335,10 +5340,9 @@ Svante Carl V. Erichsen: changed cl-indent.el Svend Tollak Munkejord: changed deuglify.el Sven Joachim: changed files.el de-refcard.tex dired-aux.el emacs.1 - arc-mode.el dired-x.el doc/misc/gnus.texi em-cmpl.el em-hist.el - em-ls.el esh-cmd.el esh-ext.el esh-io.el files.texi gnus-sum.el - gnus.texi help.el make-dist message.el movemail.c mule.texi - and 9 other files + gnus.texi arc-mode.el dired-x.el em-cmpl.el em-hist.el em-ls.el + esh-cmd.el esh-ext.el esh-io.el files.texi gnus-sum.el help.el + make-dist message.el movemail.c mule.texi sed3v2.inp and 8 other files Sylvain Chouleur: changed gnus-icalendar.el icalendar.el @@ -5365,7 +5369,7 @@ Takahashi Naoto: wrote ethio-util.el language/ethiopic.el latin-post.el and co-wrote latin-ltx.el quail.el and changed ethiopic.el fontset.el mule-conf.el -Takai Kousuke: changed ccl.el image/compface.el +Takai Kousuke: changed ccl.el compface.el Takeshi Yamada: changed fns.c @@ -5442,7 +5446,7 @@ and co-wrote hideshow.el and changed ewoc.el vc.el info.el processes.texi zone.el lisp-mode.el scheme.el text.texi vc-rcs.el display.texi fileio.c files.el vc-git.el TUTORIAL.it bindat.el cc-vars.el configure.ac dcl-mode.el diff-mode.el - dired.el elisp.texi and 168 other files + dired.el elisp.texi and 169 other files Thierry Banel: co-wrote ob-C.el and changed calc-arith.el @@ -5470,7 +5474,7 @@ 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.texi eudc-vars.el eudc.el - ntlm.el url-http.el eudcb-ldap.el eudcb-bbdb.el ntlm-tests.el + ntlm.el url-http.el eudcb-bbdb.el eudcb-ldap.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 @@ -5652,6 +5656,8 @@ Toru Tsuneyoshi: changed ange-ftp.el buff-menu.el cus-start.el fileio.c Toshiaki Nomura: changed uxpds.h +Travis Jeffery: changed nextstep/templates/Info.plist.in + Trent W. Buck: changed rcirc.el remember.el rx.el Trevor Murphy: changed find-dired.el gnus.texi nnimap.el org.el window.el @@ -5675,8 +5681,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-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 + editfns.c emacs.c frame.h gnus-group.el netbsd.h nnheader.el nnimap.el + perl-mode.el regex-emacs.c regex-emacs.h and 6 other files Tsuyoshi Akiho: changed gnus-sum.el nnrss.el diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index 6a4a15c037..78d6bb5201 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el @@ -6697,7 +6697,7 @@ Customize all loaded groups matching REGEXP. (autoload 'custom-prompt-customize-unsaved-options "cus-edit" "\ Prompt user to customize any unsaved customization options. -Return non-nil if user chooses to customize, for use in +Return nil if user chooses to customize, for use in `kill-emacs-query-functions'." nil nil) (autoload 'custom-buffer-create "cus-edit" "\ @@ -13203,7 +13203,7 @@ lines. ;;;### (autoloads nil "flymake" "progmodes/flymake.el" (0 0 0 0)) ;;; Generated autoloads from progmodes/flymake.el -(push (purecopy '(flymake 1 2 1)) package--builtin-versions) +(push (purecopy '(flymake 1 2 2)) package--builtin-versions) (autoload 'flymake-log "flymake" "\ Log, at level LEVEL, the message MSG formatted with ARGS. @@ -13365,6 +13365,9 @@ Flyspell mode is a buffer-local minor mode. When enabled, it spawns a single Ispell process and checks each word. The default flyspell behavior is to highlight incorrect words. +This mode is geared toward text modes. In buffers that contain +code, `flyspell-prog-mode' is usually a better choice. + Bindings: \\[ispell-word]: correct words (using Ispell). \\[flyspell-auto-correct-word]: automatically correct word. @@ -32437,8 +32440,8 @@ The mode's hook is called both when the mode is enabled and when it is disabled. Superword mode is a buffer-local minor mode. Enabling it changes -the definition of words such that symbols characters are treated -as parts of words: e.g., in `superword-mode', +the definition of words such that characters which have symbol +syntax are treated as parts of words: e.g., in `superword-mode', \"this_is_a_symbol\" counts as one word. \\{superword-mode-map} @@ -39508,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" diff --git a/msdos/sed2v2.inp b/msdos/sed2v2.inp index 9345a7efd6..c2bb17c546 100644 --- a/msdos/sed2v2.inp +++ b/msdos/sed2v2.inp @@ -67,7 +67,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.91"/ +/^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION "28.0.92"/ /^#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 4fd9b6097c..57c87e9c4b 100644 --- a/nt/README.W32 +++ b/nt/README.W32 @@ -1,7 +1,7 @@ Copyright (C) 2001-2022 Free Software Foundation, Inc. See the end of the file for license conditions. - Emacs version 28.0.91 for MS-Windows + Emacs version 28.0.92 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 e5b191465d200e54719361a1bf97e539b3fc4d2b Author: Eli Zaretskii Date: Sat Mar 12 03:32:47 2022 -0500 ; * admin/authors.el (authors-canonical-file-name): Remove debug leftover. diff --git a/admin/authors.el b/admin/authors.el index 0f15d0d1b8..aec52515d9 100644 --- a/admin/authors.el +++ b/admin/authors.el @@ -1501,7 +1501,7 @@ message if FILE is not found." ;; same as that from top-level/ChangeLog. (let* ((fullname (expand-file-name file (file-name-directory log-file))) (entry (assoc fullname authors-checked-files-alist)) - laxlog relname valid foo) + laxlog relname valid) (if entry (cdr entry) (setq relname (file-name-nondirectory file)) commit 6b0fdf73cf0cf70d5756afab798896040c70d9c7 Author: Eli Zaretskii Date: Sat Mar 12 03:28:45 2022 -0500 ; Fix data structures in authors.el * admin/authors.el (authors-aliases, authors-renamed-files-alist): Update and correct the databases. (authors-renamed-files-alist): Add commentary explaining how to add entries for renamed/moved files. (authors-canonical-file-name): Clarify the semantics of the arguments. diff --git a/admin/authors.el b/admin/authors.el index 8f768a83be..0f15d0d1b8 100644 --- a/admin/authors.el +++ b/admin/authors.el @@ -68,6 +68,7 @@ files.") (nil "castor@my-dejanews") (nil "chengang31@gmail.com") (nil "chuntaro") + ("Clément Pit-Claudel" "Clément Pit--Claudel") ("David Abrahams" "Dave Abrahams") ("David J. Biesack" "David Biesack") ("David De La Harpe Golden" "David Golden") @@ -242,10 +243,14 @@ files.") ("Vinicius Jose Latorre" "viniciusjl") ("Gaby Launay" "galaunay") ("Dick R. Chiang" "dickmao") + ("Lin Zhou" "georgealbert@qq.com") + (nil "yan@metatem.net") + (nil "gnu_lists@halloleo.hailmail.net") ) "Alist of author aliases. -Each entry is of the form (REALNAME REGEXP...). If an author's name +Each entry is of the form (REALNAME REGEXP...). +If an author's full name, as in \"J.R.Hacker \", matches one of the REGEXPs, use REALNAME instead. If REALNAME is nil, ignore that author.") @@ -496,6 +501,7 @@ Changes to files matching one of the regexps in this list are not listed.") "nextstep/WISHLIST" ;; Removed, replaced by gitmerge.el "admin/bzrmerge.el" + "bzrmerge.el" ;; Removed in commit f5090b91299 "lib/fdatasync.c" ;; Removed as obsolete @@ -510,8 +516,11 @@ Changes to files matching one of the regexps in this list are not listed.") "MORE.STUFF" "notes/font-backend" "src/ftxfont.c" + "ftxfont.c" "src/ptr-bounds.h" "obsolete/options.el" + "obsolete/old-whitespace.el" + "obsolete/lucid.el" ;; ada-mode has been deleted, now in GNU ELPA "ada-mode.texi" "doc/misc/ada-mode.texi" @@ -872,11 +881,9 @@ Changes to files in this list are not listed.") "gnus-compat.el" "pgg-parse.el" "pgg-pgp.el" "pgg-pgp5.el" "pgg.el" "dns-mode.el" "run-at-time.el" "gnus-encrypt.el" "sha1-el.el" "gnus-gl.el" "gnus.sum.el" "proto-stream.el" "color.el" "color-lab.el" - "eww.el" "shr-color.el" "shr.el" "earcon.el" "gnus-audio.el" "encrypt.el" - "format-spec.el" "gnus-move.el" "gnus-sync.el" - "auth-source.el" "ecomplete.el" "gravatar.el" "mailcap.el" "plstore.el" - "pop3.el" "qp.el" "registry.el" "rfc2231.el" "rtree.el" - "sieve.el" "sieve-mode.el" "gnus-ems.el" + "earcon.el" "gnus-audio.el" "encrypt.el" + "gnus-move.el" "gnus-sync.el" + "gnus-ems.el" ;; doc "getopt.c" "texindex.c" "news.texi" "vc.texi" "vc2-xtra.texi" "back.texi" "vol1.texi" "vol2.texi" "elisp-covers.texi" "two.el" @@ -957,6 +964,43 @@ in the repository.") ;; NB So only add a directory if needed to disambiguate. ;; FIXME? ;; Although perhaps we could let authors-disambiguate-file-name do that? +;; +;; WARNING: The semantics of these entries is tricky to grasp without +;; reading the code! +;; The rule is: for every file that was renamed or moved to another +;; directory, add an entry (OLD-NAME . NEW-BASENAME), where OLD-NAME +;; is the old name of the file as it appears in the ChangeLog files, +;; and NEW-BASENAME is the _basename_ of its new name. Yes, this +;; means that a file which was moved to another directory but kept its +;; basename will have a seemingly-silly entry ("foo" . "foo"). (Told +;; you: this is tricky!) If the moved/renamed file was mentioned in +;; several ChangeLog files with different leading directories, you +;; need to provide an entry for each such instance. For example, if +;; some ChangeLog mentioned a moved file as lisp/gnus/something.el and +;; another ChangeLog mentioned it as gnus/something.el, you need to +;; have two entries: +;; +;; ("gnus/something.el" . "something.el") +;; ("lisp/gnus/something.el" . "something.el") +;; +;; The important part is that the car of the entry should be identical +;; to how a file was mentioned in the respective ChangeLog. It is +;; advisable to run a Grep command such as +;; +;; fgrep -R BASENAME . --include='ChangeLog*' +;; +;; where BASENAME is the old basename of the renamed file. This will +;; show all the different reference forms of the file in the various +;; ChangeLog* files, and you can then prepare a separate entry for +;; each reference form. +;; +;; The cdr of the entry should generally be only the basename of the +;; file's current name, because that's how AUTHORS references files. +;; It _can_ have leading directories, but that is only +;; needed/advisable if there are several files in the tree that have +;; the same basename, and you want to disambiguate them, so that +;; people who actually contributed to different files aren't mentioned +;; as if they contributed to the same single file. (defconst authors-renamed-files-alist '(("nt.c" . "w32.c") ("nt.h" . "w32.h") ("ntheap.c" . "w32heap.c") ("ntheap.h" . "w32heap.h") @@ -964,8 +1008,9 @@ in the repository.") ("ntproc.c" . "w32proc.c") ("w32console.c" . "w32term.c") ("unexnt.c" . "unexw32.c") - ("s/windowsnt.h" . "s/ms-w32.h") - ("s/ms-w32.h" . "inc/ms-w32.h") + ("m/windowsnt.h" . "ms-w32.h") + ("s/windowsnt.h" . "ms-w32.h") + ("s/ms-w32.h" . "ms-w32.h") ("src/config.h" . "config.h") ("winnt.el" . "w32-fns.el") ("linux.h" . "gnu-linux.h") @@ -988,6 +1033,10 @@ in the repository.") ("INSTALL.MSYS" . "INSTALL") ("server.c" . "emacsserver.c") ("lib-src/etags.c" . "etags.c") + ;; gnulib + ("lib/strftime.c" . "nstrftime.c") + ("src/mini-gmp.c" . "mini-gmp.c") + ("src/mini-gmp.h" . "mini-gmp.h") ;; msdos/ ("is-exec.c" . "is_exec.c") ("enriched.doc" . "enriched.txt") @@ -1071,8 +1120,10 @@ in the repository.") ("nxml/test.invalid.xml" . "test-invalid.xml") ("nxml/test.valid.xml" . "test-valid.xml") ("automated/Makefile.in" . "test/Makefile.in") - ("test/rmailmm.el" . "test/manual/rmailmm.el") - ("rmailmm.el" . "test/manual/rmailmm.el") + ;; rmailmm tests wandered from test/ to test/manual to test/lisp/mail/ + ("rmailmm.el" . "rmailmm-tests.el") + ("test/rmailmm.el" . "rmailmm-tests.el") + ("test/manual/rmailmm.el" . "rmailmm-tests.el") ;; The one in lisp is eshell/eshell.el. ("eshell.el" . "eshell-tests.el") ("automated/eshell.el" . "eshell-tests.el") @@ -1104,22 +1155,79 @@ in the repository.") ("major.texi" . "modes.texi") ("msdog-xtra.texi" . "msdos-xtra.texi") ("msdog.texi" . "msdos.texi") + ;; Moved from lisp/gnus/ to lisp/ + ("auth-source.el" . "auth-source.el") + ("lisp/gnus/auth-source.el" . "auth-source.el") + ("ecomplete.el" . "ecomplete.el") + ("format-spec.el" . "format-spec.el") + ("gnus/format-spec.el" . "format-spec.el") + ("lisp/gnus/ecomplete.el" . "ecomplete.el") + ("plstore.el" . "plstore.el") + ("lisp/gnus/plstore.el" . "plstore.el") + ("registry.el" . "registry.el") + ("lisp/gnus/registry.el" . "registry.el") + ("rtree.el" . "rtree.el") ;; Moved from lisp/gnus/ to lisp/calendar/ - ("time-date.el" . "calendar/time-date.el") + ("time-date.el" . "time-date.el") ;; Moved from lisp/gnus/ to lisp/mail/ - ("binhex.el" . "mail/binhex.el") - ("uudecode.el" . "mail/uudecode.el") - ("mail-parse.el" . "mail/mail-parse.el") - ("yenc.el" . "mail/yenc.el") - ("flow-fill.el" . "mail/flow-fill.el") - ("ietf-drums.el" . "mail/ietf-drums.el") - ("sieve-manage.el" . "mail/sieve-manage.el") + ("binhex.el" . "binhex.el") + ("gnus/binhex.el" . "binhex.el") + ("uudecode.el" . "uudecode.el") + ("gnus/uudecode.el" . "uudecode.el") + ("mail-parse.el" . "mail-parse.el") + ("gnus/mail-parse.el" . "mail-parse.el") + ("mail-prsvr.el" . "mail-prsvr.el") + ("gnus/mail-prsvr.el" . "mail-prsvr.el") + ("yenc.el" . "yenc.el") + ("flow-fill.el" . "flow-fill.el") + ("gnus/flow-fill.el" . "flow-fill.el") + ("ietf-drums.el" . "ietf-drums.el") + ("gnus/ietf-drums.el" . "ietf-drums.el") + ("pop3.el" . "pop3.el") + ("mail/pop3.el" . "pop3.el") + ("gnus/pop3.el" . "pop3.el") + ("lisp/gnus/pop3.el" . "pop3.el") + ("qp.el" . "qp.el") + ("gnus/qp.el" . "qp.el") + ("lisp/gnus/qp.el" . "qp.el") + ("rfc2045.el" . "rfc2045.el") + ("gnus/rfc2045.el" . "rfc2045.el") + ("rfc2047.el" . "rfc2047.el") + ("gnus/rfc2047.el" . "rfc2047.el") + ("rfc2231.el" . "rfc2231.el") + ("gnus/rfc2231.el" . "rfc2231.el") + ("lisp/gnus/rfc2231.el" . "rfc2231.el") ;; Moved from lisp/gnus/ to lisp/image/ - ("compface.el" . "image/compface.el") + ("compface.el" . "compface.el") + ("gravatar.el" . "gravatar.el") + ("lisp/gnus/gravatar.el" . "gravatar.el") ;; Moved from lisp/gnus/ to lisp/net/ + ("eww.el" . "eww.el") + ("net/eww.el" . "eww.el") + ("lisp/new/eww.el" . "eww.el") ; an actual typo in ChangeLog.3 + ("gssapi.el" . "gssapi.el") + ("lisp/gnus/gssapi.el" . "gssapi.el") ("imap.el" . "net/imap.el") + ("mailcap.el" . "mailcap.el") + ("gnus/mailcap.el" . "mailcap.el") + ("lisp/gnus/mailcap.el" . "mailcap.el") ("rfc2104.el" . "net/rfc2104.el") - ("starttls.el" . "net/starttls.el") + ("starttls.el" . "starttls.el") + ("lisp/net/starttls.el" . "starttls.el") ; moved to obsolete/ + ("shr.el" . "shr.el") + ("net/shr.el" . "shr.el") + ("shr-color.el" . "shr-color.el") + ("sieve-manage.el" . "sieve-manage.el") + ("sieve-mode.el" . "sieve-mode.el") + ("sieve.el" . "sieve.el") + ("lisp/gnus/sieve-manage.el" . "sieve-manage.el") + ("lisp/gnus/sieve-mode.el" . "sieve-mode.el") + ("lisp/gnus/sieve.el" . "sieve.el") + ;; Moved from lisp/gnus/ to lisp/international + ("rfc1843.el" . "rfc1843.el") + ("gnus/rfc1843.el" . "rfc1843.el") + ("utf7.el" . "utf7.el") + ("gnus/utf7.el" . "utf7.el") ;; And from emacs/ to misc/ and back again. ("ns-emacs.texi" . "macos.texi") ("overrides.texi" . "gnus-overrides.texi") @@ -1134,7 +1242,7 @@ in the repository.") ("ED.WORSHIP" . "JOKES") ("GNU.JOKES" . "JOKES") ("CHARACTERS" . "TODO") - ("lisp/character-fold.el" . "lisp/char-fold.el") + ("lisp/character-fold.el" . "char-fold.el") ("test/automated/character-fold-tests.el" . "char-fold-tests.el") ("test/automated/char-fold-tests.el" . "char-fold-tests.el") ("test/lisp/character-fold-tests.el" . "char-fold-tests.el") @@ -1176,7 +1284,8 @@ in the repository.") ("grammars" . "grammars") ;; Moved from lisp/emacs-lisp/ to admin/. ("emacs-lisp/authors.el" . "authors.el") - ("emacs-lisp/find-gc.el" . "admin/find-gc.el") + ("find-gc.el" . "find-gc.el") + ("emacs-lisp/find-gc.el" . "find-gc.el") ;; From etc to lisp/cedet/semantic/. ("grammars/bovine-grammar.el" . "bovine/grammar.el") ("grammars/wisent-grammar.el" . "wisent/grammar.el") @@ -1184,28 +1293,41 @@ in the repository.") ("nt/README.W32" . "README.W32") ("notes/BRANCH" . "notes/repo") ("notes/bzr" . "notes/repo") - ;; moved from lisp/ to lisp/net/ - ("lisp/pinentry.el" . "lisp/net/pinentry.el") + ;; moved from lisp/ to lisp/net/, then removed + ("pinentry.el" . "pinentry.el") + ("lisp/pinentry.el" . "pinentry.el") + ("lisp/net/pinentry.el" . "pinentry.el") ;; module.* moved to emacs-module.* - ("src/module.h" . "src/emacs-module.h") - ("src/module.c" . "src/emacs-module.c") - ;; gnulib - ("lib/strftime.c" . "lib/nstrftime.c") - ("test/src/regex-tests.el" . "test/src/regex-emacs-tests.el") - ("test/lisp/emacs-lisp/cl-tests.el" . "test/lisp/obsolete/cl-tests.el") - ("lisp/net/starttls.el" . "lisp/obsolete/starttls.el") - ("url-ns.el" . "lisp/obsolete/url-ns.el") - ("gnus-news.texi" . "doc/misc/gnus.texi") - ("lisp/multifile.el" . "lisp/fileloop.el") - ("lisp/emacs-lisp/thread.el" . "lisp/thread.el") - ("lisp/emacs-lisp/cl.el" . "lisp/emacs-lisp/cl-lib.el") - ("lisp/progmodes/mantemp.el" . "lisp/obsolete/mantemp.el") - ("src/mini-gmp.c" . "lib/mini-gmp.c") - ("src/mini-gmp.h" . "lib/mini-gmp.h") + ("src/module.h" . "emacs-module.h") + ("src/module.c" . "emacs-module.c") + ("test/src/regex-tests.el" . "regex-emacs-tests.el") + ("test/lisp/emacs-lisp/cl-tests.el" . "cl-tests.el") + ("url-ns.el" . "url-ns.el") + ("gnus-news.texi" . "gnus.texi") + ("doc/misc/gnus-news.texi" . "gnus.texi") + ("lisp/multifile.el" . "fileloop.el") + ("lisp/emacs-lisp/thread.el" . "thread.el") + ;; cl.el was retired, replaced by cl-lib.el, and we want to + ;; pretend they are the same file... + ("emacs-lisp/cl.el" . "cl-lib.el") + ("lisp/emacs-lisp/cl.el" . "cl-lib.el") + ("lisp/obsolete/cl.el" . "cl-lib.el") + ("mantemp.el" . "mantemp.el") + ("lisp/progmodes/mantemp.el" . "mantemp.el") + ("progmodes/mantemp.el" . "mantemp.el") ("sysdep.c" . "src/sysdep.c") + ;; nnir.el started in lisp/gnus/ChangeLog.*, then was + ;; lisp/gnus/nnir.el in ChangeLog.[123], and is now + ;; lisp/obsolete/nnir.el. + ("nnir.el" . "nnir.el") ("lisp/gnus/nnir.el" . "nnir.el") - ("src/regex.c" . "emacs-regex.c") - ("src/regex.h" . "emacs-regex.h") + ;; regex.[ch] are mentioned as src/regex.[ch] in ChangeLog.[123], + ;; but as just regex.[ch] in src/ChangeLog.*, so we need 2 entries + ;; for each one of them. + ("regex.c" . "regex-emacs.c") + ("regex.h" . "regex-emacs.h") + ("src/regex.c" . "regex-emacs.c") + ("src/regex.h" . "regex-emacs.h") ("test/manual/rmailmm.el" . "rmailmm-tests.el") ("test/lisp/cedet/semantic-utest-fmt.el" . "format-tests.el") ("test/lisp/emacs-lisp/tabulated-list-test.el" . "tabulated-list-tests.el") @@ -1366,19 +1488,25 @@ Additionally, for these logs we apply the `lax' elements of (defun authors-canonical-file-name (file log-file pos author) "Return canonical file name for FILE found in LOG-FILE. +FILE is the file name as it appears in LOG-FILE, including any +leading directories mentioned there. +LOG-FILE is an absolute file name of the log file we are scanning. Checks whether FILE is a valid (existing) file name, has been renamed, or is on the list of removed files. Returns the non-directory part of -the file name. Only uses the LOG-FILE position POS and associated AUTHOR -to print a message if FILE is not found." +the file name to use for FILE in the \"AUTHORS\" file. +Only uses the LOG-FILE position POS and associated AUTHOR to print a +message if FILE is not found." ;; FILE should be re-checked in every different directory associated ;; with a LOG-FILE. Eg configure.ac from src/ChangeLog is not the ;; same as that from top-level/ChangeLog. (let* ((fullname (expand-file-name file (file-name-directory log-file))) (entry (assoc fullname authors-checked-files-alist)) - laxlog relname valid) + laxlog relname valid foo) (if entry (cdr entry) (setq relname (file-name-nondirectory file)) + ;; File names in `authors-valid-file-names' are OK by + ;; definition, so no need to check those. (if (or (member file authors-valid-file-names) (member relname authors-valid-file-names) (file-exists-p file)