commit fded822c80b386a3983315f78d664f1c6b7fa865 (HEAD, refs/remotes/origin/master) Author: Po Lu Date: Wed Feb 2 15:33:48 2022 +0800 Send button events before setting xwidget passive grab * src/xwidget.c (xwidget_button_1): Send button event before any grab processing. diff --git a/src/xwidget.c b/src/xwidget.c index 85535a35b1..9b08d47a8e 100644 --- a/src/xwidget.c +++ b/src/xwidget.c @@ -1178,6 +1178,25 @@ xwidget_button_1 (struct xwidget_view *view, if (!target) target = model->widget_osr; + xg_event = gdk_event_new (down_p ? GDK_BUTTON_PRESS : GDK_BUTTON_RELEASE); + + xg_event->any.window = gtk_widget_get_window (target); + g_object_ref (xg_event->any.window); /* The window will be unrefed + later by gdk_event_free. */ + + xg_event->button.x = x; + xg_event->button.x_root = x; + xg_event->button.y = y; + xg_event->button.y_root = y; + xg_event->button.button = button; + xg_event->button.state = modifier_state; + xg_event->button.time = time; + xg_event->button.device = find_suitable_pointer (view->frame); + + gtk_main_do_event (xg_event); + gdk_event_free (xg_event); + + if (down_p && !view->passive_grab) { view->passive_grab = target; @@ -1254,24 +1273,6 @@ xwidget_button_1 (struct xwidget_view *view, view->passive_grab = NULL; } } - - xg_event = gdk_event_new (down_p ? GDK_BUTTON_PRESS : GDK_BUTTON_RELEASE); - - xg_event->any.window = gtk_widget_get_window (target); - g_object_ref (xg_event->any.window); /* The window will be unrefed - later by gdk_event_free. */ - - xg_event->button.x = x; - xg_event->button.x_root = x; - xg_event->button.y = y; - xg_event->button.y_root = y; - xg_event->button.button = button; - xg_event->button.state = modifier_state; - xg_event->button.time = time; - xg_event->button.device = find_suitable_pointer (view->frame); - - gtk_main_do_event (xg_event); - gdk_event_free (xg_event); } void commit e7047b4aba0fa5f3a511cb0688158400f02b1485 Author: Po Lu Date: Wed Feb 2 15:18:12 2022 +0800 * src/nsselect.m (ns_get_foreign_selection): Fix GCC warning. diff --git a/src/nsselect.m b/src/nsselect.m index 13ca9b9c44..a7ef9df0e0 100644 --- a/src/nsselect.m +++ b/src/nsselect.m @@ -250,7 +250,7 @@ Updated by Christian Limpach (chris@nice.ch) NSString *type; NSEnumerator *e = [[pb types] objectEnumerator]; - while (type = [e nextObject]) + while ((type = [e nextObject])) { NSString *val = [typeLookup valueForKey:type]; if (val && ! [types containsObject:val]) commit e3e0deb86d2d1b94099a93284a96843e1a654503 Author: Po Lu Date: Wed Feb 2 15:17:20 2022 +0800 Make behaviour of `mouse-autoselect-window' consistent with X on NS * src/nsterm.m ([EmacsView mouseMoved:]): Ignore if `selected_window' is a minibuffer window. diff --git a/src/nsterm.m b/src/nsterm.m index 55e29b1644..1d7788e3e5 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -6798,6 +6798,7 @@ - (void)mouseMoved: (NSEvent *)e if (WINDOWP (window) && !EQ (window, last_mouse_window) && !EQ (window, selected_window) + && !MINI_WINDOW_P (XWINDOW (selected_window)) && (!NILP (focus_follows_mouse) || (EQ (XWINDOW (window)->frame, XWINDOW (selected_window)->frame)))) commit 93dd09c709cd16d484fea91057d5e601eac69f02 Merge: a4b9dc58eb 1bb5553619 Author: Stefan Kangas Date: Wed Feb 2 06:30:32 2022 +0100 ; Merge from origin/emacs-28 The following commit was skipped: 1bb5553619 ; Auto-commit of loaddefs files. commit a4b9dc58eb636ae7b4a609b946aac2fe0fa25d39 Merge: d4c2f5b524 9ab0b43a72 Author: Stefan Kangas Date: Wed Feb 2 06:30:32 2022 +0100 Merge from origin/emacs-28 9ab0b43a72 * etc/NEWS: Apply final fixes after proofreading. # Conflicts: # etc/NEWS commit d4c2f5b524a262934cbfac5b7a4e9affb2628a00 Author: Po Lu Date: Wed Feb 2 04:56:55 2022 +0000 Improve behaviour of `mouse-autoselect-window' on Haiku * src/haikuterm.c (haiku_read_socket): Don't select windows if the selected window is a minibuffer window or a popup is activated. diff --git a/src/haikuterm.c b/src/haikuterm.c index 0a3695df19..c25e73f8c1 100644 --- a/src/haikuterm.c +++ b/src/haikuterm.c @@ -2816,9 +2816,10 @@ haiku_read_socket (struct terminal *terminal, struct input_event *hold_quit) if (WINDOWP (window) && !EQ (window, last_mouse_window) && !EQ (window, selected_window) + && !popup_activated_p + && !MINI_WINDOW_P (XWINDOW (selected_window)) && (!NILP (focus_follows_mouse) - || (EQ (XWINDOW (window)->frame, - XWINDOW (selected_window)->frame)))) + || f == SELECTED_FRAME ())) { inev.kind = SELECT_WINDOW_EVENT; inev.frame_or_window = window; commit 6869679be50346932877921b832c86b5b4ad6a97 Author: Po Lu Date: Wed Feb 2 02:25:00 2022 +0000 Fix display of vertical window dividers on Haiku * src/haikuterm.c (haiku_draw_window_divider): Make drawing consistent with X. diff --git a/src/haikuterm.c b/src/haikuterm.c index c6c92227b8..0a3695df19 100644 --- a/src/haikuterm.c +++ b/src/haikuterm.c @@ -1916,11 +1916,11 @@ haiku_draw_window_divider (struct window *w, int x0, int x1, int y0, int y1) last pixels differently. */ { BView_SetHighColor (view, color_first); - BView_StrokeLine (f, x0, y0, x1 - 1, y0); + BView_StrokeLine (view, x0, y0, x1 - 1, y0); BView_SetHighColor (view, color); BView_FillRectangle (view, x0, y0 + 1, x1 - x0, y1 - y0 - 2); BView_SetHighColor (view, color_last); - BView_StrokeLine (view, x0, y1, x1 - 1, y1); + BView_FillRectangle (view, x0, y1 - 1, x1 - x0, 1); } else { commit f1f0608fd1316b4f9a0fde99293e0c9ee5ef7ea3 Author: Po Lu Date: Wed Feb 2 09:17:31 2022 +0800 Don't use XRender to fill rectangles unless an alpha channel exists * src/xterm.c (x_clear_area): Don't use XRender unless `alpha_bits' is set. diff --git a/src/xterm.c b/src/xterm.c index 843483b594..68488b3ef5 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -4769,7 +4769,8 @@ x_clear_area (struct frame *f, int x, int y, int width, int height) #if defined HAVE_XRENDER && \ (RENDER_MAJOR > 0 || (RENDER_MINOR >= 2)) x_xr_ensure_picture (f); - if (FRAME_X_PICTURE (f) != None + if (FRAME_DISPLAY_INFO (f)->alpha_bits + && FRAME_X_PICTURE (f) != None && FRAME_CHECK_XR_VERSION (f, 0, 2)) { XRenderColor xc; commit bb4821c91ec88d9cc2f3273e270c90c0b1dc681a Author: Stefan Kangas Date: Wed Feb 2 00:59:28 2022 +0100 ; Auto-commit of loaddefs files. diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index 6ddce2eba3..9f5169605b 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el @@ -8580,8 +8580,8 @@ Locate SOA record and increment the serial field." t nil) (autoload 'doc-view-mode-p "doc-view" "\ Return non-nil if document type TYPE is available for `doc-view'. -Document types are symbols like `dvi', `ps', `pdf', or `odf' (any -OpenDocument format). +Document types are symbols like `dvi', `ps', `pdf', `epub', +`cbz', `fb2', `xps', `oxps', or`odf' (any OpenDocument format). \(fn TYPE)" nil nil) @@ -10407,6 +10407,14 @@ displayed." t nil) (register-definition-prefixes "elp" '("elp-")) +;;;*** + +;;;### (autoloads nil "em-extpipe" "eshell/em-extpipe.el" (0 0 0 +;;;;;; 0)) +;;; Generated autoloads from eshell/em-extpipe.el + +(register-definition-prefixes "em-extpipe" '("eshell-")) + ;;;*** ;;;### (autoloads nil "emacs-lock" "emacs-lock.el" (0 0 0 0)) @@ -13923,11 +13931,11 @@ and choose the directory as the fortune-file. ;;;### (autoloads nil "frameset" "frameset.el" (0 0 0 0)) ;;; Generated autoloads from frameset.el -(defvar frameset-session-filter-alist '((name . :never) (left . frameset-filter-iconified) (minibuffer . frameset-filter-minibuffer) (top . frameset-filter-iconified)) "\ +(defvar frameset-session-filter-alist (append '((left . frameset-filter-iconified) (minibuffer . frameset-filter-minibuffer) (top . frameset-filter-iconified)) (mapcar (lambda (p) (cons p :never)) frame-internal-parameters)) "\ Minimum set of parameters to filter for live (on-session) framesets. DO NOT MODIFY. See `frameset-filter-alist' for a full description.") -(defvar frameset-persistent-filter-alist (append '((background-color . frameset-filter-sanitize-color) (buffer-list . :never) (buffer-predicate . :never) (buried-buffer-list . :never) (client . :never) (delete-before . :never) (font . frameset-filter-font-param) (font-backend . :never) (foreground-color . frameset-filter-sanitize-color) (frameset--text-pixel-height . :save) (frameset--text-pixel-width . :save) (fullscreen . frameset-filter-shelve-param) (GUI:font . frameset-filter-unshelve-param) (GUI:fullscreen . frameset-filter-unshelve-param) (GUI:height . frameset-filter-unshelve-param) (GUI:width . frameset-filter-unshelve-param) (height . frameset-filter-shelve-param) (outer-window-id . :never) (parent-frame . :never) (parent-id . :never) (mouse-wheel-frame . :never) (tty . frameset-filter-tty-to-GUI) (tty-type . frameset-filter-tty-to-GUI) (width . frameset-filter-shelve-param) (window-id . :never) (window-system . :never)) frameset-session-filter-alist) "\ +(defvar frameset-persistent-filter-alist (append '((background-color . frameset-filter-sanitize-color) (buffer-list . :never) (buffer-predicate . :never) (buried-buffer-list . :never) (client . :never) (delete-before . :never) (font . frameset-filter-font-param) (font-backend . :never) (foreground-color . frameset-filter-sanitize-color) (frameset--text-pixel-height . :save) (frameset--text-pixel-width . :save) (fullscreen . frameset-filter-shelve-param) (GUI:font . frameset-filter-unshelve-param) (GUI:fullscreen . frameset-filter-unshelve-param) (GUI:height . frameset-filter-unshelve-param) (GUI:width . frameset-filter-unshelve-param) (height . frameset-filter-shelve-param) (parent-frame . :never) (mouse-wheel-frame . :never) (tty . frameset-filter-tty-to-GUI) (tty-type . frameset-filter-tty-to-GUI) (width . frameset-filter-shelve-param) (window-system . :never)) frameset-session-filter-alist) "\ Parameters to filter for persistent framesets. DO NOT MODIFY. See `frameset-filter-alist' for a full description.") @@ -40107,23 +40115,24 @@ Zone out, completely." t nil) ;;;### (autoloads nil nil ("abbrev.el" "bindings.el" "buff-menu.el" ;;;;;; "button.el" "calc/calc-aent.el" "calc/calc-embed.el" "calc/calc-misc.el" -;;;;;; "calc/calc-yank.el" "case-table.el" "cedet/ede/cpp-root.el" -;;;;;; "cedet/ede/custom.el" "cedet/ede/dired.el" "cedet/ede/emacs.el" -;;;;;; "cedet/ede/files.el" "cedet/ede/generic.el" "cedet/ede/linux.el" -;;;;;; "cedet/ede/locate.el" "cedet/ede/make.el" "cedet/ede/speedbar.el" -;;;;;; "cedet/ede/system.el" "cedet/ede/util.el" "cedet/semantic/analyze.el" -;;;;;; "cedet/semantic/analyze/complete.el" "cedet/semantic/analyze/refs.el" -;;;;;; "cedet/semantic/bovine.el" "cedet/semantic/bovine/c-by.el" -;;;;;; "cedet/semantic/bovine/c.el" "cedet/semantic/bovine/el.el" -;;;;;; "cedet/semantic/bovine/gcc.el" "cedet/semantic/bovine/make-by.el" -;;;;;; "cedet/semantic/bovine/make.el" "cedet/semantic/bovine/scm-by.el" -;;;;;; "cedet/semantic/bovine/scm.el" "cedet/semantic/complete.el" -;;;;;; "cedet/semantic/ctxt.el" "cedet/semantic/db-file.el" "cedet/semantic/db-find.el" -;;;;;; "cedet/semantic/db-global.el" "cedet/semantic/db-mode.el" -;;;;;; "cedet/semantic/db-typecache.el" "cedet/semantic/db.el" "cedet/semantic/debug.el" -;;;;;; "cedet/semantic/decorate/include.el" "cedet/semantic/decorate/mode.el" -;;;;;; "cedet/semantic/dep.el" "cedet/semantic/doc.el" "cedet/semantic/edit.el" -;;;;;; "cedet/semantic/find.el" "cedet/semantic/format.el" "cedet/semantic/grammar-wy.el" +;;;;;; "calc/calc-yank.el" "case-table.el" "cedet/ede/base.el" "cedet/ede/config.el" +;;;;;; "cedet/ede/cpp-root.el" "cedet/ede/custom.el" "cedet/ede/dired.el" +;;;;;; "cedet/ede/emacs.el" "cedet/ede/files.el" "cedet/ede/generic.el" +;;;;;; "cedet/ede/linux.el" "cedet/ede/locate.el" "cedet/ede/make.el" +;;;;;; "cedet/ede/shell.el" "cedet/ede/speedbar.el" "cedet/ede/system.el" +;;;;;; "cedet/ede/util.el" "cedet/semantic/analyze.el" "cedet/semantic/analyze/complete.el" +;;;;;; "cedet/semantic/analyze/refs.el" "cedet/semantic/bovine.el" +;;;;;; "cedet/semantic/bovine/c-by.el" "cedet/semantic/bovine/c.el" +;;;;;; "cedet/semantic/bovine/el.el" "cedet/semantic/bovine/gcc.el" +;;;;;; "cedet/semantic/bovine/make-by.el" "cedet/semantic/bovine/make.el" +;;;;;; "cedet/semantic/bovine/scm-by.el" "cedet/semantic/bovine/scm.el" +;;;;;; "cedet/semantic/complete.el" "cedet/semantic/ctxt.el" "cedet/semantic/db-file.el" +;;;;;; "cedet/semantic/db-find.el" "cedet/semantic/db-global.el" +;;;;;; "cedet/semantic/db-mode.el" "cedet/semantic/db-typecache.el" +;;;;;; "cedet/semantic/db.el" "cedet/semantic/debug.el" "cedet/semantic/decorate/include.el" +;;;;;; "cedet/semantic/decorate/mode.el" "cedet/semantic/dep.el" +;;;;;; "cedet/semantic/doc.el" "cedet/semantic/edit.el" "cedet/semantic/find.el" +;;;;;; "cedet/semantic/format.el" "cedet/semantic/grammar-wy.el" ;;;;;; "cedet/semantic/grm-wy-boot.el" "cedet/semantic/html.el" ;;;;;; "cedet/semantic/ia-sb.el" "cedet/semantic/ia.el" "cedet/semantic/idle.el" ;;;;;; "cedet/semantic/imenu.el" "cedet/semantic/lex-spp.el" "cedet/semantic/lex.el" @@ -40142,8 +40151,8 @@ Zone out, completely." t nil) ;;;;;; "cedet/srecode/insert.el" "cedet/srecode/java.el" "cedet/srecode/map.el" ;;;;;; "cedet/srecode/mode.el" "cedet/srecode/srt-wy.el" "cedet/srecode/srt.el" ;;;;;; "cedet/srecode/template.el" "cedet/srecode/texi.el" "composite.el" -;;;;;; "cus-face.el" "cus-load.el" "cus-start.el" "custom.el" "dired-aux.el" -;;;;;; "dired-x.el" "electric.el" "emacs-lisp/backquote.el" "emacs-lisp/byte-run.el" +;;;;;; "cus-face.el" "cus-start.el" "custom.el" "dired-aux.el" "dired-x.el" +;;;;;; "electric.el" "emacs-lisp/backquote.el" "emacs-lisp/byte-run.el" ;;;;;; "emacs-lisp/cl-extra.el" "emacs-lisp/cl-macs.el" "emacs-lisp/cl-preloaded.el" ;;;;;; "emacs-lisp/cl-seq.el" "emacs-lisp/easymenu.el" "emacs-lisp/eieio-custom.el" ;;;;;; "emacs-lisp/eieio-opt.el" "emacs-lisp/float-sup.el" "emacs-lisp/lisp-mode.el" @@ -40165,47 +40174,35 @@ Zone out, completely." t nil) ;;;;;; "eshell/em-pred.el" "eshell/em-prompt.el" "eshell/em-rebind.el" ;;;;;; "eshell/em-script.el" "eshell/em-smart.el" "eshell/em-term.el" ;;;;;; "eshell/em-tramp.el" "eshell/em-unix.el" "eshell/em-xtra.el" -;;;;;; "eshell/esh-groups.el" "faces.el" "files.el" "finder-inf.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/charprop.el" "international/charscript.el" -;;;;;; "international/cp51932.el" "international/emoji-labels.el" -;;;;;; "international/emoji-zwj.el" "international/eucjp-ms.el" -;;;;;; "international/idna-mapping.el" "international/iso-transl.el" -;;;;;; "international/mule-cmds.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-confusable.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-scripts.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" "keymap.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" "language/indian.el" -;;;;;; "language/japanese.el" "language/khmer.el" "language/korean.el" -;;;;;; "language/lao.el" "language/misc-lang.el" "language/romanian.el" -;;;;;; "language/sinhala.el" "language/slovak.el" "language/tai-viet.el" -;;;;;; "language/thai.el" "language/tibetan.el" "language/utf-8-lang.el" -;;;;;; "language/vietnamese.el" "ldefs-boot.el" "leim/ja-dic/ja-dic.el" -;;;;;; "leim/leim-list.el" "leim/quail/4Corner.el" "leim/quail/ARRAY30.el" -;;;;;; "leim/quail/CCDOSPY.el" "leim/quail/CTLau-b5.el" "leim/quail/CTLau.el" -;;;;;; "leim/quail/ECDICT.el" "leim/quail/ETZY.el" "leim/quail/PY-b5.el" -;;;;;; "leim/quail/PY.el" "leim/quail/Punct-b5.el" "leim/quail/Punct.el" -;;;;;; "leim/quail/QJ-b5.el" "leim/quail/QJ.el" "leim/quail/SW.el" -;;;;;; "leim/quail/TONEPY.el" "leim/quail/ZIRANMA.el" "leim/quail/ZOZY.el" -;;;;;; "leim/quail/arabic.el" "leim/quail/cham.el" "leim/quail/compose.el" -;;;;;; "leim/quail/croatian.el" "leim/quail/cyril-jis.el" "leim/quail/cyrillic.el" -;;;;;; "leim/quail/czech.el" "leim/quail/emoji.el" "leim/quail/georgian.el" -;;;;;; "leim/quail/greek.el" "leim/quail/hanja-jis.el" "leim/quail/hanja.el" -;;;;;; "leim/quail/hanja3.el" "leim/quail/hebrew.el" "leim/quail/ipa-praat.el" -;;;;;; "leim/quail/latin-alt.el" "leim/quail/latin-ltx.el" "leim/quail/latin-post.el" -;;;;;; "leim/quail/latin-pre.el" "leim/quail/persian.el" "leim/quail/programmer-dvorak.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" +;;;;;; "international/iso-transl.el" "international/mule-cmds.el" +;;;;;; "international/mule-conf.el" "international/mule.el" "isearch.el" +;;;;;; "jit-lock.el" "jka-cmpr-hook.el" "keymap.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" "language/indian.el" "language/japanese.el" +;;;;;; "language/khmer.el" "language/korean.el" "language/lao.el" +;;;;;; "language/misc-lang.el" "language/romanian.el" "language/sinhala.el" +;;;;;; "language/slovak.el" "language/tai-viet.el" "language/thai.el" +;;;;;; "language/tibetan.el" "language/utf-8-lang.el" "language/vietnamese.el" +;;;;;; "ldefs-boot.el" "leim/ja-dic/ja-dic.el" "leim/leim-list.el" +;;;;;; "leim/quail/4Corner.el" "leim/quail/ARRAY30.el" "leim/quail/CCDOSPY.el" +;;;;;; "leim/quail/CTLau-b5.el" "leim/quail/CTLau.el" "leim/quail/ECDICT.el" +;;;;;; "leim/quail/ETZY.el" "leim/quail/PY-b5.el" "leim/quail/PY.el" +;;;;;; "leim/quail/Punct-b5.el" "leim/quail/Punct.el" "leim/quail/QJ-b5.el" +;;;;;; "leim/quail/QJ.el" "leim/quail/SW.el" "leim/quail/TONEPY.el" +;;;;;; "leim/quail/ZIRANMA.el" "leim/quail/ZOZY.el" "leim/quail/arabic.el" +;;;;;; "leim/quail/cham.el" "leim/quail/compose.el" "leim/quail/croatian.el" +;;;;;; "leim/quail/cyril-jis.el" "leim/quail/cyrillic.el" "leim/quail/czech.el" +;;;;;; "leim/quail/emoji.el" "leim/quail/georgian.el" "leim/quail/greek.el" +;;;;;; "leim/quail/hanja-jis.el" "leim/quail/hanja.el" "leim/quail/hanja3.el" +;;;;;; "leim/quail/hebrew.el" "leim/quail/ipa-praat.el" "leim/quail/latin-alt.el" +;;;;;; "leim/quail/latin-ltx.el" "leim/quail/latin-post.el" "leim/quail/latin-pre.el" +;;;;;; "leim/quail/persian.el" "leim/quail/programmer-dvorak.el" ;;;;;; "leim/quail/py-punct.el" "leim/quail/pypunct-b5.el" "leim/quail/quick-b5.el" ;;;;;; "leim/quail/quick-cns.el" "leim/quail/rfc1345.el" "leim/quail/sami.el" ;;;;;; "leim/quail/sgml-input.el" "leim/quail/slovak.el" "leim/quail/symbol-ksc.el" commit 1bb55536194e59b583b8711101f6a69a9442cfea (refs/remotes/origin/emacs-28) Author: Stefan Kangas Date: Wed Feb 2 00:57:27 2022 +0100 ; Auto-commit of loaddefs files. diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index 9393d464fa..6a4a15c037 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el @@ -7872,7 +7872,7 @@ any buffer where (dictionary-tooltip-mode 1) has been called. \(fn &optional ARG)" t nil) -(autoload 'context-menu-dictionary "dictionary" "\ +(autoload 'dictionary-context-menu "dictionary" "\ Populate MENU with dictionary commands at CLICK. When you add this function to `context-menu-functions', the context menu will contain an item that searches @@ -39508,21 +39508,11 @@ 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/charprop.el" -;;;;;; "international/charscript.el" "international/cp51932.el" -;;;;;; "international/emoji-zwj.el" "international/eucjp-ms.el" +;;;;;; "ibuf-ext.el" "indent.el" "international/characters.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" "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" +;;;;;; "international/mule-conf.el" "international/mule.el" "isearch.el" +;;;;;; "jit-lock.el" "jka-cmpr-hook.el" "language/burmese.el" "language/cham.el" ;;;;;; "language/chinese.el" "language/cyrillic.el" "language/czech.el" ;;;;;; "language/english.el" "language/ethiopic.el" "language/european.el" ;;;;;; "language/georgian.el" "language/greek.el" "language/hebrew.el" commit 749ba35bf5e0974384550a0763fd27f08db0678c Author: Juri Linkov Date: Tue Feb 1 22:07:20 2022 +0200 * lisp/replace.el (query-replace-read-from-default): New variable. (query-replace-read-from-regexp-default): New variable. (query-replace-read-from): Use new variables. * lisp/progmodes/project.el (project-query-replace-regexp): Let-bind query-replace-read-from-regexp-default to find-tag-default-as-regexp. * lisp/progmodes/xref.el (xref-find-references-and-replace): Let-bind query-replace-read-from-default to find-tag-default. https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg01909.html diff --git a/etc/NEWS b/etc/NEWS index 5d4a59975c..c2975b783d 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1237,6 +1237,17 @@ inhibits 'isearch' matching the STRING parameter. ** New function 'replace-regexp-function'. It can be used to implement own regexp syntax for search/replace. +--- +** New variable 'query-replace-read-from-default'. +It can be set to a function that returns the default value (such as +'find-tag-default') when 'query-replace' reads a string to replace. +Another new variable 'query-replace-read-from-regexp-default' +can be set to a function that returns the default value (such as +'find-tag-default-as-regexp') when 'query-replace-regexp' +reads a regexp to replace. When these variables are nil +(which is the default) then 'query-replace' uses the previous +replacement from-to pair as the default value. + --- ** New user option 'pp-use-max-width'. If non-nil, 'pp' will attempt to limit the line length when formatting diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index c812f28c1b..f606a25575 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -1072,9 +1072,10 @@ Stops when a match is found and prompts for whether to replace it. If you exit the `query-replace', you can later continue the `query-replace' loop using the command \\[fileloop-continue]." (interactive - (pcase-let ((`(,from ,to) - (query-replace-read-args "Query replace (regexp)" t t))) - (list from to))) + (let ((query-replace-read-from-regexp-default 'find-tag-default-as-regexp)) + (pcase-let ((`(,from ,to) + (query-replace-read-args "Query replace (regexp)" t t))) + (list from to)))) (fileloop-initialize-replace from to (project-files (project-current t)) 'default) (fileloop-continue)) diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index 37e2159782..4efa652084 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -1481,8 +1481,9 @@ is nil, prompt only if there's no usable symbol at point." (defun xref-find-references-and-replace (from to) "Replace all references to identifier FROM with TO." (interactive - (let ((common - (query-replace-read-args "Query replace identifier" nil))) + (let* ((query-replace-read-from-default 'find-tag-default) + (common + (query-replace-read-args "Query replace identifier" nil))) (list (nth 0 common) (nth 1 common)))) (require 'xref) (with-current-buffer diff --git a/lisp/replace.el b/lisp/replace.el index 689a3f77ed..91cd2b3420 100644 --- a/lisp/replace.el +++ b/lisp/replace.el @@ -186,6 +186,12 @@ See `replace-regexp' and `query-replace-regexp-eval'.") length) length))))) +(defvar query-replace-read-from-default nil + "Function to get default non-regexp value for `query-replace-read-from'.") + +(defvar query-replace-read-from-regexp-default nil + "Function to get default regexp value for `query-replace-read-from'.") + (defun query-replace-read-from-suggestions () "Return a list of standard suggestions for `query-replace-read-from'. By default, the list includes the active region, the identifier @@ -234,7 +240,10 @@ wants to replace FROM with TO." (symbol-value query-replace-from-history-variable))) (minibuffer-allow-text-properties t) ; separator uses text-properties (prompt - (cond ((and query-replace-defaults separator) + (cond ((and query-replace-read-from-regexp-default regexp-flag) prompt) + ((and query-replace-read-from-default (not regexp-flag)) + (format-prompt prompt (funcall query-replace-read-from-default))) + ((and query-replace-defaults separator) (format-prompt prompt (car minibuffer-history))) (query-replace-defaults (format-prompt @@ -255,10 +264,19 @@ wants to replace FROM with TO." (append '((separator . t) (face . t)) text-property-default-nonsticky))) (if regexp-flag - (read-regexp prompt nil 'minibuffer-history) + (read-regexp + (if query-replace-read-from-regexp-default + (string-remove-suffix ": " prompt) + prompt) + query-replace-read-from-regexp-default + 'minibuffer-history) (read-from-minibuffer prompt nil nil nil nil - (query-replace-read-from-suggestions) t))))) + (if query-replace-read-from-default + (cons (funcall query-replace-read-from-default) + (query-replace-read-from-suggestions)) + (query-replace-read-from-suggestions)) + t))))) (to)) (if (and (zerop (length from)) query-replace-defaults) (cons (caar query-replace-defaults) commit 4af491605c58a4033116f17be15977e9b885fdee Author: Mattias Engdegård Date: Tue Feb 1 20:43:15 2022 +0100 ; * src/eval.c (funcall_subr): Fix last change diff --git a/src/eval.c b/src/eval.c index 4f1c907751..3e648ed621 100644 --- a/src/eval.c +++ b/src/eval.c @@ -3105,60 +3105,64 @@ Lisp_Object funcall_subr (struct Lisp_Subr *subr, ptrdiff_t numargs, Lisp_Object *args) { eassume (numargs >= 0); - /* Conforming call to finite-arity subr. */ - if (numargs >= subr->min_args && numargs <= subr->max_args) + if (numargs >= subr->min_args) { - Lisp_Object argbuf[8]; - Lisp_Object *a; - if (numargs < subr->max_args) - { - eassume (subr->max_args <= ARRAYELTS (argbuf)); - a = argbuf; - memcpy (a, args, numargs * word_size); - memclear (a + numargs, (subr->max_args - numargs) * word_size); - } - else - a = args; - switch (subr->max_args) - { - case 0: - return subr->function.a0 (); - case 1: - return subr->function.a1 (a[0]); - case 2: - return subr->function.a2 (a[0], a[1]); - case 3: - return subr->function.a3 (a[0], a[1], a[2]); - case 4: - return subr->function.a4 (a[0], a[1], a[2], a[3]); - case 5: - return subr->function.a5 (a[0], a[1], a[2], a[3], a[4]); - case 6: - return subr->function.a6 (a[0], a[1], a[2], a[3], a[4], a[5]); - case 7: - return subr->function.a7 (a[0], a[1], a[2], a[3], a[4], a[5], a[6]); - case 8: - return subr->function.a8 (a[0], a[1], a[2], a[3], a[4], a[5], a[6], - a[7]); - default: - /* If a subr takes more than 8 arguments without using MANY - or UNEVALLED, we need to extend this function to support it. - Until this is done, there is no way to call the function. */ - emacs_abort (); - } - } + /* Conforming call to finite-arity subr. */ + if (numargs <= subr->max_args) + { + Lisp_Object argbuf[8]; + Lisp_Object *a; + if (numargs < subr->max_args) + { + eassume (subr->max_args <= ARRAYELTS (argbuf)); + a = argbuf; + memcpy (a, args, numargs * word_size); + memclear (a + numargs, (subr->max_args - numargs) * word_size); + } + else + a = args; + switch (subr->max_args) + { + case 0: + return subr->function.a0 (); + case 1: + return subr->function.a1 (a[0]); + case 2: + return subr->function.a2 (a[0], a[1]); + case 3: + return subr->function.a3 (a[0], a[1], a[2]); + case 4: + return subr->function.a4 (a[0], a[1], a[2], a[3]); + case 5: + return subr->function.a5 (a[0], a[1], a[2], a[3], a[4]); + case 6: + return subr->function.a6 (a[0], a[1], a[2], a[3], a[4], a[5]); + case 7: + return subr->function.a7 (a[0], a[1], a[2], a[3], a[4], a[5], + a[6]); + case 8: + return subr->function.a8 (a[0], a[1], a[2], a[3], a[4], a[5], + a[6], a[7]); + default: + /* If a subr takes more than 8 arguments without using MANY + or UNEVALLED, we need to extend this function to support it. + Until this is done, there is no way to call the function. */ + emacs_abort (); + } + } - /* Call to n-adic subr. */ - if (subr->max_args == MANY) - return subr->function.aMANY (numargs, args); + /* Call to n-adic subr. */ + if (subr->max_args == MANY) + return subr->function.aMANY (numargs, args); + } /* Anything else is an error. */ Lisp_Object fun; XSETSUBR (fun, subr); - if (subr->max_args >= 0) - xsignal2 (Qwrong_number_of_arguments, fun, make_fixnum (numargs)); - else + if (subr->max_args == UNEVALLED) xsignal1 (Qinvalid_function, fun); + else + xsignal2 (Qwrong_number_of_arguments, fun, make_fixnum (numargs)); } /* Call the compiled Lisp function FUN. If we have not yet read FUN's commit e94f08b2d9b3dc77b5ffc609b62f54f9730895ef Author: Juri Linkov Date: Tue Feb 1 21:42:51 2022 +0200 * lisp/tab-line.el: Support non-buffer tabs in some tab face functions. (tab-line-tab-face-special, tab-line-tab-face-modified): For non-buffer tabs when 'tab-line-tabs-function' is e.g. 'tab-line-tabs-buffer-groups', try to get the buffer from the property 'buffer'. https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg01923.html diff --git a/lisp/tab-line.el b/lisp/tab-line.el index 1c1217cdf6..24033945f0 100644 --- a/lisp/tab-line.el +++ b/lisp/tab-line.el @@ -558,8 +558,9 @@ inherit from `tab-line-tab-inactive-alternate'. For use in When TAB is a non-file-visiting buffer, make FACE inherit from `tab-line-tab-special'. For use in `tab-line-tab-face-functions'." - (when (and buffer-p (not (buffer-file-name tab))) - (setf face `(:inherit (tab-line-tab-special ,face)))) + (let ((buffer (if buffer-p tab (cdr (assq 'buffer tab))))) + (when (and buffer (not (buffer-file-name buffer))) + (setf face `(:inherit (tab-line-tab-special ,face))))) face) (defun tab-line-tab-face-modified (tab _tabs face buffer-p _selected-p) @@ -567,8 +568,9 @@ When TAB is a non-file-visiting buffer, make FACE inherit from When TAB is a modified, file-backed buffer, make FACE inherit from `tab-line-tab-modified'. For use in `tab-line-tab-face-functions'." - (when (and buffer-p (buffer-file-name tab) (buffer-modified-p tab)) - (setf face `(:inherit (tab-line-tab-modified ,face)))) + (let ((buffer (if buffer-p tab (cdr (assq 'buffer tab))))) + (when (and buffer (buffer-file-name buffer) (buffer-modified-p buffer)) + (setf face `(:inherit (tab-line-tab-modified ,face))))) face) (defun tab-line-tab-face-group (tab _tabs face _buffer-p _selected-p) commit 02054d9cd1f5c6a5ca3555207235522532477e10 Author: Andrea Corallo Date: Tue Feb 1 17:58:47 2022 +0100 * Improve 'maybe_defer_native_compilation' * src/comp.c (maybe_defer_native_compilation): Always store the function name in Vcomp_deferred_pending_h if pending for deferred compilation. diff --git a/src/comp.c b/src/comp.c index 5efe026b2b..251613dc3d 100644 --- a/src/comp.c +++ b/src/comp.c @@ -5127,13 +5127,14 @@ maybe_defer_native_compilation (Lisp_Object function_name, return; } + Fputhash (function_name, definition, Vcomp_deferred_pending_h); + /* This is so deferred compilation is able to compile comp dependencies breaking circularity. */ if (comp__compilable) { /* Startup is done, comp is usable. */ CALL0I (startup--require-comp-safely); - Fputhash (function_name, definition, Vcomp_deferred_pending_h); CALLN (Ffuncall, intern_c_string ("native--compile-async"), src, Qnil, Qlate); } commit 665ec8946df0e09dec703d7ee3909be6056141db Author: Andrea Corallo Date: Tue Feb 1 16:32:09 2022 +0100 * lisp/startup.el (startup--require-comp-safely): Fix typo in a92c6191b0 diff --git a/lisp/startup.el b/lisp/startup.el index aa06125171..d838dd6827 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -523,7 +523,7 @@ DIRS are relative." (defvar comp--delayed-sources) (defun startup--require-comp-safely () "Require the native compiler avoiding circular dependencies." - (unless (featurep 'native-compile) + (when (featurep 'native-compile) ;; Require comp with `comp--compilable' set to nil to break ;; circularity. (let ((comp--compilable nil)) commit a20f2b0ff9f8adcc4ca2f2be56109a7d72d11847 Author: Mattias Engdegård Date: Tue Feb 1 16:18:47 2022 +0100 Speed up calls to C primitives * src/eval.c (funcall_subr): Test most likely cases first (conforming calls to finite-arity or n-adic SUBRs), and the error cases last, instead of doing it the other way around. Simplify. diff --git a/src/eval.c b/src/eval.c index 4e8a4e9d9d..4f1c907751 100644 --- a/src/eval.c +++ b/src/eval.c @@ -3104,80 +3104,61 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */) Lisp_Object funcall_subr (struct Lisp_Subr *subr, ptrdiff_t numargs, Lisp_Object *args) { - if (numargs < subr->min_args - || (subr->max_args >= 0 && subr->max_args < numargs)) + eassume (numargs >= 0); + /* Conforming call to finite-arity subr. */ + if (numargs >= subr->min_args && numargs <= subr->max_args) { - Lisp_Object fun; - XSETSUBR (fun, subr); - xsignal2 (Qwrong_number_of_arguments, fun, make_fixnum (numargs)); - } - - else if (subr->max_args == UNEVALLED) - { - Lisp_Object fun; - XSETSUBR (fun, subr); - xsignal1 (Qinvalid_function, fun); - } - - else if (subr->max_args == MANY) - return (subr->function.aMANY) (numargs, args); - else - { - Lisp_Object internal_argbuf[8]; - Lisp_Object *internal_args; - if (subr->max_args > numargs) + Lisp_Object argbuf[8]; + Lisp_Object *a; + if (numargs < subr->max_args) { - eassert (subr->max_args <= ARRAYELTS (internal_argbuf)); - internal_args = internal_argbuf; - memcpy (internal_args, args, numargs * word_size); - memclear (internal_args + numargs, - (subr->max_args - numargs) * word_size); + eassume (subr->max_args <= ARRAYELTS (argbuf)); + a = argbuf; + memcpy (a, args, numargs * word_size); + memclear (a + numargs, (subr->max_args - numargs) * word_size); } else - internal_args = args; + a = args; switch (subr->max_args) { case 0: - return (subr->function.a0 ()); + return subr->function.a0 (); case 1: - return (subr->function.a1 (internal_args[0])); + return subr->function.a1 (a[0]); case 2: - return (subr->function.a2 - (internal_args[0], internal_args[1])); + return subr->function.a2 (a[0], a[1]); case 3: - return (subr->function.a3 - (internal_args[0], internal_args[1], internal_args[2])); + return subr->function.a3 (a[0], a[1], a[2]); case 4: - return (subr->function.a4 - (internal_args[0], internal_args[1], internal_args[2], - internal_args[3])); + return subr->function.a4 (a[0], a[1], a[2], a[3]); case 5: - return (subr->function.a5 - (internal_args[0], internal_args[1], internal_args[2], - internal_args[3], internal_args[4])); + return subr->function.a5 (a[0], a[1], a[2], a[3], a[4]); case 6: - return (subr->function.a6 - (internal_args[0], internal_args[1], internal_args[2], - internal_args[3], internal_args[4], internal_args[5])); + return subr->function.a6 (a[0], a[1], a[2], a[3], a[4], a[5]); case 7: - return (subr->function.a7 - (internal_args[0], internal_args[1], internal_args[2], - internal_args[3], internal_args[4], internal_args[5], - internal_args[6])); + return subr->function.a7 (a[0], a[1], a[2], a[3], a[4], a[5], a[6]); case 8: - return (subr->function.a8 - (internal_args[0], internal_args[1], internal_args[2], - internal_args[3], internal_args[4], internal_args[5], - internal_args[6], internal_args[7])); - + return subr->function.a8 (a[0], a[1], a[2], a[3], a[4], a[5], a[6], + a[7]); default: - /* If a subr takes more than 8 arguments without using MANY or UNEVALLED, we need to extend this function to support it. Until this is done, there is no way to call the function. */ emacs_abort (); } } + + /* Call to n-adic subr. */ + if (subr->max_args == MANY) + return subr->function.aMANY (numargs, args); + + /* Anything else is an error. */ + Lisp_Object fun; + XSETSUBR (fun, subr); + if (subr->max_args >= 0) + xsignal2 (Qwrong_number_of_arguments, fun, make_fixnum (numargs)); + else + xsignal1 (Qinvalid_function, fun); } /* Call the compiled Lisp function FUN. If we have not yet read FUN's commit 9ab0b43a7230012b24297edf7438fe5805abbd64 Author: Michael Albinus Date: Tue Feb 1 14:17:32 2022 +0100 * etc/NEWS: Apply final fixes after proofreading. diff --git a/etc/NEWS b/etc/NEWS index 1e882883b5..58c7c44a2b 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -33,8 +33,8 @@ more details. If you build Emacs with native compilation, but without zlib, be sure to configure with the '--without-compress-install' option, so that the -installed *.el files are not compressed; otherwise, you will not be -able to use JIT native compilation of the installed *.el files. +installed "*.el" files are not compressed; otherwise, you will not be +able to use JIT native compilation of the installed "*.el" files. Note that JIT native compilation is done in a fresh session of Emacs that is run in a subprocess, so it can legitimately report some @@ -650,12 +650,12 @@ functions. *** The 'help-for-help' ('C-h C-h') screen has been redesigned. +++ -*** New convenience commands with short keys in the Help buffer. +*** New convenience commands with short keys in the "*Help*" buffer. New command 'help-view-source' ('s') will view the source file (if any) of the current help topic. New command 'help-goto-info' ('i') will look up the current symbol (if any) in Info. New command 'help-customize' ('c') will customize the user option or the face -(if any) whose doc string is being shown in the Help buffer. +(if any) whose doc string is being shown in the "*Help*" buffer. --- *** New user option 'describe-bindings-outline'. @@ -664,9 +664,9 @@ can provide a better overview in a long list of available bindings. +++ *** New commands to describe buttons and widgets. -'widget-describe' (on a widget) will pop up a help buffer and give a -description of the properties. Likewise 'button-describe' does the -same for a button. +'widget-describe' (on a widget) will pop up the "*Help*" buffer and +give a description of the properties. Likewise 'button-describe' does +the same for a button. --- *** Improved "find definition" feature of "*Help*" buffers. @@ -731,7 +731,7 @@ result of this command. +++ *** New desktop integration for connecting to the server. -If your operating system’s desktop environment is +If your operating system's desktop environment is freedesktop.org-compatible (which is true of most GNU/Linux and other recent Unix-like desktops), you may use the new "Emacs (Client)" desktop menu entry to open files in an existing Emacs instance rather @@ -987,7 +987,7 @@ This is to keep the same behavior as Eshell. --- ** In 'nroff-mode', 'center-line' is no longer bound to a key. -The original key binding was 'M-s', which interfered with I-search, +The original key binding was 'M-s', which interfered with Isearch, since the latter uses 'M-s' as a prefix key of the search prefix map. --- @@ -1193,7 +1193,7 @@ When called interactively, 'goto-char' now offers the position at point as the default. ** Auto-saving via 'auto-save-visited-mode' can now be inhibited. -Set the variable 'auto-save-visited-mode' buffer-locally to nil to +Set the user option 'auto-save-visited-mode' buffer-locally to nil to achieve that. +++ @@ -1264,11 +1264,11 @@ end of the current match. *** New user option 'isearch-allow-motion'. When 'isearch-allow-motion' is set, the commands 'beginning-of-buffer', 'end-of-buffer', 'scroll-up-command' and 'scroll-down-command', when -invoked during I-search, move respectively to the first occurrence of +invoked during Isearch, move respectively to the first occurrence of the current search string in the buffer, the last one, the first one after the current window, and the last one before the current window. Additionally, users can change the meaning of other motion commands -during I-search by using their 'isearch-motion' property. The user +during Isearch by using their 'isearch-motion' property. The user option 'isearch-motion-changes-direction' controls whether the direction of the search changes after a motion command. @@ -1294,9 +1294,9 @@ directory to display. +++ *** Behavior change on 'dired-do-chmod'. -As a security precaution, Dired's M command no longer follows symbolic -links. Instead, it changes the symbolic link's own mode; this always -fails on platforms where such modes are immutable. +As a security precaution, Dired's 'M' command no longer follows +symbolic links. Instead, it changes the symbolic link's own mode; +this always fails on platforms where such modes are immutable. --- *** Behavior change on 'dired-clean-confirm-killing-deleted-buffers'. @@ -1471,7 +1471,7 @@ key binding / v package-menu-filter-by-version / m package-menu-filter-marked / u package-menu-filter-upgradable -/ / package-menu-filter-clear +/ / package-menu-clear-filter *** Option to automatically native-compile packages upon installation. Customize the user option 'package-native-compile' to enable automatic @@ -1589,7 +1589,7 @@ time zones will use a form like "+0100" instead of "CET". If creating the imenu index takes longer than specified by this option (default 5 seconds), imenu indexing is stopped. -** ido +** Ido --- *** Switching on 'ido-mode' now also overrides 'ffap-file-finder'. @@ -1662,7 +1662,7 @@ buffers. ** Shell --- -*** New command in 'shell-mode': 'narrow-to-prompt'. +*** New command in 'shell-mode': 'shell-narrow-to-prompt'. This is bound to 'C-x n d' in 'shell-mode' buffers, and narrows to the command line under point (and any following output). @@ -1672,7 +1672,7 @@ If non-nil, 'shell-mode' handles implicit "cd" commands, changing the directory if the command is a directory. Useful for shells like "zsh" that has this feature. -** term-mode +** Term mode --- *** New user option 'term-scroll-snap-to-bottom'. @@ -1681,7 +1681,7 @@ that the prompt is on the final line in the window. Setting this new user option to nil inhibits this behavior. --- -*** New user option 'term-set-terminal-size' +*** New user option 'term-set-terminal-size'. If non-nil, the 'LINES' and 'COLUMNS' environment variables will be set based on the current window size. In previous versions of Emacs, this was always done (and that could lead to odd displays when resizing the @@ -1706,7 +1706,7 @@ emacs-version)'. Other package names, like "tramp", could also be included. --- *** Eshell no longer re-initializes its keymap every call. -This allows users to use (define-key eshell-mode-map ...) as usual. +This allows users to use '(define-key eshell-mode-map ...)' as usual. Some modules have their own minor mode now to account for these changes. @@ -1717,7 +1717,7 @@ will create a bookmark that opens the current directory in Eshell. ** Archive mode --- -*** Archive Mode can now parse ".squashfs" files. +*** Archive mode can now parse ".squashfs" files. *** Can now modify members of 'ar' archives. @@ -1733,7 +1733,7 @@ and which are kept hidden. This command extracts the file at point and writes its data to a file. -** browse-url +** Browse URL *** Added support for custom URL handlers. There is a new variable 'browse-url-default-handlers' and a user @@ -1769,7 +1769,7 @@ passed to the browser. *** Support for the Mosaic browser has been removed. This support has been obsolete since 25.1. -** Completion List Mode +** Completion list mode *** Improved navigation in the "*Completions*" buffer. New key bindings have been added to 'completion-list-mode': 'n' and @@ -1777,7 +1777,7 @@ New key bindings have been added to 'completion-list-mode': 'n' and minibuffer and back to the completion list buffer. +++ -** profiler.el +** Profiler The results displayed by 'profiler-report' now have the usage figures at the left hand side followed by the function name. This is intended to make better use of the horizontal space, in particular eliminating @@ -1793,8 +1793,8 @@ prompt prefix. +++ *** New minor modes 'icomplete-vertical-mode' and 'fido-vertical-mode'. -These modes modify Icomplete ('M-x icomplete-mode') and Fido ('M-x -fido-mode'), to display completion candidates vertically instead of +These modes modify Icomplete ('icomplete-mode') and Fido +('fido-mode'), to display completion candidates vertically instead of horizontally. In Icomplete, completions are rotated and selection kept at the top. In Fido, completions scroll like a typical dropdown widget. Both these new minor modes will turn on their non-vertical @@ -1834,7 +1834,7 @@ Also new mode 'windmove-mode' enables the customized keybindings. ** Occur mode --- -*** New bindings in occur-mode. +*** New bindings in 'occur-mode'. The command 'next-error-no-select' is now bound to 'n' and 'previous-error-no-select' is bound to 'p'. @@ -1856,8 +1856,8 @@ The method of highlighting is specified by the user options The value was previously always a marker set to the start of the first match on the line but can now also be a list of '(BEGIN . END)' pairs of markers delimiting each match on the line. -This is a fully compatible change to the internal occur-mode -implementation, and code creating their own occur-mode buffers will +This is a fully compatible change to the internal 'occur-mode' +implementation, and code creating their own 'occur-mode' buffers will work as before. ** Emacs Lisp mode @@ -1871,7 +1871,7 @@ The presence of a space between an open paren and a symbol now is taken as a statement by the programmer that this should be indented as a data list rather than as a piece of code. -** Lisp Mode +** Lisp mode *** New minor mode 'cl-font-lock-built-in-mode' for 'lisp-mode'. The mode provides refined highlighting of built-in functions, types, @@ -2159,8 +2159,8 @@ take the actual screenshot, and defaults to "ImageMagick import". +++ *** New user option 'smtpmail-store-queue-variables'. If non-nil, SMTP variables will be stored together with the queued -messages, and will then be used when sending with -'M-x smtpmail-send-queued-mail'. +messages, and will then be used when sending with command +'smtpmail-send-queued-mail'. +++ *** Allow direct selection of smtp authentication mechanism. @@ -2263,7 +2263,7 @@ set user option 'tramp-allow-unsafe-temporary-files' to t. +++ *** 'make-directory' of a remote directory honors the default file modes. -** gdb-mi +** GDB/MI *** New user option 'gdb-registers-enable-filter'. If non-nil, apply a register filter based on @@ -2377,7 +2377,7 @@ prefix on the Subject line in various languages. If set non-nil, showing an unseen message will set the Rmail buffer's modified flag. The default is nil, to preserve the old behavior. -** CC Mode +** CC mode +++ *** Added support for Doxygen documentation style. @@ -2527,7 +2527,7 @@ However, if "~/Downloads/" already exists, that will continue to be used. --- -*** The command 'eww-follow-link' now supports custom mailto: handlers. +*** The command 'eww-follow-link' now supports custom 'mailto:' handlers. The function that is invoked when clicking on or otherwise following a 'mailto:' link in an EWW buffer can now be customized. For more information, see the related entry about 'shr-browse-url' below. @@ -2540,9 +2540,9 @@ will create a bookmark that opens the current URL in EWW. ** SHR --- -*** The command 'shr-browse-url' now supports custom mailto handlers. +*** The command 'shr-browse-url' now supports custom 'mailto:' handlers. Clicking on or otherwise following a 'mailto:' link in an HTML buffer -rendered by SHR previously invoked the command 'browse-url-mailto'. +rendered by SHR previously invoked the command 'browse-url-mail'. This is still the case by default, but if you customize 'browse-url-mailto-function' or 'browse-url-handlers' to call some other function, it will now be called instead of the default. @@ -2652,7 +2652,7 @@ behavior of Xref commands such as 'xref-find-references', display many matches that the user would like to visit. 'xref-auto-jump-to-first-xref' changes their behavior much in the same way as 'xref-auto-jump-to-first-definition' affects the -"find-definitions" commands. +'xref-find-definitions*' commands. --- *** New user options 'xref-search-program' and 'xref-search-program-alist'. @@ -2730,7 +2730,7 @@ the function 'format-spec' documented under node "(elisp) Custom Format Strings". The new syntax includes specifiers for padding and truncation, amongst other things. -** bug-reference.el +** Bug Reference --- *** Bug reference mode uses auto-setup. @@ -2747,7 +2747,7 @@ variables 'bug-reference-setup-from-vc-alist', 'bug-reference-setup-from-mail-alist', and 'bug-reference-setup-from-irc-alist'. -** HTML Mode +** HTML mode --- *** A new skeleton for adding relative URLs has been added. @@ -2781,7 +2781,7 @@ This face is used for error messages from 'diff'. *** New command 'diff-refresh-hunk'. This new command (bound to 'C-c C-l') regenerates the current hunk. -** thing-at-point +** Thing at point +++ *** New 'thing-at-point' target: 'existing-filename'. @@ -2797,7 +2797,7 @@ If point is inside a string, it returns that string. This allows mode-specific alterations to how 'thing-at-point' works. --- -*** thing-at-point now respects fields. +*** 'thing-at-point' now respects fields. 'thing-at-point' (and all functions that use it, like 'symbol-at-point') will narrow to the current field (if any) before trying to identify the thing at point. @@ -2806,7 +2806,7 @@ trying to identify the thing at point. *** New function 'thing-at-mouse'. This is like 'thing-at-point', but uses the mouse event position instead. -** Image-Dired +** Image Dired +++ *** New user option 'image-dired-thumb-visible-marks'. @@ -2886,7 +2886,7 @@ The command previously extended the start of the region to the start of the line, but will now actually send the marked region, as documented. -** Ruby Mode +** Ruby mode --- *** 'ruby-use-smie' is declared obsolete. @@ -2899,7 +2899,7 @@ This previously used to align subsequent lines with the last sibling, but it now aligns with the first sibling (which is the preferred style in Ruby). -** CPerl Mode +** CPerl mode --- *** New face 'perl-heredoc', used for heredoc elements. @@ -2916,7 +2916,7 @@ of conditionals. *** New face 'perl-non-scalar-variable'. This is used to fontify non-scalar variables. -** Octave Mode +** Octave mode +++ *** Line continuations in double-quoted strings now use a backslash. @@ -2928,7 +2928,7 @@ everywhere else. +++ ** EasyPG GPG key servers can now be queried for keys with the -'M-x epa-search-keys' command. Keys can then be added to your +'epa-search-keys' command. Keys can then be added to your personal key ring. ** Etags @@ -2948,7 +2948,7 @@ invoked with the '--declarations' command-line option. +++ *** Support for OSC escape sequences. -Adding the new 'comint-osc-process-output' to +Adding the new function 'comint-osc-process-output' to 'comint-output-filter-functions' enables the interpretation of OSC ("Operating System Command") escape sequences in comint buffers. By default, only OSC 8, for hyperlinks, and OSC 7, for directory @@ -2960,7 +2960,7 @@ sequences. *** 'comint-delete-output' can now save deleted text in the kill-ring. Interactively, 'C-u C-c C-o' triggers this new optional behavior. -** ansi-color.el +** ANSI color --- *** Colors are now defined by faces. @@ -2980,7 +2980,7 @@ non-nil. *** Starting with Emacs 28.1 and ERC 5.4, see the ERC-NEWS file for user-visible changes in ERC. -** xwidget-webkit mode +** Xwidget Webkit mode --- *** New xwidget commands. @@ -3062,7 +3062,7 @@ Shift while typing 'C-a', i.e. 'C-S-a', will now highlight the text. --- *** New user option 'gravatar-service' for host to query for gravatars. -Defaults to 'libravatar', with 'unicornify' and 'gravatar' as options. +Defaults to 'gravatar', with 'unicornify' and 'libravatar' as options. ** MH-E mail handler for Emacs @@ -3199,8 +3199,8 @@ user-defined sorting schemes. --- *** New user option 'reveal-auto-hide'. If non-nil (the default), revealed text is automatically hidden when -point leaves the text. If nil, the text is not hidden again. Instead -'M-x reveal-hide-revealed' can be used to hide all the revealed text. +point leaves the text. If nil, the text is not hidden again. Instead the +command 'reveal-hide-revealed' can be used to hide all the revealed text. --- *** New user option 'ffap-file-name-with-spaces'. @@ -3241,7 +3241,7 @@ different timezone causing a difference in the date. --- *** Loading dunnet.el in batch mode doesn't start the game any more. -Instead you need to do "emacs -f dun-batch" to start the game in +Instead you need to do "emacs --batch -f dunnet" to start the game in batch mode. @@ -3270,7 +3270,7 @@ window navigation direction with 'C-x o M-- o o' or to set a new step with 'C-x { C-5 { { {', which will set the window resizing step to 5 columns. -'M-x describe-repeat-maps' will display a buffer showing +Command 'describe-repeat-maps' will display a buffer showing which commands are repeatable in 'repeat-mode'. --- @@ -3713,7 +3713,7 @@ user option has been renamed to 'find-library-source-path', and --- ** The macro 'vc-call' no longer evaluates its second argument twice. -** Xref migrated from EIEIO to cl-defstruct for its core objects. +** Xref migrated from EIEIO to 'cl-defstruct' for its core objects. This means that 'oref' and 'with-slots' no longer works on them, and 'make-instance' can no longer be used to create those instances (which wasn't recommended anyway). Packages should restrict themselves to @@ -3738,8 +3738,8 @@ or if the mode is a minor mode, when the current buffer has that minor mode activated. Note that using this form will create byte code that is not compatible with byte code in previous Emacs versions. Also note that by default these annotations have no effect, unless the -new option 'read-extended-command-predicate' option is customized to call -'command-completion-default-include-p' or a similar function. +new user option 'read-extended-command-predicate' option is customized +to call 'command-completion-default-include-p' or a similar function. +++ ** New 'declare' forms to control completion of commands in 'M-x'. @@ -3754,14 +3754,14 @@ MODE..., or, if it's a minor mode, when that minor mode is enabled in the current buffer. Note that these forms will only have their effect if the -'read-extended-command-predicate' option is customized to call +'read-extended-command-predicate' user option is customized to call 'command-completion-default-include-p' or a similar function. The default value of 'read-extended-command-predicate' is nil, which means no commands that match what you have typed are excluded from being completion candidates. +++ -** 'define-minor-mode' now takes an ':interactive' argument. +** 'define-minor-mode' now takes an ':interactive' argument. This can be used for specifying which modes this minor mode is meant for, or to make the new minor mode non-interactive. The default value is t. @@ -3841,7 +3841,7 @@ presented to users or passed on to other applications. This does the same as the old command 'update-directory-autoloads', but has different semantics: Instead of passing in the output file via the dynamically bound 'generated-autoload-file' variable, the output -file is now a explicit parameter. +file is now an explicit parameter. --- ** Dragging a file into Emacs pushes the file name onto 'file-name-history'. @@ -3874,11 +3874,11 @@ summaries will include the failing condition. *** New byte-compiler check for missing dynamic variable declarations. It is meant as an (experimental) aid for converting Emacs Lisp code to lexical binding, where dynamic (special) variables bound in one -file can affect code in another. For details, see the manual section +file can affect code in another. For details, see the Info node "(elisp) Converting to Lexical Binding". +++ -*** 'byte-recompile-directory' can now compile symlinked ".el" files. +*** 'byte-recompile-directory' can now compile symlinked "*.el" files. This is achieved by giving a non-nil FOLLOW-SYMLINKS parameter. --- @@ -3932,7 +3932,7 @@ always coincide with the keys that were actually merged, which could be 'equal' instead. The function argument is now called whenever keys are merged, for greater consistency with 'map-merge' and 'map-elt'. -** pcase +** Pcase +++ *** The 'or' pattern now binds the union of the vars of its sub-patterns. @@ -3963,8 +3963,8 @@ destructuring patterns in a 'setq' form. *** Edebug specification lists can use some new keywords: +++ -**** '&interpose SPEC FUN ARGS..' lets FUN control parsing after SPEC. -More specifically, FUN is called with 'HEAD PF ARGS..' where +**** '&interpose SPEC FUN ARGS...' lets FUN control parsing after SPEC. +More specifically, FUN is called with 'HEAD PF ARGS...' where PF is a parsing function that expects a single argument (the specs to use) and HEAD is the code that matched SPEC. @@ -3978,7 +3978,7 @@ use) and HEAD is the code that matched SPEC. +++ *** Type aliases for module functions and finalizers. -The module header 'emacs-module.h' now contains type aliases +The module header "emacs-module.h" now contains type aliases 'emacs_function' and 'emacs_finalizer' for module functions and finalizers, respectively. @@ -4012,8 +4012,8 @@ symbolic form found in Lisp source that "abbreviates" a symbol's print name. Among other applications, this feature can be used to avoid name clashes and namespace pollution by renaming an entire file's worth of symbols with proper and longer prefixes, without actually -touching the Lisp source. For details, see the manual section -"(elisp) Shorthands". +touching the Lisp source. For details, see the Info node "(elisp) +Shorthands". +++ ** New function 'string-search'. @@ -4286,7 +4286,7 @@ Signaling it has almost the same effect as 'quit' except that it doesn't cause keyboard macro termination. +++ -** New error 'remote-file-error', a subcategory of 'file-error'. +** New error symbol 'remote-file-error', a subcategory of 'file-error'. It is signaled if a remote file operation fails due to internal reasons, and could block Emacs. It does not replace 'file-error' signals for the usual cases. Timers, process filters and process @@ -4296,10 +4296,11 @@ against this error. If such an error occurs, please report this as bug via 'M-x report-emacs-bug'. Until it is solved you could ignore such errors by performing - (setq debug-ignored-errors (cons 'remote-file-error debug-ignored-errors)) + (setq debug-ignored-errors + (cons 'remote-file-error debug-ignored-errors)) +++ -** New macro 'named-let' added to subr-x.el. +** New macro 'named-let'. It provides Scheme's "named let" looping construct. --- @@ -4329,12 +4330,12 @@ and display the result. +++ ** 'read-number' now has its own history variable. -Additionally, the function now accepts a HIST argument which can be -used to specify a custom history variable. +Additionally, the function now accepts an optional HIST argument which +can be used to specify a custom history variable. +++ ** 'set-window-configuration' now takes two optional parameters, -'dont-set-frame' and 'dont-set-miniwindow'. The first of these, when +DONT-SET-FRAME and DONT-SET-MINIWINDOW. The first of these, when non-nil, instructs the function not to select the frame recorded in the configuration. The second prevents the current minibuffer being replaced by the one stored in the configuration. @@ -4445,7 +4446,7 @@ has been the case since Emacs 24.4 but was not announced or documented until now. (Checkdoc has also been updated to accept this convention.) +++ -** The 'uniquify' argument in 'auto-save-file-name-transforms' can be a symbol. +** The UNIQUIFY argument in 'auto-save-file-name-transforms' can be a symbol. If this symbol is one of the members of 'secure-hash-algorithms', Emacs constructs the nondirectory part of the auto-save file name by applying that 'secure-hash' to the buffer file name. This avoids any @@ -4533,7 +4534,7 @@ locales. They are also available as aliases 'ebcdic-cp-*' (e.g., support these coding-systems. +++ -** New 'Bindat type expression' description language. +** New "Bindat type expression" description language. This new system is provided by the new macro 'bindat-type' and obsoletes the old data layout specifications. It supports arbitrary-size integers, recursive types, and more. See the Info node @@ -4581,7 +4582,7 @@ to select previous/next frame are still bound to 's-~' and 's-`'. --- ** On macOS, Xwidget is now supported. If Emacs was built with xwidget support, you can access the embedded -webkit browser with 'M-x xwidget-webkit-browse-url'. Viewing two +webkit browser with command 'xwidget-webkit-browse-url'. Viewing two instances of xwidget webkit is not supported. --- commit 2b9c648de644d19df3ae51cc495816885ac72fe4 Author: Po Lu Date: Tue Feb 1 20:15:37 2022 +0800 * src/pgtkterm.c (pgtk_draw_rectangle): Fix trivial typo. (bug#53677) diff --git a/src/pgtkterm.c b/src/pgtkterm.c index c0b76b077c..d0a2980bc1 100644 --- a/src/pgtkterm.c +++ b/src/pgtkterm.c @@ -1334,8 +1334,8 @@ pgtk_draw_rectangle (struct frame *f, unsigned long color, int x, int y, cairo_t *cr; cr = pgtk_begin_cr_clip (f); - pgtk_set_cr_source_with_color (f, color, true); - cairo_rectangle (cr, x + 0.5, y + 0.5, width, respect_alpha_background); + pgtk_set_cr_source_with_color (f, color, respect_alpha_background); + cairo_rectangle (cr, x + 0.5, y + 0.5, width, height); cairo_set_line_width (cr, 1); cairo_stroke (cr); pgtk_end_cr_clip (f); commit 2c4a24975ce4d2e4a547a11991e863cd8ab91ffe Author: Andreas Schwab Date: Tue Feb 1 11:59:43 2022 +0100 Remove extra \= from obsoletion message * lisp/emacs-lisp/eieio.el (defclass): Remove \= from obsoletion message. * lisp/emacs-lisp/eieio-core.el (eieio-defclass-autoload) (eieio-defclass-internal): Likewise. diff --git a/lisp/emacs-lisp/eieio-core.el b/lisp/emacs-lisp/eieio-core.el index 33aabf4a48..45ded15899 100644 --- a/lisp/emacs-lisp/eieio-core.el +++ b/lisp/emacs-lisp/eieio-core.el @@ -215,7 +215,7 @@ It creates an autoload function for CNAME's constructor." (when eieio-backward-compatibility (set cname cname) (make-obsolete-variable cname (format "\ -use \\='%s or turn off `eieio-backward-compatibility' instead" cname) +use '%s or turn off `eieio-backward-compatibility' instead" cname) "25.1")) (setf (cl--find-class cname) newc) @@ -340,7 +340,7 @@ See `defclass' for more information." ;; turn this into a usable self-pointing symbol; FIXME: Why? (when eieio-backward-compatibility (set cname cname) - (make-obsolete-variable cname (format "use \\='%s instead" cname) + (make-obsolete-variable cname (format "use '%s instead" cname) "25.1")) ;; Create a handy list of the class test too @@ -362,7 +362,7 @@ See `defclass' for more information." (setq obj (cdr obj))) ans)))) (make-obsolete csym (format - "use (cl-typep ... \\='(list-of %s)) instead" + "use (cl-typep ... '(list-of %s)) instead" cname) "25.1"))) @@ -420,7 +420,7 @@ See `defclass' for more information." (progn (set initarg initarg) (make-obsolete-variable - initarg (format "use \\='%s instead" initarg) "25.1")))) + initarg (format "use '%s instead" initarg) "25.1")))) ;; The customgroup should be a list of symbols. (cond ((and (null customg) custom) diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el index 820e8383d8..6f97c25ca9 100644 --- a/lisp/emacs-lisp/eieio.el +++ b/lisp/emacs-lisp/eieio.el @@ -260,7 +260,7 @@ This method is obsolete." (let ((f (intern (format "%s-child-p" name)))) `((defalias ',f #',testsym2) (make-obsolete - ',f ,(format "use (cl-typep ... \\='%s) instead" name) + ',f ,(format "use (cl-typep ... '%s) instead" name) "25.1")))) ;; When using typep, (typep OBJ 'myclass) returns t for objects which commit e7fd6fe7ecdaac26f5d352cc40ca2b2fcd923bb8 Author: Andrea Corallo Date: Tue Feb 1 10:46:51 2022 +0100 Rename `comp--loadable' into `comp--compilable' * lisp/startup.el (comp--compilable): Rename from `comp--loadable'. (startup--require-comp-safely): Update accordingly. (startup--honor-delayed-native-compilations): Likewise. * src/comp.c (syms_of_comp): Update. (maybe_defer_native_compilation): Likewise. diff --git a/lisp/startup.el b/lisp/startup.el index 7834e10213..aa06125171 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -519,14 +519,14 @@ DIRS are relative." xdg-dir) (t emacs-d-dir)))) -(defvar comp--loadable) +(defvar comp--compilable) (defvar comp--delayed-sources) (defun startup--require-comp-safely () "Require the native compiler avoiding circular dependencies." (unless (featurep 'native-compile) - ;; Require comp with `comp--loadable' set to nil to break + ;; Require comp with `comp--compilable' set to nil to break ;; circularity. - (let ((comp--loadable nil)) + (let ((comp--compilable nil)) (require 'comp)) (native--compile-async comp--delayed-sources nil 'late) (setq comp--delayed-sources nil))) @@ -538,7 +538,7 @@ DIRS are relative." (when (and (native-comp-available-p) comp--delayed-sources) (startup--require-comp-safely)) - (setq comp--loadable t)) + (setq comp--compilable t)) (defvar native-comp-eln-load-path) (defun normal-top-level () diff --git a/src/comp.c b/src/comp.c index 9342712a38..5efe026b2b 100644 --- a/src/comp.c +++ b/src/comp.c @@ -5129,7 +5129,7 @@ maybe_defer_native_compilation (Lisp_Object function_name, /* This is so deferred compilation is able to compile comp dependencies breaking circularity. */ - if (comp__loadable) + if (comp__compilable) { /* Startup is done, comp is usable. */ CALL0I (startup--require-comp-safely); @@ -5600,9 +5600,9 @@ syms_of_comp (void) DEFVAR_LISP ("comp--delayed-sources", Vcomp__delayed_sources, doc: /* List of sources to be native-compiled when startup is finished. For internal use. */); - DEFVAR_BOOL ("comp--loadable", - comp__loadable, - doc: /* Non-nil when comp.el can be loaded. + DEFVAR_BOOL ("comp--compilable", + comp__compilable, + doc: /* Non-nil when comp.el can be native compiled. For internal use. */); /* Compiler control customizes. */ DEFVAR_BOOL ("native-comp-deferred-compilation", commit a92c6191b0ff8d459862386c0a1462cf29521f56 Author: Andrea Corallo Date: Tue Feb 1 10:24:12 2022 +0100 * Fix `startup--require-comp-safely' (bug#53675) * lisp/startup.el (startup--require-comp-safely): Remove unnecessary check. diff --git a/lisp/startup.el b/lisp/startup.el index 4653b1ded6..7834e10213 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -523,7 +523,7 @@ DIRS are relative." (defvar comp--delayed-sources) (defun startup--require-comp-safely () "Require the native compiler avoiding circular dependencies." - (unless (featurep 'comp) + (unless (featurep 'native-compile) ;; Require comp with `comp--loadable' set to nil to break ;; circularity. (let ((comp--loadable nil))