diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 67b64df75fd..6e4b727a2bd 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -1659,15 +1659,47 @@ overlay. @end defun @defun remove-overlays &optional start end name value -This function removes all the overlays between @var{start} and -@var{end} whose property @var{name} has the specified @var{value}. It -can move the endpoints of the overlays in the region, or split them. +This function clears the text in the region between @var{start} and +@var{end} of any overlays whose property named @var{name} has the +specified @var{value}, such that no such overlay will affect the text in +the region. To do this, the function can remove overlays in the region, +or move their endpoints, or split them, or do some combination of these. +Specifically: -If @var{name} is omitted or @code{nil}, it means to delete all overlays in -the specified region. If @var{start} and/or @var{end} are omitted or -@code{nil}, that means the beginning and end of the buffer respectively. -Therefore, @code{(remove-overlays)} removes all the overlays in the -current buffer. +@itemize @bullet +@item +Overlays that start at or after @var{start} and end before @var{end} +will be removed completely. + +@item +Overlays that start before @var{start} and end after @var{start}, but +before @var{end}, will be altered so that they end at @var{start}. + +@item +Overlays that start at or after @var{start} and end after @var{end} will +be altered so that they start at @var{end}. + +@item +Overlays that start before @var{start} and end after @var{end} will be +split into two overlays: one that ends at @var{start} and the other that +begins at @var{end}. +@end itemize + +If @var{name} is omitted or @code{nil}, it means to delete/modify all +overlays that affect text in the specified region. If @var{start} +and/or @var{end} are omitted or @code{nil}, they default to the +beginning and end of the buffer, respectively. Therefore, +@code{(remove-overlays)} removes all the overlays in the current buffer. + +Values of the named overlay property are compared using @code{eq}, which +is important if the values are anything but symbols or fixnums +(@pxref{Equality Predicates}). It means the values passed to the +function must be the same values used to set the overlay property, not +their copies; objects which are different will not compare equal even if +they have identical contents. + +The optional arguments @var{name} and @var{value} should either both be +passed and non-@code{nil}, or both omitted or @code{nil}. @end defun @defun copy-overlay overlay diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi index 156b4297501..bcbd9faf0c9 100644 --- a/doc/misc/cc-mode.texi +++ b/doc/misc/cc-mode.texi @@ -835,12 +835,14 @@ Emacs Manual}, for fuller details. @code{comment-region} isn't actually part of @ccmode{}; it is given a @ccmode{} binding for convenience. -@item @kbd{M-;} (@code{comment-dwim} or @code{indent-for-comment} @footnote{The name of this command varies between (X)Emacs versions.}) +@item @kbd{M-;} (@code{comment-dwim} or @code{indent-for-comment}) @kindex M-; @findex comment-dwim @findex indent-for-comment Insert a comment at the end of the current line, if none is there -already. Then reindent the comment according to @code{comment-column} +already@footnote{The name of this command varies between (X)Emacs +versions.}. Then reindent the comment according to +@code{comment-column} @ifclear XEMACS (@pxref{Options for Comments,,, emacs, GNU Emacs Manual}) @end ifclear @@ -1221,15 +1223,17 @@ also suppresses auto-newline mode. Toggle auto-newline minor mode. When the command turns the mode on, it also enables electric minor mode. -@item @kbd{M-x c-toggle-hungry-state}@footnote{Prior to @ccmode{} 5.31, this command was bound to @kbd{C-c C-d}.} +@item @kbd{M-x c-toggle-hungry-state} @findex c-toggle-hungry-state @findex toggle-hungry-state @r{(c-)} -Toggle hungry-delete minor mode. +Toggle hungry-delete minor mode@footnote{Prior to @ccmode{} 5.31, this +command was bound to @kbd{C-c C-d}.}. -@item @kbd{M-x c-toggle-auto-hungry-state}@footnote{Prior to @ccmode{} 5.31, this command was bound to @kbd{C-c C-t}.} +@item @kbd{M-x c-toggle-auto-hungry-state} @findex c-toggle-auto-hungry-state @findex toggle-auto-hungry-state @r{(c-)} -Toggle both auto-newline and hungry delete minor modes. +Toggle both auto-newline and hungry delete minor modes@footnote{Prior to +@ccmode{} 5.31, this command was bound to @kbd{C-c C-t}.}. @item @kbd{C-c C-w} (@code{M-x subword-mode}) @kindex C-c C-w @@ -1569,7 +1573,7 @@ perform @code{c-hungry-delete-backwards} and rather than using the minor mode toggling. @table @asis -@item @kbd{C-c C-@key{DEL}}, or @kbd{C-c @key{DEL}} (@code{c-hungry-delete-backwards})@footnote{This command was formerly known as @code{c-hungry-backspace}.} +@item @kbd{C-c C-@key{DEL}}, or @kbd{C-c @key{DEL}} (@code{c-hungry-delete-backwards}) @kindex C-c C-Backspace @kindex C-c Backspace @kindex C-c C-DEL @@ -1580,7 +1584,8 @@ Delete any amount of whitespace in the backwards direction (regardless whether hungry-delete mode is enabled or not). This command is bound to both @kbd{C-c C-@key{DEL}} and @kbd{C-c @key{DEL}}, since the more natural one, @kbd{C-c C-@key{DEL}}, is sometimes difficult to type at -a character terminal. +a character terminal@footnote{This command was formerly known as +@code{c-hungry-backspace}.}. @item @kbd{C-c C-d}, @kbd{C-c C-@key{DELETE}}, or @kbd{C-c @key{DELETE}} (@code{c-hungry-delete-forward}) @kindex C-c C-d diff --git a/doc/misc/trampver.texi b/doc/misc/trampver.texi index bf5c90ee8a9..521fe592e74 100644 --- a/doc/misc/trampver.texi +++ b/doc/misc/trampver.texi @@ -7,7 +7,7 @@ @c In the Tramp GIT, the version number and the bug report address @c are auto-frobbed from configure.ac. -@set trampver 2.7.1-pre +@set trampver 2.7.1 @set trampurl https://www.gnu.org/software/tramp/ @set tramp-bug-report-address tramp-devel@@gnu.org @set emacsver 27.1 diff --git a/etc/NEWS.30 b/etc/NEWS.30 index e05431b17fa..8f689327bea 100644 --- a/etc/NEWS.30 +++ b/etc/NEWS.30 @@ -24,6 +24,14 @@ applies, and please also update docstrings as needed. * Installation Changes in Emacs 30.1 +--- +** Native compilation is now enabled by default. +'configure' will enable the Emacs Lisp native compiler, so long as +libgccjit is present and functional on the system. To disable native +compilation, configure Emacs with the option: + + ./configure --with-native-compilation=no + +++ ** Emacs has been ported to the Android operating system. This requires Emacs to be compiled on another computer. The Android @@ -32,12 +40,10 @@ NDK, SDK, and a suitable Java compiler must also be installed. See the file 'java/INSTALL' for more details. --- -** Native compilation is now enabled by default. -'configure' will enable the Emacs Lisp native compiler, so long as -libgccjit is present and functional on the system. To disable native -compilation, configure Emacs with the option: - - ./configure --with-native-compilation=no +** Native JSON support is now always available; libjansson is no longer used. +No external library is required. The '--with-json' configure option has +been removed. 'json-available-p' now always returns non-nil and is only +kept for compatibility. --- ** Emacs now defaults to ossaudio library for sound on NetBSD and OpenBSD. @@ -49,12 +55,6 @@ external packages and to resolve potential incompatibilities between Linux and BSD versions of ALSA. Use '--with-sound=alsa' to build with ALSA on these operating systems instead. ---- -** Native JSON support is now always available; libjansson is no longer used. -No external library is required. The '--with-json' configure option has -been removed. 'json-available-p' now always returns non-nil and is only -kept for compatibility. - * Startup Changes in Emacs 30.1 @@ -74,15 +74,6 @@ more details. * Incompatible Changes in Emacs 30.1 -** Mouse wheel events should now always be 'wheel-up/down/left/right'. -At those places where the old 'mouse-4/5/6/7' events could still occur -(i.e., X11 input in the absence of XInput2, and 'xterm-mouse-mode'), -we remap them to the corresponding 'wheel-up/down/left/right' event, -according to the new variable 'mouse-wheel-buttons'. -The old variables 'mouse-wheel-up-event', 'mouse-wheel-down-event', -'mouse-wheel-left-event', and 'mouse-wheel-right-event' are thereby -obsolete. - ** Tree-Sitter modes are now declared as submodes of the non-TS modes. In order to help the use of those Tree-Sitter modes, they are now declared to have the corresponding non-Tree-Sitter mode as an @@ -93,6 +84,15 @@ collections of snippets automatically apply to the new Tree-Sitter modes. Note that those modes still do not inherit from the non-TS mode, so configuration settings installed via mode hooks are not affected. +** Mouse wheel events should now always be 'wheel-up/down/left/right'. +At those places where the old 'mouse-4/5/6/7' events could still occur +(i.e., X11 input in the absence of XInput2, and 'xterm-mouse-mode'), +we remap them to the corresponding 'wheel-up/down/left/right' event, +according to the new variable 'mouse-wheel-buttons'. +The old variables 'mouse-wheel-up-event', 'mouse-wheel-down-event', +'mouse-wheel-left-event', and 'mouse-wheel-right-event' are thereby +obsolete. + +++ ** URL now never sends user email addresses in HTTP requests. Emacs never sent email addresses by default, but it used to be @@ -135,12 +135,6 @@ To undo this change, set 'fast-read-process-output' to nil. * Changes in Emacs 30.1 -** 'describe-function' now shows the type of the function object. -The text used to say things like "car is is a built-in function" whereas -it now says "car is a primitive-function" where "primitive-function" is -the symbol returned by 'cl-type-of'. You can click on those words to -get information about that type. - ** 'advice-remove' is now an interactive command. When called interactively, 'advice-remove' now prompts for an advised function to the advice to remove. @@ -179,6 +173,12 @@ Switch to a buffer visiting the source of what is being described in For native compiled Lisp functions 'describe-function' prints (after the signature) the automatically inferred function type as well. +*** 'describe-function' now shows the type of the function object. +The text used to say things like "car is is a built-in function" whereas +it now says "car is a primitive-function" where "primitive-function" is +the symbol returned by 'cl-type-of'. You can click on those words to +get information about that type. + --- *** New user option 'describe-bindings-outline-rules'. This user option controls outline visibility in the output buffer of @@ -208,21 +208,22 @@ itself, i.e. and so on. -** Emacs now comes with Org v9.7. -See the file "etc/ORG-NEWS" for user-visible changes in Org. ++++ +*** Multi-character key echo now ends with a suggestion to use Help. +Customize 'echo-keystrokes-help' to nil to prevent that. -** Outline mode - -*** New commands to show/hide outlines by regexp. -'/ h' ('outline-hide-by-heading-regexp') asks for a regexp and then -hides the body lines of all outlines whose heading lines match the -regexp. '/ s' ('outline-show-by-heading-regexp') does the same but -shows the matched outlines. +** Customize +++ -*** 'outline-minor-mode' is supported in tree-sitter major modes. -It can be used in all tree-sitter major modes that set either the -variable 'treesit-simple-imenu-settings' or 'treesit-outline-predicate'. +*** New command 'customize-dirlocals'. +This command pops up a buffer to edit the settings in ".dir-locals.el". + +--- +*** New command 'customize-toggle-option'. +This command can toggle boolean options for the duration of a session. + +** Emacs now comes with Org v9.7. +See the file "etc/ORG-NEWS" for user-visible changes in Org. ** X selection requests are now handled much faster and asynchronously. This means it should be less necessary to disable the likes of @@ -241,10 +242,6 @@ When non-nil, selecting "Close" from the "File" menu or clicking "Close" in the tool bar will result in the current window being closed, if possible. -+++ -** 'write-region-inhibit-fsync' now defaults to t in interactive mode, -as it has in batch mode since Emacs 24. - +++ ** New user option 'remote-file-name-inhibit-delete-by-moving-to-trash'. When non-nil, this option suppresses moving remote files to the local @@ -260,53 +257,28 @@ remote buffers. The default is nil. When a positive number, this option limits the call of 'access-file' for remote files to this number of seconds. Default is nil. -+++ -** New user option 'yes-or-no-prompt'. -This allows the user to customize the prompt that is appended by -'yes-or-no-p' when asking questions. The default value is -"(yes or no) ". - ---- -** New face 'display-time-date-and-time'. -This is used for displaying the time and date components of -'display-time-mode'. - --- ** New icon images for general use. Several symbolic icons are added to "etc/images/symbols", including plus, minus, check-mark, star, etc. +** Tool bars + +++ -** Tool bars can now be placed on the bottom on more systems. +*** Tool bars can now be placed on the bottom on more systems. The 'tool-bar-position' frame parameter can be set to 'bottom' on all window systems other than Nextstep. +++ -** New global minor mode 'modifier-bar-mode'. +*** New global minor mode 'modifier-bar-mode'. When this minor mode is enabled, buttons representing modifier keys are displayed along the tool bar. +++ -** New user option 'tool-bar-always-show-default'. +*** New user option 'tool-bar-always-show-default'. When non-nil, the tool bar at the top of a frame does not show buffer local customization of the tool bar. The default value is nil. -+++ -** "d" in the mode line now indicates that the window is dedicated. -Windows have always been able to be dedicated to a specific buffer; -see 'window-dedicated-p'. Now the mode line indicates the dedicated -status of a window, with "d" appearing in the mode line if a window is -dedicated and "D" if the window is strongly dedicated. This indicator -appears before the buffer name, and after the buffer modification and -remote buffer indicators (usually "---" together). - -+++ -** New command 'toggle-window-dedicated'. -This makes it easy to interactively mark a specific window as -dedicated, so it won't be reused by 'display-buffer'. This can be -useful for complicated window setups. It is bound to 'C-x w d' -globally. - --- ** New user option 'uniquify-dirname-transform'. This can be used to customize how buffer names are uniquified, by @@ -316,12 +288,6 @@ can use this to distinguish between buffers visiting files with the same base name that belong to different projects by using the provided transform function 'project-uniquify-dirname-transform'. -** 'insert-directory-program' is now a user option. -On *BSD and macOS systems, this user option now defaults to the "gls" -executable, if it exists. This should remove the need to change its -value when installing GNU coreutils using something like ports or -Homebrew. - +++ ** CL Print @@ -357,6 +323,22 @@ right-aligned to is controlled by the new user option ** Windows ++++ +*** New command 'toggle-window-dedicated'. +This makes it easy to interactively mark a specific window as +dedicated, so it won't be reused by 'display-buffer'. This can be +useful for complicated window setups. It is bound to 'C-x w d' +globally. + ++++ +*** "d" in the mode line now indicates that the window is dedicated. +Windows have always been able to be dedicated to a specific buffer; +see 'window-dedicated-p'. Now the mode line indicates the dedicated +status of a window, with "d" appearing in the mode line if a window is +dedicated and "D" if the window is strongly dedicated. This indicator +appears before the buffer name, and after the buffer modification and +remote buffer indicators (usually "---" together). + +++ *** New action alist entry 'some-window' for 'display-buffer'. It specifies which window 'display-buffer-use-some-window' should prefer. @@ -464,7 +446,7 @@ This will keep the fixed order of tabs, even after switching between them. +++ -** New optional argument for modifying directory-local variables. +** New prefix argument for modifying directory-local variables. The commands 'add-dir-local-variable', 'delete-dir-local-variable' and 'copy-file-locals-to-dir-locals' now take an optional prefix argument, to enter the file name you want to modify. @@ -485,14 +467,6 @@ elaborate and error-prone escaping (to protect them from the shell). When answering the prompt with "diff" or "=", it now shows the diffs between the auto save file and the current file. ---- -** 'ffap-lax-url' now defaults to nil. -Previously, it was set to t but this broke remote file name detection. - -+++ -** Multi-character key echo now ends with a suggestion to use Help. -Customize 'echo-keystrokes-help' to nil to prevent that. - +++ ** 'read-passwd' can toggle the visibility of passwords. Use 'TAB' in the minibuffer to show or hide the password. Likewise, @@ -513,13 +487,45 @@ TTY frames. Colors specified in face underlines will now also be displayed in TTY frames with the previously mentioned capabilities. ++++ +** Image ':map' property is now recomputed when image is transformed. +Now images with clickable maps work as expected after you run commands +such as 'image-increase-size', 'image-decrease-size', 'image-rotate', +'image-flip-horizontally', and 'image-flip-vertically'. +Set the new user option 'image-recompute-map-p' to nil to prevent Emacs +from recomputing image maps. + ++++ +** Most file notification backends detect unmounting of a watched filesystem. +The only exception is w32notify. + ** Miscellaneous +--- +*** New command 'kill-matching-buffers-no-ask'. +This works like 'kill-matching-buffers', but without asking for +confirmation. + +*** New user option 'safe-local-variable-directories'. +This user option names directories in which Emacs will treat all +directory-local variables as safe. + --- *** New face 'appt-notification' for 'appt-display-mode-line'. It can be used to customize the look of the appointment notification displayed on the mode line when 'appt-display-mode-line' is non-nil. ++++ +*** New user option 'yes-or-no-prompt'. +This allows the user to customize the prompt that is appended by +'yes-or-no-p' when asking questions. The default value is +"(yes or no) ". + +--- +*** New face 'display-time-date-and-time'. +This is used for displaying the time and date components of +'display-time-mode'. + --- *** Emacs now recognizes shebang lines that pass '-S'/'--split-string' to 'env'. When visiting a script that invokes 'env -S INTERPRETER ARGS...' in @@ -527,12 +533,30 @@ its shebang line, Emacs will now skip over 'env -S' and deduce the major mode based on the interpreter after 'env -S'. +++ -** New function 'sqlite-execute-batch'. +*** New function 'sqlite-execute-batch'. This function lets the user execute multiple SQL statements in one go. It is useful, for example, when a Lisp program needs to evaluate an entire SQL file. -** The default value of 'read-process-output-max' was increased to 65536. +*** 'insert-directory-program' is now a user option. +On *BSD and macOS systems, this user option now defaults to the "gls" +executable, if it exists. This should remove the need to change its +value when installing GNU coreutils using something like ports or +Homebrew. + ++++ +*** 'write-region-inhibit-fsync' now defaults to t in interactive mode, +as it has in batch mode since Emacs 24. + +*** The default value of 'read-process-output-max' was increased to 65536. + ++++ +*** 'url-gateway-broken-resolution' is now obsolete. +This option was intended for use on SunOS 4.x and Ultrix systems, +neither of which have been supported by Emacs since version 23.1. +The user option 'url-gateway-nslookup-program' and the function +'url-gateway-nslookup-host' are consequently also obsolete. + * Editing Changes in Emacs 30.1 @@ -550,11 +574,27 @@ buffers. (This minor mode is the 'adaptive-wrap' ELPA package renamed and lightly edited for inclusion in Emacs.) +** New command 'replace-regexp-as-diff'. +It reads a regexp to search for and a string to replace with, then +displays a buffer with replacements as diffs. After reviewing the +changes in the output buffer you can apply the replacements as +a patch to the current file buffer. There are also new commands +'multi-file-replace-regexp-as-diff' that shows as diffs replacements +in a list of specified files, and 'dired-do-replace-regexp-as-diff' +that shows as diffs replacements in the marked files in Dired. + +++ -** New user option 'gud-highlight-current-line'. -When enabled, Gud will visually emphasize the line being executed upon -pauses in the debugee's execution, such as those occasioned by -breakpoints being hit. +** New mode of prompting for register names and showing preview. +The new user option 'register-use-preview' can be customized to the +value t or insist to request a different user interface of prompting for +register names and previewing the registers: Emacs will require +confirmation for overwriting the value of a register, and will show +the preview of registers without delay. You can also customize this +new option to disable the preview completely. + +The default value of 'register-use-preview' preserves the behavior of +Emacs 29 and before. See the Info node "(emacs) Registers" for more +details about the new UI and its variants. --- ** New global minor mode 'kill-ring-deindent-mode'. @@ -595,10 +635,31 @@ surrounding point and replace it with something else, as well as query Emacs for surrounding text. If your input method allows you to "undo" mistaken compositions, this will now work as well. ---- -** New command 'kill-matching-buffers-no-ask'. -This works like 'kill-matching-buffers', but without asking for -confirmation. ++++ +** New Advanced Macro Counter functions. +New commands have been added to implement advanced macro counter +functions. + +The commands 'C-x C-k C-r l' and 'C-x C-k C-r s' load and save the +macro counter from and to a number register, respectively. + +The commands 'C-x C-k C-r a =', 'C-x C-k C-r a <', and +'C-x C-k C-r a >' compare the macro counter with the contents of a +number register and increment the counter by an optional prefix if the +comparison succeeds. + +The commands 'C-x C-k C-q =', 'C-x C-k C-q <', and 'C-x C-k C-q >' +compare the macro counter with an optional prefix and terminate the +macro if the comparison succeeds. + ++++ +** New mode 'kmacro-menu-mode' and new command 'list-keyboard-macros'. +The new command 'list-keyboard-macros' is the keyboard-macro version +of commands like 'list-buffers' and 'list-processes', creating a listing +of the currently existing keyboards macros using the new mode +'kmacro-menu-mode'. It allows rearranging the macros in the ring, +duplicating them, deleting them, and editing their counters, formats, +and keys. --- ** New user option 'duplicate-region-final-position'. @@ -685,29 +746,30 @@ This can now be entered using 'C-x 8 E' in addition to the existing * Changes in Specialized Modes and Packages in Emacs 30.1 ---- -** Titdic-cnv -Most of the variables and functions in the file have been renamed to -make sure they all use a 'tit-' namespace prefix. - --- ** Trace In batch mode, tracing now sends the trace to stdout. -+++ -** Mwheel -The 'wheel-up/down/left/right' events are now bound unconditionally, -and the 'mouse-wheel-up/down/left/right-event' variables are thus used -only to specify the 'mouse-4/5/6/7' events that might still -happen to be generated by some old packages (or if 'mouse-wheel-buttons' -has been set to nil). - ** Xterm Mouse mode This mode now emits 'wheel-up/down/right/left' events instead of 'mouse-4/5/6/7' events for the mouse wheel. It uses the new variable 'mouse-wheel-buttons' to decide which button maps to which wheel event (if any). +** Outline mode + +*** New commands to show/hide outlines by regexp. +'/ h' ('outline-hide-by-heading-regexp') asks for a regexp and then +hides the body lines of all outlines whose heading lines match the +regexp. '/ s' ('outline-show-by-heading-regexp') does the same but +shows the matched outlines. + ++++ +*** 'outline-minor-mode' is supported in tree-sitter major modes. +It can be used in all tree-sitter major modes that set either the +variable 'treesit-simple-imenu-settings' or 'treesit-outline-predicate'. + + ** Info --- @@ -720,11 +782,17 @@ arbitrary Info manuals. *** Emacs can now display Info manuals compressed with 'lzip'. This requires the 'lzip' program to be installed on your system. -+++ -** New command 'lldb'. -Run the LLDB debugger, analogous to the 'gud-gdb' command. +** GUD (Grand Unified Debugger) -** GDB MI ++++ +*** New user option 'gud-highlight-current-line'. +When enabled, Gud will visually emphasize the line being executed upon +pauses in the debugee's execution, such as those occasioned by +breakpoints being hit. + ++++ +*** New command 'lldb'. +Run the LLDB debugger, analogous to the 'gud-gdb' command. --- *** Variable order and truncation can now be configured in 'gdb-many-windows'. @@ -877,17 +945,6 @@ the previously hard-coded "-b". It applies the diff in the entire diff buffer and saves all modified file buffers. -** Isearch and Replace - -*** New command 'replace-regexp-as-diff'. -It reads a regexp to search for and a string to replace with, then -displays a buffer with replacements as diffs. After reviewing the -changes in the output buffer you can apply the replacements as -a patch to the current file buffer. There are also new commands -'multi-file-replace-regexp-as-diff' that shows as diffs replacements -in a list of specified files, and 'dired-do-replace-regexp-as-diff' -that shows as diffs replacements in the marked files in Dired. - ** Dired --- @@ -933,21 +990,6 @@ in size. *** 'dired-listing-switches' handles connection-local values if exist. This allows to customize different switches for different remote machines. -** Registers - -+++ -*** New mode of prompting for register names and showing preview. -The new user option 'register-use-preview' can be customized to the -value t or insist to request a different user interface of prompting for -register names and previewing the registers: Emacs will require -confirmation for overwriting the value of a register, and will show -the preview of registers without delay. You can also customize this -new option to disable the preview completely. - -The default value of 'register-use-preview' preserves the behavior of -Emacs 29 and before. See the Info node "(emacs) Registers" for more -details about the new UI and its variants. - ** Ediff --- @@ -1080,7 +1122,7 @@ After manually editing 'eshell-aliases-file', you can use this command to load the edited aliases. +++ -*** 'rgrep' is now a builtin command. +*** 'rgrep' is now a builtin Eshell command. Running 'rgrep' in Eshell now uses the Emacs grep facility instead of calling external rgrep. @@ -1174,13 +1216,6 @@ output, reducing the time spent when printing large amounts of output. To restore the old behavior, set 'comint-password-prompt-max-length' to 'most-positive-fixnum'. -** Make mode - -*** The Makefile browser is now obsolete. -The command 'makefile-switch-to-browser' command is now obsolete, -together with related commands used in the "*Macros and Targets*" -buffer. We recommend using an alternative like 'imenu' instead. - ** Prog mode +++ @@ -1311,11 +1346,6 @@ manual "(tramp) Improving performance of asynchronous remote processes". When a direct asynchronous process is invoked, it uses 'tramp-remote-path' for setting the remote 'PATH' environment variable. -** File Notifications - -+++ -*** All backends except w32notify detect unmounting of a watched filesystem now. - ** EWW --- @@ -1755,18 +1785,6 @@ without specifying a file, like this: (notifications-notify :title "I am playing music" :app-icon 'multimedia-player) -** Image - -+++ -*** Image ':map' property is now recomputed when image is transformed. -Now images with clickable maps work as expected after you run commands -such as 'image-increase-size', 'image-decrease-size', 'image-rotate', -'image-flip-horizontally', and 'image-flip-vertically'. - -+++ -*** New user option 'image-recompute-map-p'. -Set this option to nil to prevent Emacs from recomputing image maps. - ** Image Dired *** New user option 'image-dired-thumb-naming'. @@ -1786,15 +1804,6 @@ An ERT extension ('ert-font-lock') now provides support for face assignment unit testing. For more information, see the "(ert) Syntax Highlighting Tests" node in the ERT manual. -** URL - -+++ -*** 'url-gateway-broken-resolution' is now obsolete. -This option was intended for use on SunOS 4.x and Ultrix systems, -neither of which have been supported by Emacs since version 23.1. -The user option 'url-gateway-nslookup-program' and the function -'url-gateway-nslookup-host' are consequently also obsolete. - ** Socks +++ @@ -1817,54 +1826,6 @@ When this is non-nil, the lines of key sequences are displayed with the most recent line first. This is can be useful when working with macros with many lines, such as from 'kmacro-edit-lossage'. -** Proced - ---- -*** More control on automatic update of Proced buffers. -The user option 'proced-auto-update-flag' can now be set to 2 additional -values, which control automatic updates of Proced buffers that are not -displayed in some window. - -** Kmacro - -+++ -*** New Advanced Macro Counter functions. -New commands have been added to implement advanced macro counter -functions. - -The commands 'C-x C-k C-r l' and 'C-x C-k C-r s' load and save the -macro counter from and to a number register, respectively. - -The commands 'C-x C-k C-r a =', 'C-x C-k C-r a <', and -'C-x C-k C-r a >' compare the macro counter with the contents of a -number register and increment the counter by an optional prefix if the -comparison succeeds. - -The commands 'C-x C-k C-q =', 'C-x C-k C-q <', and 'C-x C-k C-q >' -compare the macro counter with an optional prefix and terminate the -macro if the comparison succeeds. - -** Kmacro Menu mode - -+++ -*** New mode 'kmacro-menu-mode' and new command 'list-keyboard-macros'. -The new command 'list-keyboard-macros' is the keyboard-macro version -of commands like 'list-buffers' and 'list-processes', creating a listing -of the currently existing keyboards macros using the new mode -'kmacro-menu-mode'. It allows rearranging the macros in the ring, -duplicating them, deleting them, and editing their counters, formats, -and keys. - -** Customize - -+++ -*** New command 'customize-dirlocals'. -This command pops up a buffer to edit the settings in ".dir-locals.el". - ---- -*** New command 'customize-toggle-option'. -This command can toggle boolean options for the duration of a session. - ** Calc +++ @@ -1893,20 +1854,6 @@ This allows the user to customize the key selection method, which can be either by using a pop-up buffer or from the minibuffer. The pop-up buffer method is the default, which preserves previous behavior. -** Xwidget Webkit - -+++ -*** New user option 'xwidget-webkit-disable-javascript'. -This allows disabling JavaScript in xwidget Webkit sessions. - -** Ls Lisp - ---- -*** 'ls-lisp--insert-directory' supports more long options of 'ls'. -'ls-lisp--insert-directory', the ls-lisp implementation of -'insert-directory', now supports the '--time=TIME' and '--sort=time' -options of GNU 'ls'. - ** Widget +++ @@ -1920,13 +1867,6 @@ the 'widget-inactive' face). If non-nil, moving point forward or backward between widgets by typing 'TAB' or 'S-TAB' skips over inactive widgets. The default value is nil. -** Xref - -*** 'xref-revert-buffer' is now an alias of 'revert-buffer'. -The Xref buffer now sets up 'revert-buffer-function' such that -'revert-buffer' behaves like 'xref-revert-buffer' did in previous Emacs -versions, and the latter is now an alias of the former. - ** Ruby mode *** New user option 'ruby-rubocop-use-bundler'. @@ -1957,11 +1897,6 @@ will return the URL for that bug. ** Miscellaneous --- -*** Webjump now assumes URIs are HTTPS instead of HTTP. -For links in 'webjump-sites' without an explicit URI scheme, it was -previously assumed that they should be prefixed with "http://". Such -URIs are now prefixed with "https://" instead. - +++ *** New user option 'rcirc-log-time-format'. This allows for rcirc logs to use a custom timestamp format, than the @@ -1980,6 +1915,16 @@ that is, buffers not visiting a file and whose names start with a space. Previously, such buffers were never shown. This command is bound to 'I' in Buffer Menu mode. +--- +*** 'ffap-lax-url' now defaults to nil. +Previously, it was set to t but this broke remote file name detection. + +--- +*** More control on automatic update of Proced buffers. +The user option 'proced-auto-update-flag' can now be set to two +additional values, which control automatic updates of Proced buffers +that are not displayed in some window. + --- *** nXML Mode now comes with schemas for Mono/.NET development. The following new XML schemas are now supported: @@ -1993,14 +1938,67 @@ The following new XML schemas are now supported: *** color.el now supports the Oklab color representation. ++++ +*** New user option 'xwidget-webkit-disable-javascript'. +This allows disabling JavaScript in xwidget Webkit sessions. + +--- +*** 'ls-lisp--insert-directory' supports more long options of 'ls'. +'ls-lisp--insert-directory', the ls-lisp implementation of +'insert-directory', now supports the '--time=TIME' and '--sort=time' +options of GNU 'ls'. + --- *** 'M-x ping' can now give "ping" additional flags. Typing 'C-u M-x ping' prompts first for the host, and then for the flags to give to "ping". +*** Webjump now assumes URIs are HTTPS instead of HTTP. +For links in 'webjump-sites' without an explicit URI scheme, it was +previously assumed that they should be prefixed with "http://". Such +URIs are now prefixed with "https://" instead. + +--- +*** Added prefixes in titdic-cnv library. +Most of the variables and functions in the file have been renamed to +make sure they all use a 'tit-' namespace prefix. + +*** 'xref-revert-buffer' is now an alias of 'revert-buffer'. +The Xref buffer now sets up 'revert-buffer-function' such that +'revert-buffer' behaves like 'xref-revert-buffer' did in previous Emacs +versions, and the latter is now an alias of the former. + +*** The Makefile browser is now obsolete. +The command 'makefile-switch-to-browser' command is now obsolete, +together with related commands used in the "*Macros and Targets*" +buffer. We recommend using an alternative like 'imenu' instead. + * New Modes and Packages in Emacs 30.1 +** New major modes based on the tree-sitter library + ++++ +*** New major mode 'elixir-ts-mode'. +A major mode based on the tree-sitter library for editing Elixir files. + ++++ +*** New major mode 'heex-ts-mode'. +A major mode based on the tree-sitter library for editing HEEx files. + ++++ +*** New major mode 'html-ts-mode'. +An optional major mode based on the tree-sitter library for editing +HTML files. + ++++ +*** New major mode 'lua-ts-mode'. +A major mode based on the tree-sitter library for editing Lua files. + ++++ +*** New major mode 'php-ts-mode'. +A major mode based on the tree-sitter library for editing PHP files. + ** New package EditorConfig. This package provides support for the EditorConfig standard, an editor-neutral way to provide directory local (project-wide) settings. @@ -2009,6 +2007,37 @@ which makes Emacs obey the '.editorconfig' files. There is also a new major mode 'editorconfig-conf-mode' to edit those configuration files. ++++ +** New global minor mode 'etags-regen-mode'. +This minor mode generates the tags table automatically based on the +current project configuration, and later updates it as you edit the +files and save the changes. + ++++ +** New package Which-Key +The 'which-key' package from GNU ELPA is now included in Emacs. It +implements the global minor mode 'which-key-mode' that displays a table +of key bindings upon entering a partial key chord and waiting for a +moment. For example, after enabling the minor mode, if you enter 'C-x' +and wait for one second, the minibuffer will expand with all available +key bindings that follow 'C-x' (or as many as space allows). + ++++ +** New minor mode 'completion-preview-mode'. +This minor mode shows you symbol completion suggestions as you type, +using an inline preview. New user options in the 'completion-preview' +customization group control exactly when Emacs displays this preview. +'completion-preview-mode' is buffer-local, to enable it globally use +'global-completion-preview-mode'. + ++++ +** New package Window-Tool-Bar. +This provides a new minor mode, 'window-tool-bar-mode'. When this minor +mode is enabled, a tool bar is displayed at the top of a window. To +conserve space, no tool bar is shown if 'tool-bar-map' is nil. The +global minor mode 'global-window-tool-bar-mode' enables this minor mode +in all buffers. + +++ ** New package Track-Changes. This library is a layer of abstraction above 'before-change-functions' @@ -2021,46 +2050,13 @@ the functionality of 'after-change-functions': reported (calls to 'before/after-change-functions' that are incorrectly paired, missing, etc...) and reports them adequately. -** New major modes based on the tree-sitter library - +++ -*** New major mode 'html-ts-mode'. -An optional major mode based on the tree-sitter library for editing -HTML files. - -+++ -*** New major mode 'heex-ts-mode'. -A major mode based on the tree-sitter library for editing HEEx files. - -+++ -*** New major mode 'elixir-ts-mode'. -A major mode based on the tree-sitter library for editing Elixir files. - -+++ -*** New major mode 'lua-ts-mode'. -A major mode based on the tree-sitter library for editing Lua files. - -+++ -*** New major mode 'php-ts-mode'. -A major mode based on the tree-sitter library for editing PHP files. - - -** Minibuffer and Completions - -+++ -*** New global minor mode 'minibuffer-regexp-mode'. -This is a minor mode for editing regular expressions in the minibuffer. -It highlights parens via ‘show-paren-mode’ and ‘blink-matching-paren’ in -a user-friendly way, avoids reporting alleged paren mismatches and makes -sexp navigation more intuitive. - -+++ -*** New minor mode 'completion-preview-mode'. -This minor mode shows you symbol completion suggestions as you type, -using an inline preview. New user options in the 'completion-preview' -customization group control exactly when Emacs displays this preview. -'completion-preview-mode' is buffer-local, to enable it globally use -'global-completion-preview-mode'. +** New global minor mode 'minibuffer-regexp-mode'. +This is a minor mode for editing regular expressions in the minibuffer, +for example in 'query-replace-regexp'. It correctly highlights parens +via ‘show-paren-mode’ and ‘blink-matching-paren’ in a user-friendly way, +avoids reporting alleged paren mismatches and makes sexp navigation more +intuitive. --- ** The highly accessible Modus themes collection has eight items. @@ -2074,19 +2070,6 @@ the needs of users with red-green or blue-yellow color deficiency. The Info manual "(modus-themes) Top" describes the details and showcases all their customization options. -+++ -** New global minor mode 'etags-regen-mode'. -This minor mode generates the tags table automatically based on the -current project configuration, and later updates it as you edit the -files and save the changes. - -+++ -** New package Compat. -Emacs now comes with a stub implementation of the -forwards-compatibility Compat package from GNU ELPA. This allows -built-in packages to use the library more effectively, and helps -preventing the installation of Compat if unnecessary. - +++ ** New package PEG. Emacs now includes a library for writing Parsing Expression @@ -2102,18 +2085,11 @@ To revert to the previous behavior, set the (also new) variable variables used should be adapted appropriately. +++ -** New package Window-Tool-Bar. -This provides a new minor mode, 'window-tool-bar-mode'. When this minor -mode is enabled, a tool bar is displayed at the top of a window. To -conserve space, no tool bar is shown if 'tool-bar-map' is nil. The -global minor mode 'global-window-tool-bar-mode' enables this minor mode -in all buffers. - -+++ -** New package Which-Key -The 'which-key' package from GNU ELPA is now included in Emacs. It -implements the 'which-key-mode' that displays a table of key bindings -upon entering a partial key chord and waiting for a moment. +** New package Compat. +Emacs now comes with a stub implementation of the +forwards-compatibility Compat package from GNU ELPA. This allows +built-in packages to use the library more effectively, and helps +preventing the installation of Compat if unnecessary. * Incompatible Lisp Changes in Emacs 30.1 @@ -2289,6 +2265,13 @@ completion candidate. * Lisp Changes in Emacs 30.1 ++++ +** The 'wheel-up/down/left/right' events are now bound unconditionally. +The 'mouse-wheel-up/down/left/right-event' variables are thus used only +to specify the 'mouse-4/5/6/7' events that might still happen to be +generated by some old packages (or if 'mouse-wheel-buttons' has been set +to nil). + +++ ** New hook 'hack-dir-local-get-variables-functions'. This can be used to provide support for other directory-local settings @@ -2375,14 +2358,14 @@ the backtrace and other dynamic state at the point of the error. See the Info node "(elisp) Handling Errors". +++ -** Tooltips on fringes. +** New text properties add tooltips on fringes. It is now possible to provide tooltips on fringes by adding special text properties 'left-fringe-help' and 'right-fringe-help'. See the "(elisp) Special Properties" Info node in the Emacs Lisp Reference Manual for more details. +++ -** New 'pop-up-frames' action alist entry for 'display-buffer'. +** New 'display-buffer' action alist entry 'pop-up-frames'. This has the same effect as the variable of the same name and takes precedence over the variable when present. @@ -2430,11 +2413,13 @@ its input in-place as before. ** New API for 'derived-mode-p' and control of the graph of major modes. ++++ *** 'derived-mode-p' now takes the list of modes as a single argument. The same holds for 'provided-mode-derived-p'. The old calling convention where multiple modes are passed as separate arguments is deprecated. ++++ *** New functions to access the graph of major modes. While 'define-derived-mode' still only supports single inheritance, modes can declare additional parents (for tests like 'derived-mode-p') @@ -2450,18 +2435,17 @@ drops incorporating more than one URL. Functions capable of this must set their 'dnd-multiple-handler' symbol properties to a non-nil value. See the Info node "(elisp) Drag and Drop". -Incident to this change, the function 'dnd-handle-one-url' has been -made obsolete, for it cannot take these new handlers into account. +The function 'dnd-handle-one-url' has been made obsolete, since it +cannot take these new handlers into account. ** New function 're-disassemble' to see the innards of a regexp. -If you compiled with '--enable-checking', you can use this to help debug -either your regexp performance problems or the regexp engine. +If you built Emacs with '--enable-checking', you can use this to help +debug either your regexp performance problems or the regexp engine. +++ ** XLFDs are no longer restricted to 255 characters. 'font-xlfd-name' now returns an XLFD even if it is greater than 255 characters in length, provided that the LONG_XLFDs argument is true. - Other features in Emacs which employ XLFDs have been modified to produce and understand XLFDs larger than 255 characters. @@ -2476,8 +2460,7 @@ You may need to recompile our code if it was compiled with Emacs < 24.3. ** New macro 'static-if' for conditional evaluation of code. This macro hides a form from the evaluator or byte-compiler based on a compile-time condition. This is handy for avoiding byte-compilation -warnings about code that will never actually run under some -conditions. +warnings about code that will never actually run under some conditions. +++ ** Desktop notifications are now supported on the Haiku operating system. @@ -2485,10 +2468,10 @@ The new function 'haiku-notifications-notify' provides a subset of the capabilities of the 'notifications-notify' function in a manner analogous to 'w32-notification-notify'. -** New variable 'haiku-pass-control-tab-to-system'. +** New Haiku specific variable 'haiku-pass-control-tab-to-system'. This sets whether Emacs should pass 'C-TAB' on to the system instead of handling it, fixing a problem where window switching would not activate -if an Emacs frame had focus on the Haiku operation system. +if an Emacs frame had focus on the Haiku operating system. +++ ** New value 'if-regular' for the REPLACE argument to 'insert-file-contents'. @@ -2512,8 +2495,7 @@ The new variables 'ctags-program-name', 'ebrowse-program-name', 'etags-program-name', 'hexl-program-name', 'emacsclient-program-name' 'movemail-program-name', and 'rcs2log-program-name' should be used instead of "ctags", "ebrowse", "etags", "hexl", "emacsclient", and -"rcs2log", when starting one of these built in programs in a -subprocess. +"rcs2log", when starting one of these built in programs in a subprocess. +++ ** New variable 'case-symbols-as-words' affects case operations for symbols. @@ -2523,23 +2505,21 @@ as a single word. This is useful for programming languages and styles where only the first letter of a symbol's name is ever capitalized. The default value of this variable is nil. +** Touch Screen support + +++ -** 'x-popup-menu' now understands touch screen events. +*** 'x-popup-menu' now understands touch screen events. When a 'touchscreen-begin' or 'touchscreen-end' event is passed as the POSITION argument, it will behave as if that event was a mouse event. +++ -** New functions for handling touch screen events. +*** New functions for handling touch screen events. The new functions 'touch-screen-track-tap' and 'touch-screen-track-drag' handle tracking common touch screen gestures from within a command. -** New user option 'safe-local-variable-directories'. -This user option names directories in which Emacs will treat all -directory-local variables as safe. - +++ -** New parameter to 'touchscreen-end' events. +*** New parameter to 'touchscreen-end' events. CANCEL non-nil establishes that the touch sequence has been intercepted by programs such as window managers and should be ignored with Emacs. diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el index ba0f8bad393..12712cb2bc3 100644 --- a/lisp/emacs-lisp/easy-mmode.el +++ b/lisp/emacs-lisp/easy-mmode.el @@ -91,7 +91,7 @@ Enable the mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `%s'. +evaluate the variable `%s'. The mode's hook is called both when the mode is enabled and when it is disabled.") diff --git a/lisp/net/tramp-compat.el b/lisp/net/tramp-compat.el index 1d6f47dc364..8781230c00c 100644 --- a/lisp/net/tramp-compat.el +++ b/lisp/net/tramp-compat.el @@ -46,18 +46,22 @@ (unless (= emacs-major-version (car (version-to-list tramp-compat-emacs-compiled-version))) - (warn "Tramp has been compiled with Emacs %s, this is Emacs %s" + (lwarn 'tramp :warning + "Tramp has been compiled with Emacs %s, this is Emacs %s" tramp-compat-emacs-compiled-version emacs-version)) (with-eval-after-load 'docker-tramp - (warn (concat "Package `docker-tramp' has been obsoleted, " - "please use integrated package `tramp-container'"))) + (lwarn 'tramp :warning + (concat "Package `docker-tramp' has been obsoleted, " + "please use integrated package `tramp-container'"))) (with-eval-after-load 'kubernetes-tramp - (warn (concat "Package `kubernetes-tramp' has been obsoleted, " - "please use integrated package `tramp-container'"))) + (lwarn 'tramp :warning + (concat "Package `kubernetes-tramp' has been obsoleted, " + "please use integrated package `tramp-container'"))) (with-eval-after-load 'tramp-nspawn - (warn (concat "Package `tramp-nspawn' has been obsoleted, " - "please use integrated package `tramp-container'"))) + (lwarn 'tramp :warning + (concat "Package `tramp-nspawn' has been obsoleted, " + "please use integrated package `tramp-container'"))) ;; For not existing functions, obsolete functions, or functions with a ;; changed argument list, there are compiler warnings. We want to diff --git a/lisp/net/tramp-message.el b/lisp/net/tramp-message.el index 8d6458ce07a..b1f7aa95049 100644 --- a/lisp/net/tramp-message.el +++ b/lisp/net/tramp-message.el @@ -468,8 +468,7 @@ to `tramp-message'." (declare (tramp-suppress-trace t)) (let (signal-hook-function) (apply 'tramp-message vec-or-proc 2 fmt-string arguments) - (display-warning - 'tramp (apply #'format-message fmt-string arguments) :warning))) + (lwarn 'tramp :warning fmt-string arguments))) (defun tramp-test-message (fmt-string &rest arguments) "Emit a Tramp message according `default-directory'." diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el index a0dbd3d55fb..8bbfddeaab3 100644 --- a/lisp/net/trampver.el +++ b/lisp/net/trampver.el @@ -7,7 +7,7 @@ ;; Maintainer: Michael Albinus ;; Keywords: comm, processes ;; Package: tramp -;; Version: 2.7.1-pre +;; Version: 2.7.1 ;; Package-Requires: ((emacs "27.1")) ;; Package-Type: multi ;; URL: https://www.gnu.org/software/tramp/ @@ -40,7 +40,7 @@ ;; ./configure" to change them. ;;;###tramp-autoload -(defconst tramp-version "2.7.1-pre" +(defconst tramp-version "2.7.1" "This version of Tramp.") ;;;###tramp-autoload @@ -78,7 +78,7 @@ ;; Check for Emacs version. (let ((x (if (not (string-version-lessp emacs-version "27.1")) "ok" - (format "Tramp 2.7.1-pre is not fit for %s" + (format "Tramp 2.7.1 is not fit for %s" (replace-regexp-in-string "\n" "" (emacs-version)))))) (unless (string-equal "ok" x) (error "%s" x))) @@ -106,7 +106,8 @@ ("2.4.3.27.1" . "27.1") ("2.4.5.27.2" . "27.2") ("2.5.2.28.1" . "28.1") ("2.5.3.28.2" . "28.2") ("2.5.4" . "28.3") ("2.6.0.29.1" . "29.1") ("2.6.2.29.2" . "29.2") ("2.6.3-pre" . "29.3") - ("2.6.3" . "29.4"))) + ("2.6.3" . "29.4") + ("2.7.1" . "30.1"))) (add-hook 'tramp-unload-hook (lambda () diff --git a/lisp/shell.el b/lisp/shell.el index 9399906715f..e1936ff1119 100644 --- a/lisp/shell.el +++ b/lisp/shell.el @@ -764,9 +764,10 @@ command." (setq-local comint-input-ring-size hsize)) (setq comint-input-ring-file-name (concat remote hfile))) - (if (or (equal comint-input-ring-file-name "") - (equal (file-truename comint-input-ring-file-name) - (file-truename null-device))) + (if (and comint-input-ring-file-name + (or (equal comint-input-ring-file-name "") + (equal (file-truename comint-input-ring-file-name) + (file-truename null-device)))) (setq comint-input-ring-file-name nil)) ;; Arrange to write out the input ring on exit, if the shell doesn't ;; do this itself. diff --git a/lisp/which-key.el b/lisp/which-key.el index 973616ef116..8ad2ba2c365 100644 --- a/lisp/which-key.el +++ b/lisp/which-key.el @@ -900,7 +900,15 @@ disable support." ;;;###autoload (define-minor-mode which-key-mode - "Toggle `which-key-mode'." + "Toggle `which-key-mode'. + +`which-key' is a minor mode that displays the key bindings following +your currently entered incomplete command (a prefix) in a popup. + +For example, after enabling the minor mode, if you enter \\`C-x' and +wait for one second (by default), the minibuffer will expand with all +available key bindings that follow \\`C-x' (or as many as space allows +given your settings)." :global t :group 'which-key :lighter which-key-lighter diff --git a/src/xfaces.c b/src/xfaces.c index 1e0196a1171..188dd4778bc 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -4599,8 +4599,8 @@ free_realized_face (struct frame *f, struct face *face) /* This function might be called with the frame's display connection deleted, in which event the callbacks below should not be executed, as they generate X requests. */ - if (FRAME_X_DISPLAY (f)) - return; + if (!FRAME_X_DISPLAY (f)) + goto free_face; #endif /* HAVE_X_WINDOWS */ if (face->gc) @@ -4619,6 +4619,9 @@ free_realized_face (struct frame *f, struct face *face) } #endif /* HAVE_WINDOW_SYSTEM */ +#ifdef HAVE_X_WINDOWS + free_face: +#endif /* HAVE_X_WINDOWS */ xfree (face); } } diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el index 08a3dd179e2..bf77179e039 100644 --- a/test/lisp/net/tramp-tests.el +++ b/test/lisp/net/tramp-tests.el @@ -3904,12 +3904,44 @@ The test is derived from TEST and COMMAND." (funcall (ert-test-body ert-test))) (ert-skip (format "Test `%s' must run before" ',test))))) +(defmacro tramp--test-deftest-without-file-attributes (test) + "Define ert `TEST-without-file-attributes'." + (declare (indent 1)) + `(ert-deftest + ,(intern (concat (symbol-name test) "-without-file-attributes")) () + :tags '(:expensive-test) + (let ((test-doc + (split-string + (ert-test-documentation (get ',test 'ert--test)) "\n"))) + ;; The first line must be extended. + (setcar + test-doc + (format "%s Don't Use the \"file-attributes\" cache." (car test-doc))) + (setf (ert-test-documentation + (get + (intern (format "%s-without-file-attributes" ',test)) + 'ert--test)) + (string-join test-doc "\n"))) + (skip-unless (tramp--test-enabled)) + (skip-unless + (or (tramp--test-adb-p) (tramp--test-sh-p) (tramp--test-sudoedit-p))) + (if-let ((default-directory ert-remote-temporary-file-directory) + (ert-test (ert-get-test ',test)) + (result (ert-test-most-recent-result ert-test))) + (progn + (skip-unless (< (ert-test-result-duration result) 300)) + (let (tramp-use-file-attributes) + (funcall (ert-test-body ert-test)))) + (ert-skip (format "Test `%s' must run before" ',test))))) + (tramp--test-deftest-with-stat tramp-test18-file-attributes) (tramp--test-deftest-with-perl tramp-test18-file-attributes) (tramp--test-deftest-with-ls tramp-test18-file-attributes) +(tramp--test-deftest-without-file-attributes tramp-test18-file-attributes) + (defvar tramp--test-start-time nil "Keep the start time of the current test, a float number.") @@ -4034,6 +4066,9 @@ They might differ only in time attributes or directory size." (tramp--test-deftest-with-ls tramp-test19-directory-files-and-attributes) +(tramp--test-deftest-without-file-attributes + tramp-test19-directory-files-and-attributes) + (ert-deftest tramp-test20-file-modes () "Check `file-modes'. This tests also `file-executable-p', `file-writable-p' and `set-file-modes'." @@ -6839,7 +6874,8 @@ INPUT, if non-nil, is a string sent to the process." (set-visited-file-name tmp-name1) (insert "foo") (should (buffer-modified-p)) - (tramp-cleanup-connection tramp-test-vec 'keep-debug 'keep-password) + (tramp-cleanup-connection + tramp-test-vec 'keep-debug 'keep-password) (cl-letf (((symbol-function #'read-from-minibuffer) (lambda (&rest _args) "yes"))) (kill-buffer))) @@ -7561,6 +7597,8 @@ This requires restrictions of file name syntax." (tramp--test-deftest-with-ls tramp-test41-special-characters) +(tramp--test-deftest-without-file-attributes tramp-test41-special-characters) + (ert-deftest tramp-test42-utf8 () "Check UTF8 encoding in file names and file contents." (skip-unless (tramp--test-enabled)) @@ -7627,6 +7665,8 @@ This requires restrictions of file name syntax." (tramp--test-deftest-with-ls tramp-test42-utf8) +(tramp--test-deftest-without-file-attributes tramp-test42-utf8) + (ert-deftest tramp-test43-file-system-info () "Check that `file-system-info' returns proper values." (skip-unless (tramp--test-enabled)) @@ -7864,10 +7904,12 @@ process sentinels. They shall not disturb each other." (should-not (file-attributes file)) (should (file-attributes file))) ;; Send string to process. - (process-send-string proc (format "%s\n" (buffer-name buf))) + (process-send-string + proc (format "%s\n" (buffer-name buf))) (while (accept-process-output nil 0)) (tramp--test-message - "Continue action %d %s %s" count buf (current-time-string)) + "Continue action %d %s %s" + count buf (current-time-string)) ;; Regular operation post process action. (dired-uncache file) (if (= count 2)