diff options
| author | Po Lu | 2024-07-11 11:40:34 +0800 |
|---|---|---|
| committer | Po Lu | 2024-07-11 11:40:34 +0800 |
| commit | 166685a7d9568cc8fcbc2ad85db1ed23efd9793e (patch) | |
| tree | 7c597d10febfa77c577c0f68efe835e866038d63 | |
| parent | 29aeed7218c77180eef8afac6056af103069b4b2 (diff) | |
| parent | e0b271e279ba5b606330908604ac4fa42a389b30 (diff) | |
| download | emacs-166685a7d9568cc8fcbc2ad85db1ed23efd9793e.tar.gz emacs-166685a7d9568cc8fcbc2ad85db1ed23efd9793e.zip | |
Merge from savannah/emacs-30
e0b271e279b Take precautions against ill-formed content URIs
9331ab056a4 etags-regen-mode: Handle TAGS buffer being killed
ef3f26ec02d ; Tag ERC multiline blanks test as :expensive
945335fec1e Improve 'put-image' documentation
c38d5cc3b28 Improve 'set-fontset-font' documentation
7de4dbea08f Adapt Tramp's "run0" method
871585db4ca * test/src/sqlite-tests.el (sqlite-execute-batch): Declar...
5cf8d60e0de Capitalize "Dired" and "Lisp" in docstrings
37475c9af7a Document Eshell entry points
# Conflicts:
# etc/NEWS
| -rw-r--r-- | doc/emacs/mule.texi | 10 | ||||
| -rw-r--r-- | doc/lispref/display.texi | 4 | ||||
| -rw-r--r-- | doc/misc/eshell.texi | 139 | ||||
| -rw-r--r-- | doc/misc/tramp.texi | 6 | ||||
| -rw-r--r-- | etc/NEWS.30 | 4 | ||||
| -rw-r--r-- | java/org/gnu/emacs/EmacsService.java | 18 | ||||
| -rw-r--r-- | lisp/desktop.el | 4 | ||||
| -rw-r--r-- | lisp/dired-x.el | 4 | ||||
| -rw-r--r-- | lisp/dired.el | 20 | ||||
| -rw-r--r-- | lisp/files.el | 2 | ||||
| -rw-r--r-- | lisp/find-dired.el | 2 | ||||
| -rw-r--r-- | lisp/hilit-chg.el | 2 | ||||
| -rw-r--r-- | lisp/image.el | 4 | ||||
| -rw-r--r-- | lisp/locate.el | 8 | ||||
| -rw-r--r-- | lisp/msb.el | 4 | ||||
| -rw-r--r-- | lisp/net/tramp-sh.el | 5 | ||||
| -rw-r--r-- | lisp/printing.el | 6 | ||||
| -rw-r--r-- | lisp/progmodes/etags-regen.el | 7 | ||||
| -rw-r--r-- | lisp/uniquify.el | 4 | ||||
| -rw-r--r-- | lisp/wdired.el | 10 | ||||
| -rw-r--r-- | lisp/woman.el | 8 | ||||
| -rw-r--r-- | test/lisp/erc/erc-tests.el | 47 | ||||
| -rw-r--r-- | test/src/sqlite-tests.el | 1 |
23 files changed, 218 insertions, 101 deletions
diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi index 55dd74c48a3..8b16c661a7e 100644 --- a/doc/emacs/mule.texi +++ b/doc/emacs/mule.texi | |||
| @@ -1657,6 +1657,16 @@ used. Some examples are: | |||
| 1657 | 'han (font-spec :registry "big5") | 1657 | 'han (font-spec :registry "big5") |
| 1658 | nil 'prepend) | 1658 | nil 'prepend) |
| 1659 | 1659 | ||
| 1660 | @cindex emoji font | ||
| 1661 | ;; Use "Noto Color Emoji" for the emoji script (this is the default). | ||
| 1662 | (set-fontset-font "fontset-default" 'emoji | ||
| 1663 | '("Noto Color Emoji" . "iso10646-1") | ||
| 1664 | nil 'prepend) | ||
| 1665 | |||
| 1666 | ;; Display the "heart" character using a color font. | ||
| 1667 | (set-fontset-font "fontset-default" | ||
| 1668 | #x2764 "Noto Color Emoji") | ||
| 1669 | |||
| 1660 | ;; Use MyPrivateFont for the Unicode private use area. | 1670 | ;; Use MyPrivateFont for the Unicode private use area. |
| 1661 | (set-fontset-font "fontset-default" '(#xe000 . #xf8ff) | 1671 | (set-fontset-font "fontset-default" '(#xe000 . #xf8ff) |
| 1662 | "MyPrivateFont") | 1672 | "MyPrivateFont") |
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 6e4b727a2bd..16f60bdebf6 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi | |||
| @@ -7095,7 +7095,9 @@ buffer's text. | |||
| 7095 | 7095 | ||
| 7096 | Internally, this function creates an overlay, and gives it a | 7096 | Internally, this function creates an overlay, and gives it a |
| 7097 | @code{before-string} property containing text that has a @code{display} | 7097 | @code{before-string} property containing text that has a @code{display} |
| 7098 | property whose value is the image. (Whew! that was a mouthful@dots{}) | 7098 | property whose value is the image. (Whew! that was a mouthful@dots{}). |
| 7099 | It returns the created overlay upon success, and also sets its | ||
| 7100 | @code{put-image} property to @code{t}. | ||
| 7099 | @end defun | 7101 | @end defun |
| 7100 | 7102 | ||
| 7101 | @defun remove-images start end &optional buffer | 7103 | @defun remove-images start end &optional buffer |
diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi index 8547131194e..c52b8dd66c9 100644 --- a/doc/misc/eshell.texi +++ b/doc/misc/eshell.texi | |||
| @@ -76,6 +76,7 @@ similar to command shells such as @command{bash}, @command{zsh}, | |||
| 76 | 76 | ||
| 77 | @menu | 77 | @menu |
| 78 | * Introduction:: A brief introduction to the Emacs Shell. | 78 | * Introduction:: A brief introduction to the Emacs Shell. |
| 79 | * Entry Points:: | ||
| 79 | * Commands:: | 80 | * Commands:: |
| 80 | * Expansion:: | 81 | * Expansion:: |
| 81 | * Input/Output:: | 82 | * Input/Output:: |
| @@ -186,6 +187,116 @@ Apart from these, a lot of people have sent suggestions, ideas, | |||
| 186 | requests, bug reports and encouragement. Thanks a lot! Without you | 187 | requests, bug reports and encouragement. Thanks a lot! Without you |
| 187 | there would be no new releases of Eshell. | 188 | there would be no new releases of Eshell. |
| 188 | 189 | ||
| 190 | @node Entry Points | ||
| 191 | @chapter Entry Points | ||
| 192 | @cindex starting Eshell | ||
| 193 | @cindex Eshell, starting | ||
| 194 | |||
| 195 | Eshell provides several different ways to start it, depending on the | ||
| 196 | situation. | ||
| 197 | |||
| 198 | @menu | ||
| 199 | * Interactive Shell:: | ||
| 200 | * One-Off Commands:: | ||
| 201 | * Scripts:: | ||
| 202 | @end menu | ||
| 203 | |||
| 204 | @node Interactive Shell | ||
| 205 | @section Interactive Shell | ||
| 206 | @cindex interactive session | ||
| 207 | |||
| 208 | The most common way to use Eshell is via an interactive shell. You can | ||
| 209 | start this via the @code{eshell} command: | ||
| 210 | |||
| 211 | @deffn Command eshell &optional arg | ||
| 212 | Start a new interactive Eshell session, or switch to an already active | ||
| 213 | session. The exact behavior depends on the value of @var{arg} | ||
| 214 | (interactively, the prefix argument): | ||
| 215 | |||
| 216 | @table @asis | ||
| 217 | |||
| 218 | @item @code{nil} or omitted | ||
| 219 | Start or switch to the default Eshell session. This is the behavior | ||
| 220 | when typing @kbd{M-x eshell @key{RET}}. | ||
| 221 | |||
| 222 | @item a number | ||
| 223 | Start or switch to the Eshell session with the specified number (e.g.@: | ||
| 224 | @samp{*eshell*<2>}). | ||
| 225 | |||
| 226 | @item anything else | ||
| 227 | Start a new Eshell session, no matter if another one already exists. | ||
| 228 | |||
| 229 | @end table | ||
| 230 | @end deffn | ||
| 231 | |||
| 232 | @node One-Off Commands | ||
| 233 | @section One-Off Commands | ||
| 234 | @cindex command invocation, from anywhere | ||
| 235 | |||
| 236 | You can also run individual Eshell commands from anywhere within Emacs: | ||
| 237 | |||
| 238 | @deffn Command eshell-command command &optional to-current-buffer | ||
| 239 | Execute the Eshell command string @var{command} and show the output in a | ||
| 240 | buffer. If @var{to-current-buffer} is non-@code{nil} (interactively, | ||
| 241 | with the prefix argument), then insert output into the current buffer at | ||
| 242 | point. | ||
| 243 | |||
| 244 | When the command ends with @kbd{&}, Eshell will evaluate the command | ||
| 245 | asynchronously. Otherwise, it will wait until the command has finished | ||
| 246 | execution. | ||
| 247 | @end deffn | ||
| 248 | |||
| 249 | @defun eshell-command-result command &optional status-var | ||
| 250 | Execute the Eshell command string @var{command} and return the result, | ||
| 251 | like using the variable @code{$$} in an interactive session | ||
| 252 | (@pxref{Variables}). If @var{status-var} is a symbol, this function | ||
| 253 | will set it to the exit status of the command (like using the variable | ||
| 254 | @code{$?} in an interactive session). | ||
| 255 | @end defun | ||
| 256 | |||
| 257 | @node Scripts | ||
| 258 | @section Scripts | ||
| 259 | @cindex scripts | ||
| 260 | |||
| 261 | @cmindex source | ||
| 262 | @cmindex . | ||
| 263 | Like other shells, you can create Eshell @dfn{scripts}. An Eshell | ||
| 264 | script is simply a file containing a sequence of commands that will be | ||
| 265 | executed as though you entered them one at a time in an interactive | ||
| 266 | Eshell session. You can invoke these scripts from within Eshell with | ||
| 267 | @command{source}, which will run the script in a subshell. If you wish | ||
| 268 | to run a script in your @emph{current} Eshell environment, use the | ||
| 269 | @code{.} command instead. | ||
| 270 | |||
| 271 | Like with aliases (@pxref{Aliases}), Eshell scripts can accept any | ||
| 272 | number of arguments. Within the script, you can refer to these with | ||
| 273 | the special variables @code{$0}, @code{$1}, @dots{}, @code{$9}, and | ||
| 274 | @code{$*}. | ||
| 275 | |||
| 276 | You can also invoke Eshell scripts from outside of Eshell: | ||
| 277 | |||
| 278 | @defun eshell-execute-file file &optional args destination | ||
| 279 | Execute the Eshell commands contained in @var{file}, passing an optional | ||
| 280 | list of @var{args} to the script. If @var{destination} is @code{t}, | ||
| 281 | write the command output to the current buffer. If @code{nil}, don't | ||
| 282 | write the output anywhere. For any other value, output to the | ||
| 283 | corresponding Eshell target (@pxref{Redirection}). | ||
| 284 | @end defun | ||
| 285 | |||
| 286 | @cindex batch scripts | ||
| 287 | @defun eshell-batch-file | ||
| 288 | This function lets you make an Eshell script file executable from | ||
| 289 | outside of Emacs by adding it to the script's interpreter directive like | ||
| 290 | this: | ||
| 291 | |||
| 292 | @example | ||
| 293 | #!/usr/bin/env -S emacs --batch -f eshell-batch-file | ||
| 294 | @end example | ||
| 295 | |||
| 296 | As with other ways of invoking Eshell scripts, you can pass extra | ||
| 297 | arguments to the script on the command line. | ||
| 298 | @end defun | ||
| 299 | |||
| 189 | @node Commands | 300 | @node Commands |
| 190 | @chapter Commands | 301 | @chapter Commands |
| 191 | 302 | ||
| @@ -208,7 +319,6 @@ that will be invoked, type this as the Eshell prompt: | |||
| 208 | * Aliases:: | 319 | * Aliases:: |
| 209 | * Remote Access:: | 320 | * Remote Access:: |
| 210 | * Control Flow:: | 321 | * Control Flow:: |
| 211 | * Scripts:: | ||
| 212 | @end menu | 322 | @end menu |
| 213 | 323 | ||
| 214 | @node Invocation | 324 | @node Invocation |
| @@ -1597,33 +1707,6 @@ treat it as a list of one element. If you specify multiple | |||
| 1597 | 1707 | ||
| 1598 | @end table | 1708 | @end table |
| 1599 | 1709 | ||
| 1600 | @node Scripts | ||
| 1601 | @section Scripts | ||
| 1602 | @cmindex source | ||
| 1603 | @fnindex eshell-execute-file | ||
| 1604 | @fnindex eshell-batch-file | ||
| 1605 | You can run Eshell scripts much like scripts for other shells; the main | ||
| 1606 | difference is that since Eshell is not a system command, you have to run | ||
| 1607 | it from within Emacs. An Eshell script is simply a file containing a | ||
| 1608 | sequence of commands, as with almost any other shell script. You can | ||
| 1609 | invoke scripts from within Eshell with @command{source}, or from | ||
| 1610 | anywhere in Emacs with @code{eshell-execute-file}. Additionally, you | ||
| 1611 | can make an Eshell script file executable by calling | ||
| 1612 | @code{eshell-batch-file} in the interpreter directive: | ||
| 1613 | |||
| 1614 | @example | ||
| 1615 | #!/usr/bin/env -S emacs --batch -f eshell-batch-file | ||
| 1616 | @end example | ||
| 1617 | |||
| 1618 | Like with aliases (@pxref{Aliases}), Eshell scripts can accept any | ||
| 1619 | number of arguments. Within the script, you can refer to these with | ||
| 1620 | the special variables @code{$0}, @code{$1}, @dots{}, @code{$9}, and | ||
| 1621 | @code{$*}. | ||
| 1622 | |||
| 1623 | @cmindex . | ||
| 1624 | If you wish to load a script into your @emph{current} environment, | ||
| 1625 | rather than in a subshell, use the @code{.} command. | ||
| 1626 | |||
| 1627 | @node Expansion | 1710 | @node Expansion |
| 1628 | @chapter Expansion | 1711 | @chapter Expansion |
| 1629 | Expansion in a command shell is somewhat like macro expansion in macro | 1712 | Expansion in a command shell is somewhat like macro expansion in macro |
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index ef74f1e3f13..e1130917f0c 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi | |||
| @@ -892,9 +892,9 @@ a predefined timeout. | |||
| 892 | @cindex method @option{run0} | 892 | @cindex method @option{run0} |
| 893 | @cindex @option{run0} method | 893 | @cindex @option{run0} method |
| 894 | 894 | ||
| 895 | This method is used on @code{systemd}-based hosts. Internally, it | 895 | @c This requires systemd 256. Check with 'systemd-run --version'. |
| 896 | uses the @code{systemd-run} command. A @option{run0} connection is | 896 | This method is used on @code{systemd}-based hosts. A @option{run0} |
| 897 | disabled after a predefined timeout as well. | 897 | connection is disabled after a predefined timeout as well. |
| 898 | 898 | ||
| 899 | This is an optional method, @pxref{Optional methods}. | 899 | This is an optional method, @pxref{Optional methods}. |
| 900 | 900 | ||
diff --git a/etc/NEWS.30 b/etc/NEWS.30 index 31d69ddabab..57b17cc858e 100644 --- a/etc/NEWS.30 +++ b/etc/NEWS.30 | |||
| @@ -1329,8 +1329,8 @@ Android. | |||
| 1329 | 1329 | ||
| 1330 | +++ | 1330 | +++ |
| 1331 | *** New optional connection method "run0". | 1331 | *** New optional connection method "run0". |
| 1332 | This connection method is similar to "sudo", but it uses the | 1332 | This connection method is similar to "sudo", but it uses the 'systemd' |
| 1333 | 'systemd-run' program internally. | 1333 | framework internally. |
| 1334 | 1334 | ||
| 1335 | +++ | 1335 | +++ |
| 1336 | *** New connection methods "dockercp" and "podmancp". | 1336 | *** New connection methods "dockercp" and "podmancp". |
diff --git a/java/org/gnu/emacs/EmacsService.java b/java/org/gnu/emacs/EmacsService.java index 77124a7d80f..7afe4c7f82e 100644 --- a/java/org/gnu/emacs/EmacsService.java +++ b/java/org/gnu/emacs/EmacsService.java | |||
| @@ -987,6 +987,7 @@ public final class EmacsService extends Service | |||
| 987 | String name, mode; | 987 | String name, mode; |
| 988 | ParcelFileDescriptor fd; | 988 | ParcelFileDescriptor fd; |
| 989 | int i; | 989 | int i; |
| 990 | Uri uriObject; | ||
| 990 | 991 | ||
| 991 | /* Figure out the file access mode. */ | 992 | /* Figure out the file access mode. */ |
| 992 | 993 | ||
| @@ -1001,12 +1002,20 @@ public final class EmacsService extends Service | |||
| 1001 | if (truncate) | 1002 | if (truncate) |
| 1002 | mode += "t"; | 1003 | mode += "t"; |
| 1003 | 1004 | ||
| 1005 | /* Decode the URI. It might be possible for a perverse user to | ||
| 1006 | construct a content file name that Android finds unparsable, so | ||
| 1007 | punt if the result is NULL. */ | ||
| 1008 | |||
| 1009 | uriObject = Uri.parse (uri); | ||
| 1010 | if (uriObject == null) | ||
| 1011 | return -1; | ||
| 1012 | |||
| 1004 | /* Try to open a corresponding ParcelFileDescriptor. Though | 1013 | /* Try to open a corresponding ParcelFileDescriptor. Though |
| 1005 | `fd.detachFd' is exclusive to Honeycomb and up, this function is | 1014 | `fd.detachFd' is exclusive to Honeycomb and up, this function is |
| 1006 | never called on systems older than KitKat, which is Emacs's | 1015 | never called on systems older than KitKat, which is Emacs's |
| 1007 | minimum requirement for access to /content/by-authority. */ | 1016 | minimum requirement for access to /content/by-authority. */ |
| 1008 | 1017 | ||
| 1009 | fd = resolver.openFileDescriptor (Uri.parse (uri), mode); | 1018 | fd = resolver.openFileDescriptor (uriObject, mode); |
| 1010 | if (fd == null) | 1019 | if (fd == null) |
| 1011 | return -1; | 1020 | return -1; |
| 1012 | 1021 | ||
| @@ -1027,7 +1036,14 @@ public final class EmacsService extends Service | |||
| 1027 | Uri uri; | 1036 | Uri uri; |
| 1028 | int rc, flags; | 1037 | int rc, flags; |
| 1029 | 1038 | ||
| 1039 | /* Decode the URI. It might be possible that perverse user should | ||
| 1040 | construct a content file name that Android finds unparsable, so | ||
| 1041 | punt if the result is NULL. */ | ||
| 1042 | |||
| 1030 | uri = Uri.parse (name); | 1043 | uri = Uri.parse (name); |
| 1044 | if (uri == null) | ||
| 1045 | return false; | ||
| 1046 | |||
| 1031 | flags = 0; | 1047 | flags = 0; |
| 1032 | 1048 | ||
| 1033 | if (readable) | 1049 | if (readable) |
diff --git a/lisp/desktop.el b/lisp/desktop.el index 3fa09ce6a41..06f0bbb946e 100644 --- a/lisp/desktop.el +++ b/lisp/desktop.el | |||
| @@ -122,7 +122,7 @@ | |||
| 122 | ;; things you did not mean to keep. Use M-x desktop-clear RET. | 122 | ;; things you did not mean to keep. Use M-x desktop-clear RET. |
| 123 | 123 | ||
| 124 | ;; Thanks to hetrick@phys.uva.nl (Jim Hetrick) for useful ideas. | 124 | ;; Thanks to hetrick@phys.uva.nl (Jim Hetrick) for useful ideas. |
| 125 | ;; avk@rtsg.mot.com (Andrew V. Klein) for a dired tip. | 125 | ;; avk@rtsg.mot.com (Andrew V. Klein) for a Dired tip. |
| 126 | ;; chris@tecc.co.uk (Chris Boucher) for a mark tip. | 126 | ;; chris@tecc.co.uk (Chris Boucher) for a mark tip. |
| 127 | ;; f89-kam@nada.kth.se (Klas Mellbourn) for a mh-e tip. | 127 | ;; f89-kam@nada.kth.se (Klas Mellbourn) for a mh-e tip. |
| 128 | ;; kifer@cs.stonybrook.edu (M. Kifer) for a bug hunt. | 128 | ;; kifer@cs.stonybrook.edu (M. Kifer) for a bug hunt. |
| @@ -296,7 +296,7 @@ If nil, just print error messages in the message buffer." | |||
| 296 | (defcustom desktop-no-desktop-file-hook nil | 296 | (defcustom desktop-no-desktop-file-hook nil |
| 297 | "Normal hook run when `desktop-read' can't find a desktop file. | 297 | "Normal hook run when `desktop-read' can't find a desktop file. |
| 298 | Run in the directory in which the desktop file was sought. | 298 | Run in the directory in which the desktop file was sought. |
| 299 | May be used to show a dired buffer." | 299 | May be used to show a Dired buffer." |
| 300 | :type 'hook | 300 | :type 'hook |
| 301 | :group 'desktop | 301 | :group 'desktop |
| 302 | :version "22.1") | 302 | :version "22.1") |
diff --git a/lisp/dired-x.el b/lisp/dired-x.el index 753d3054d2f..98cf09945da 100644 --- a/lisp/dired-x.el +++ b/lisp/dired-x.el | |||
| @@ -28,7 +28,7 @@ | |||
| 28 | ;; This is based on Sebastian Kremer's excellent dired-x.el (Dired Extra), | 28 | ;; This is based on Sebastian Kremer's excellent dired-x.el (Dired Extra), |
| 29 | ;; version 1.191, adapted for GNU Emacs. See the `dired-x' Info manual. | 29 | ;; version 1.191, adapted for GNU Emacs. See the `dired-x' Info manual. |
| 30 | 30 | ||
| 31 | ;; At load time dired-x.el will install itself and bind some dired keys. | 31 | ;; At load time dired-x.el will install itself and bind some Dired keys. |
| 32 | ;; Some dired.el and dired-aux.el functions have extra features if | 32 | ;; Some dired.el and dired-aux.el functions have extra features if |
| 33 | ;; dired-x is loaded. | 33 | ;; dired-x is loaded. |
| 34 | 34 | ||
| @@ -858,7 +858,7 @@ sure that a trailing letter in STR is one of BKkMGTPEZYRQ." | |||
| 858 | "Mark files for which PREDICATE returns non-nil. | 858 | "Mark files for which PREDICATE returns non-nil. |
| 859 | With a prefix arg, unmark or unflag those files instead. | 859 | With a prefix arg, unmark or unflag those files instead. |
| 860 | 860 | ||
| 861 | PREDICATE is a lisp expression that can refer to the following symbols: | 861 | PREDICATE is a Lisp expression that can refer to the following symbols: |
| 862 | 862 | ||
| 863 | inode [integer] the inode of the file (only for ls -i output) | 863 | inode [integer] the inode of the file (only for ls -i output) |
| 864 | s [integer] the size of the file for ls -s output | 864 | s [integer] the size of the file for ls -s output |
diff --git a/lisp/dired.el b/lisp/dired.el index 33b79cbef85..0d526dfc376 100644 --- a/lisp/dired.el +++ b/lisp/dired.el | |||
| @@ -350,7 +350,7 @@ with the buffer narrowed to the listing." | |||
| 350 | ;; functions probably depend on the dired-subdir-alist to be OK. | 350 | ;; functions probably depend on the dired-subdir-alist to be OK. |
| 351 | 351 | ||
| 352 | (defcustom dired-make-directory-clickable t | 352 | (defcustom dired-make-directory-clickable t |
| 353 | "When non-nil, make the directory at the start of the dired buffer clickable." | 353 | "When non-nil, make the directory at the start of the Dired buffer clickable." |
| 354 | :version "29.1" | 354 | :version "29.1" |
| 355 | :group 'dired | 355 | :group 'dired |
| 356 | :type 'boolean) | 356 | :type 'boolean) |
| @@ -941,7 +941,7 @@ If ARG is `marked', don't return the current file if nothing else | |||
| 941 | is marked. | 941 | is marked. |
| 942 | 942 | ||
| 943 | If optional third arg SHOW-PROGRESS evaluates to non-nil, | 943 | If optional third arg SHOW-PROGRESS evaluates to non-nil, |
| 944 | redisplay the dired buffer after each file is processed. | 944 | redisplay the Dired buffer after each file is processed. |
| 945 | 945 | ||
| 946 | No guarantee is made about the position on the marked line. | 946 | No guarantee is made about the position on the marked line. |
| 947 | BODY must ensure this itself if it depends on this. | 947 | BODY must ensure this itself if it depends on this. |
| @@ -1145,7 +1145,7 @@ ERROR can be a string with the error message." | |||
| 1145 | ;; nil default-directory nil)))))))) | 1145 | ;; nil default-directory nil)))))))) |
| 1146 | 1146 | ||
| 1147 | (defun dired-file-name-at-point () | 1147 | (defun dired-file-name-at-point () |
| 1148 | "Try to get a file name at point in the current dired buffer. | 1148 | "Try to get a file name at point in the current Dired buffer. |
| 1149 | This hook is intended to be put in `file-name-at-point-functions'. | 1149 | This hook is intended to be put in `file-name-at-point-functions'. |
| 1150 | Note that it returns an abbreviated name that can't be used | 1150 | Note that it returns an abbreviated name that can't be used |
| 1151 | as an argument to `dired-goto-file'." | 1151 | as an argument to `dired-goto-file'." |
| @@ -2133,7 +2133,7 @@ BUFFER-POSITION is the point position in the current Dired buffer. | |||
| 2133 | It has the form (BUFFER DIRED-FILENAME BUFFER-LINE-NUMBER). | 2133 | It has the form (BUFFER DIRED-FILENAME BUFFER-LINE-NUMBER). |
| 2134 | 2134 | ||
| 2135 | WINDOW-POSITIONS are current positions in all windows displaying | 2135 | WINDOW-POSITIONS are current positions in all windows displaying |
| 2136 | this dired buffer. The window positions have the form (WINDOW | 2136 | this Dired buffer. The window positions have the form (WINDOW |
| 2137 | DIRED-FILENAME WINDOW-LINE-NUMBER). | 2137 | DIRED-FILENAME WINDOW-LINE-NUMBER). |
| 2138 | 2138 | ||
| 2139 | We store line numbers instead of point positions because the header | 2139 | We store line numbers instead of point positions because the header |
| @@ -3465,7 +3465,7 @@ You can then feed the file name(s) to other commands with \\[yank]." | |||
| 3465 | If FILE is non-nil, include only those whose wildcard pattern (if any) | 3465 | If FILE is non-nil, include only those whose wildcard pattern (if any) |
| 3466 | matches FILE. | 3466 | matches FILE. |
| 3467 | The list is in reverse order of buffer creation, most recent last. | 3467 | The list is in reverse order of buffer creation, most recent last. |
| 3468 | As a side effect, killed dired buffers for DIR are removed from | 3468 | As a side effect, killed Dired buffers for DIR are removed from |
| 3469 | `dired-buffers'." | 3469 | `dired-buffers'." |
| 3470 | (setq dir (file-name-as-directory (expand-file-name dir))) | 3470 | (setq dir (file-name-as-directory (expand-file-name dir))) |
| 3471 | (let (result buf) | 3471 | (let (result buf) |
| @@ -3492,7 +3492,7 @@ As a side effect, killed dired buffers for DIR are removed from | |||
| 3492 | 3492 | ||
| 3493 | (defun dired-buffers-for-dir-or-subdir (dir) | 3493 | (defun dired-buffers-for-dir-or-subdir (dir) |
| 3494 | "Return a list of buffers for DIR or a subdirectory thereof. | 3494 | "Return a list of buffers for DIR or a subdirectory thereof. |
| 3495 | As a side effect, killed dired buffers for DIR are removed from | 3495 | As a side effect, killed Dired buffers for DIR are removed from |
| 3496 | `dired-buffers'." | 3496 | `dired-buffers'." |
| 3497 | (setq dir (file-name-as-directory dir)) | 3497 | (setq dir (file-name-as-directory dir)) |
| 3498 | (let (result buf) | 3498 | (let (result buf) |
| @@ -4049,7 +4049,7 @@ non-empty directories is allowed." | |||
| 4049 | (dired-move-to-filename)) | 4049 | (dired-move-to-filename)) |
| 4050 | 4050 | ||
| 4051 | (defun dired-fun-in-all-buffers (directory file fun &rest args) | 4051 | (defun dired-fun-in-all-buffers (directory file fun &rest args) |
| 4052 | "In all buffers dired'ing DIRECTORY, run FUN with ARGS. | 4052 | "In all buffers Dired'ing DIRECTORY, run FUN with ARGS. |
| 4053 | If the buffer has a wildcard pattern, check that it matches FILE. | 4053 | If the buffer has a wildcard pattern, check that it matches FILE. |
| 4054 | \(FILE does not include a directory component.) | 4054 | \(FILE does not include a directory component.) |
| 4055 | FILE may be nil, in which case ignore it. | 4055 | FILE may be nil, in which case ignore it. |
| @@ -4064,7 +4064,7 @@ Return list of buffers where FUN succeeded (i.e., returned non-nil)." | |||
| 4064 | 4064 | ||
| 4065 | ;; Delete the entry for FILE from | 4065 | ;; Delete the entry for FILE from |
| 4066 | (defun dired-remove-entry (file) | 4066 | (defun dired-remove-entry (file) |
| 4067 | "Remove entry FILE in the current dired buffer. | 4067 | "Remove entry FILE in the current Dired buffer. |
| 4068 | Note this doesn't delete FILE in the file system. | 4068 | Note this doesn't delete FILE in the file system. |
| 4069 | See `dired-delete-file' in case you wish that." | 4069 | See `dired-delete-file' in case you wish that." |
| 4070 | (save-excursion | 4070 | (save-excursion |
| @@ -4074,7 +4074,7 @@ See `dired-delete-file' in case you wish that." | |||
| 4074 | (line-beginning-position 2)))))) | 4074 | (line-beginning-position 2)))))) |
| 4075 | 4075 | ||
| 4076 | (defun dired-delete-entry (file) | 4076 | (defun dired-delete-entry (file) |
| 4077 | "Remove entry FILE in the current dired buffer. | 4077 | "Remove entry FILE in the current Dired buffer. |
| 4078 | Like `dired-remove-entry' followed by `dired-clean-up-after-deletion'. | 4078 | Like `dired-remove-entry' followed by `dired-clean-up-after-deletion'. |
| 4079 | Note this doesn't delete FILE in the file system. | 4079 | Note this doesn't delete FILE in the file system. |
| 4080 | See `dired-delete-file' in case you wish that." | 4080 | See `dired-delete-file' in case you wish that." |
| @@ -5139,7 +5139,7 @@ move to that file's line in the directory listing. | |||
| 5139 | If the current buffer isn't visiting a file, Dired `default-directory'. | 5139 | If the current buffer isn't visiting a file, Dired `default-directory'. |
| 5140 | 5140 | ||
| 5141 | If in Dired already, pop up a level and goto old directory's line. | 5141 | If in Dired already, pop up a level and goto old directory's line. |
| 5142 | In case the proper Dired file line cannot be found, refresh the dired | 5142 | In case the proper Dired file line cannot be found, refresh the Dired |
| 5143 | buffer and try again. | 5143 | buffer and try again. |
| 5144 | 5144 | ||
| 5145 | When OTHER-WINDOW is non-nil, jump to Dired buffer in other window. | 5145 | When OTHER-WINDOW is non-nil, jump to Dired buffer in other window. |
diff --git a/lisp/files.el b/lisp/files.el index e552f3ac413..66f47b4aa39 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -5769,7 +5769,7 @@ We don't want excessive versions piling up, so there are variables | |||
| 5769 | `kept-old-versions', which tells Emacs how many oldest versions to keep, | 5769 | `kept-old-versions', which tells Emacs how many oldest versions to keep, |
| 5770 | and `kept-new-versions', which tells how many newest versions to keep. | 5770 | and `kept-new-versions', which tells how many newest versions to keep. |
| 5771 | Defaults are 2 old versions and 2 new. | 5771 | Defaults are 2 old versions and 2 new. |
| 5772 | `dired-kept-versions' controls dired's clean-directory (.) command. | 5772 | `dired-kept-versions' controls Dired's clean-directory (.) command. |
| 5773 | If `delete-old-versions' is nil, system will query user | 5773 | If `delete-old-versions' is nil, system will query user |
| 5774 | before trimming versions. Otherwise it does it silently. | 5774 | before trimming versions. Otherwise it does it silently. |
| 5775 | 5775 | ||
diff --git a/lisp/find-dired.el b/lisp/find-dired.el index fa0c034c816..e52adaa9d9f 100644 --- a/lisp/find-dired.el +++ b/lisp/find-dired.el | |||
| @@ -76,7 +76,7 @@ than the latter." | |||
| 76 | This is a cons of two strings (FIND-OPTION . LS-SWITCHES). | 76 | This is a cons of two strings (FIND-OPTION . LS-SWITCHES). |
| 77 | FIND-OPTION is the option (or options) passed to `find' to produce | 77 | FIND-OPTION is the option (or options) passed to `find' to produce |
| 78 | a file listing in the desired format. LS-SWITCHES is a set of | 78 | a file listing in the desired format. LS-SWITCHES is a set of |
| 79 | `ls' switches that tell dired how to parse the output of `find'. | 79 | `ls' switches that tell Dired how to parse the output of `find'. |
| 80 | 80 | ||
| 81 | The two options must be set to compatible values. | 81 | The two options must be set to compatible values. |
| 82 | For example, to use human-readable file sizes with GNU ls: | 82 | For example, to use human-readable file sizes with GNU ls: |
diff --git a/lisp/hilit-chg.el b/lisp/hilit-chg.el index 41bd4026b8e..0015bd024bd 100644 --- a/lisp/hilit-chg.el +++ b/lisp/hilit-chg.el | |||
| @@ -100,7 +100,7 @@ | |||
| 100 | ;; * nil -- then no buffers are suitable; | 100 | ;; * nil -- then no buffers are suitable; |
| 101 | ;; * a function -- this function is called and the result is used. As | 101 | ;; * a function -- this function is called and the result is used. As |
| 102 | ;; an example, if the value is `buffer-file-name' then all buffers | 102 | ;; an example, if the value is `buffer-file-name' then all buffers |
| 103 | ;; who are visiting files are suitable, but others (like dired | 103 | ;; who are visiting files are suitable, but others (like Dired |
| 104 | ;; buffers) are not; | 104 | ;; buffers) are not; |
| 105 | ;; * a list -- then the buffer is suitable if and only if its mode is in the | 105 | ;; * a list -- then the buffer is suitable if and only if its mode is in the |
| 106 | ;; list, except if the first element is `not', in which case the test | 106 | ;; list, except if the first element is `not', in which case the test |
diff --git a/lisp/image.el b/lisp/image.el index c75c8ff765a..e16bd989ce7 100644 --- a/lisp/image.el +++ b/lisp/image.el | |||
| @@ -638,7 +638,9 @@ IMAGE must be an image created with `create-image' or `defimage'. | |||
| 638 | IMAGE is displayed by putting an overlay into the current buffer with a | 638 | IMAGE is displayed by putting an overlay into the current buffer with a |
| 639 | `before-string' STRING that has a `display' property whose value is the | 639 | `before-string' STRING that has a `display' property whose value is the |
| 640 | image. STRING defaults to \"x\" if it's nil or omitted. | 640 | image. STRING defaults to \"x\" if it's nil or omitted. |
| 641 | The overlay created by this function has the `put-image' property set to t. | 641 | Upon success, this function returns the created overlay with its |
| 642 | `put-image' property set to t. | ||
| 643 | |||
| 642 | POS may be an integer or marker. | 644 | POS may be an integer or marker. |
| 643 | AREA is where to display the image. AREA nil or omitted means | 645 | AREA is where to display the image. AREA nil or omitted means |
| 644 | display it in the text area, a value of `left-margin' means | 646 | display it in the text area, a value of `left-margin' means |
diff --git a/lisp/locate.el b/lisp/locate.el index 70328d5184e..c6a1e9b6e46 100644 --- a/lisp/locate.el +++ b/lisp/locate.el | |||
| @@ -22,7 +22,7 @@ | |||
| 22 | 22 | ||
| 23 | ;;; Commentary: | 23 | ;;; Commentary: |
| 24 | 24 | ||
| 25 | ;; Search a database of files and use dired commands on the result. | 25 | ;; Search a database of files and use Dired commands on the result. |
| 26 | ;; | 26 | ;; |
| 27 | ;; Locate.el provides an interface to a program which searches a | 27 | ;; Locate.el provides an interface to a program which searches a |
| 28 | ;; database of file names. By default, this program is the GNU locate | 28 | ;; database of file names. By default, this program is the GNU locate |
| @@ -60,7 +60,7 @@ | |||
| 60 | ;; character in the file name and the last character in the file name. | 60 | ;; character in the file name and the last character in the file name. |
| 61 | ;; | 61 | ;; |
| 62 | ;; To use locate-mode, simply type M-x locate and then the string | 62 | ;; To use locate-mode, simply type M-x locate and then the string |
| 63 | ;; you wish to find. You can use almost all of the dired commands in | 63 | ;; you wish to find. You can use almost all of the Dired commands in |
| 64 | ;; the resulting *Locate* buffer. It is worth noting that your commands | 64 | ;; the resulting *Locate* buffer. It is worth noting that your commands |
| 65 | ;; do not, of course, affect the file database. For example, if you | 65 | ;; do not, of course, affect the file database. For example, if you |
| 66 | ;; compress a file in the locate buffer, the actual file will be | 66 | ;; compress a file in the locate buffer, the actual file will be |
| @@ -90,7 +90,7 @@ | |||
| 90 | ;; | 90 | ;; |
| 91 | ;;;;;;;; ADVICE For dired-make-relative: ;;;;;;;;; | 91 | ;;;;;;;; ADVICE For dired-make-relative: ;;;;;;;;; |
| 92 | ;; | 92 | ;; |
| 93 | ;; For certain dired commands to work right, you should also include the | 93 | ;; For certain Dired commands to work right, you should also include the |
| 94 | ;; following in your _emacs/.emacs: | 94 | ;; following in your _emacs/.emacs: |
| 95 | ;; | 95 | ;; |
| 96 | ;; (defadvice dired-make-relative (before set-no-error activate) | 96 | ;; (defadvice dired-make-relative (before set-no-error activate) |
| @@ -439,7 +439,7 @@ file name or is inside a subdirectory." | |||
| 439 | (define-derived-mode locate-mode special-mode "Locate" | 439 | (define-derived-mode locate-mode special-mode "Locate" |
| 440 | "Major mode for the `*Locate*' buffer made by \\[locate]. | 440 | "Major mode for the `*Locate*' buffer made by \\[locate]. |
| 441 | \\<locate-mode-map>\ | 441 | \\<locate-mode-map>\ |
| 442 | In that buffer, you can use almost all the usual dired bindings. | 442 | In that buffer, you can use almost all the usual Dired bindings. |
| 443 | \\[locate-find-directory] visits the directory of the file on the current line. | 443 | \\[locate-find-directory] visits the directory of the file on the current line. |
| 444 | This function runs `locate-mode-hook' before returning. | 444 | This function runs `locate-mode-hook' before returning. |
| 445 | 445 | ||
diff --git a/lisp/msb.el b/lisp/msb.el index ec5ca9790da..4252d631335 100644 --- a/lisp/msb.el +++ b/lisp/msb.el | |||
| @@ -398,7 +398,7 @@ Optional second argument MAXBUF is completely ignored." | |||
| 398 | (buffer-name))))) | 398 | (buffer-name))))) |
| 399 | 399 | ||
| 400 | (defun msb-dired-item-handler (_buffer &optional _maxbuf) | 400 | (defun msb-dired-item-handler (_buffer &optional _maxbuf) |
| 401 | "Create one string item, concerning a dired BUFFER, for the buffer menu. | 401 | "Create one string item, concerning a Dired BUFFER, for the buffer menu. |
| 402 | The item looks like: | 402 | The item looks like: |
| 403 | *% <buffer-name> | 403 | *% <buffer-name> |
| 404 | The `*' appears only if the buffer is marked as modified. | 404 | The `*' appears only if the buffer is marked as modified. |
| @@ -434,7 +434,7 @@ An item looks like (NAME . BUFFER)." | |||
| 434 | 434 | ||
| 435 | 435 | ||
| 436 | (defun msb-sort-by-directory (item1 item2) | 436 | (defun msb-sort-by-directory (item1 item2) |
| 437 | "Sort the items ITEM1 and ITEM2 by directory name. Made for dired. | 437 | "Sort the items ITEM1 and ITEM2 by directory name. Made for Dired. |
| 438 | An item look like (NAME . BUFFER)." | 438 | An item look like (NAME . BUFFER)." |
| 439 | (string-lessp (with-current-buffer (cdr item1) | 439 | (string-lessp (with-current-buffer (cdr item1) |
| 440 | (msb--dired-directory)) | 440 | (msb--dired-directory)) |
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 4a0c09ff722..df8ca151718 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el | |||
| @@ -509,8 +509,9 @@ The string is used in `tramp-methods'.") | |||
| 509 | "Enable \"run0\" method." | 509 | "Enable \"run0\" method." |
| 510 | (add-to-list 'tramp-methods | 510 | (add-to-list 'tramp-methods |
| 511 | `("run0" | 511 | `("run0" |
| 512 | (tramp-login-program "systemd-run") | 512 | (tramp-login-program "run0") |
| 513 | (tramp-login-args (("--uid" "%u") ("-t") ("%l"))) | 513 | (tramp-login-args (("--user" "%u") |
| 514 | ("--background" "''") ("%l"))) | ||
| 514 | (tramp-remote-shell ,tramp-default-remote-shell) | 515 | (tramp-remote-shell ,tramp-default-remote-shell) |
| 515 | (tramp-remote-shell-args ("-c")) | 516 | (tramp-remote-shell-args ("-c")) |
| 516 | (tramp-connection-timeout 10) | 517 | (tramp-connection-timeout 10) |
diff --git a/lisp/printing.el b/lisp/printing.el index 404d1be619f..cbb78265f3c 100644 --- a/lisp/printing.el +++ b/lisp/printing.el | |||
| @@ -1663,7 +1663,7 @@ DEFAULT It's a way to set default values when this entry is selected. | |||
| 1663 | (pr-gs-device . (my-gs-device t)) | 1663 | (pr-gs-device . (my-gs-device t)) |
| 1664 | 1664 | ||
| 1665 | This variable should be modified by customization engine. If this variable is | 1665 | This variable should be modified by customization engine. If this variable is |
| 1666 | modified by other means (for example, a lisp function), use `pr-update-menus' | 1666 | modified by other means (for example, a Lisp function), use `pr-update-menus' |
| 1667 | function (see it for documentation) to update PostScript printer menu. | 1667 | function (see it for documentation) to update PostScript printer menu. |
| 1668 | 1668 | ||
| 1669 | Examples: | 1669 | Examples: |
| @@ -2335,7 +2335,7 @@ DEFAULT It's a way to set default values when this entry is selected. | |||
| 2335 | 2335 | ||
| 2336 | (set VARIABLE (eval VALUE)) | 2336 | (set VARIABLE (eval VALUE)) |
| 2337 | 2337 | ||
| 2338 | Note that VALUE can be any valid lisp expression. So, don't | 2338 | Note that VALUE can be any valid Lisp expression. So, don't |
| 2339 | forget to quote symbols and constant lists. | 2339 | forget to quote symbols and constant lists. |
| 2340 | If VARIABLE is the special keyword `inherits-from:', VALUE must | 2340 | If VARIABLE is the special keyword `inherits-from:', VALUE must |
| 2341 | be a symbol name setting defined in `pr-setting-database' from | 2341 | be a symbol name setting defined in `pr-setting-database' from |
| @@ -2347,7 +2347,7 @@ DEFAULT It's a way to set default values when this entry is selected. | |||
| 2347 | (pr-gs-device . (my-gs-device t)) | 2347 | (pr-gs-device . (my-gs-device t)) |
| 2348 | 2348 | ||
| 2349 | This variable should be modified by customization engine. If this variable is | 2349 | This variable should be modified by customization engine. If this variable is |
| 2350 | modified by other means (for example, a lisp function), use `pr-update-menus' | 2350 | modified by other means (for example, a Lisp function), use `pr-update-menus' |
| 2351 | function (see it for documentation) to update PostScript utility menu. | 2351 | function (see it for documentation) to update PostScript utility menu. |
| 2352 | 2352 | ||
| 2353 | NOTE: Don't forget to download and install the utilities declared on | 2353 | NOTE: Don't forget to download and install the utilities declared on |
diff --git a/lisp/progmodes/etags-regen.el b/lisp/progmodes/etags-regen.el index dc778b14061..21ea9bfb8b3 100644 --- a/lisp/progmodes/etags-regen.el +++ b/lisp/progmodes/etags-regen.el | |||
| @@ -294,7 +294,9 @@ File extensions to generate the tags for." | |||
| 294 | (add-hook 'before-save-hook #'etags-regen--mark-as-new) | 294 | (add-hook 'before-save-hook #'etags-regen--mark-as-new) |
| 295 | (setq etags-regen--tags-file tags-file | 295 | (setq etags-regen--tags-file tags-file |
| 296 | etags-regen--tags-root root) | 296 | etags-regen--tags-root root) |
| 297 | (visit-tags-table etags-regen--tags-file)) | 297 | (visit-tags-table etags-regen--tags-file) |
| 298 | (with-current-buffer (get-file-buffer tags-file) | ||
| 299 | (add-hook 'kill-buffer-hook #'etags-regen--tags-cleanup nil t))) | ||
| 298 | 300 | ||
| 299 | (defun etags-regen--ctags-p () | 301 | (defun etags-regen--ctags-p () |
| 300 | (string-search "Ctags" | 302 | (string-search "Ctags" |
| @@ -390,7 +392,8 @@ File extensions to generate the tags for." | |||
| 390 | 392 | ||
| 391 | (defun etags-regen--tags-cleanup () | 393 | (defun etags-regen--tags-cleanup () |
| 392 | (when etags-regen--tags-file | 394 | (when etags-regen--tags-file |
| 393 | (let ((buffer (get-file-buffer etags-regen--tags-file))) | 395 | (let ((buffer (get-file-buffer etags-regen--tags-file)) |
| 396 | kill-buffer-hook) | ||
| 394 | (and buffer | 397 | (and buffer |
| 395 | (kill-buffer buffer))) | 398 | (kill-buffer buffer))) |
| 396 | (tags-reset-tags-tables) | 399 | (tags-reset-tags-tables) |
diff --git a/lisp/uniquify.el b/lisp/uniquify.el index 7085089dbe3..efe42762a6b 100644 --- a/lisp/uniquify.el +++ b/lisp/uniquify.el | |||
| @@ -28,7 +28,7 @@ | |||
| 28 | 28 | ||
| 29 | ;; Emacs's traditional method for making buffer names unique adds <2>, <3>, | 29 | ;; Emacs's traditional method for making buffer names unique adds <2>, <3>, |
| 30 | ;; etc. to the end of (all but one of) the buffers. This file replaces | 30 | ;; etc. to the end of (all but one of) the buffers. This file replaces |
| 31 | ;; that behavior, for buffers visiting files and dired buffers, with a | 31 | ;; that behavior, for buffers visiting files and Dired buffers, with a |
| 32 | ;; uniquification that adds parts of the file name until the buffer names | 32 | ;; uniquification that adds parts of the file name until the buffer names |
| 33 | ;; are unique. For instance, buffers visiting /u/mernst/tmp/Makefile and | 33 | ;; are unique. For instance, buffers visiting /u/mernst/tmp/Makefile and |
| 34 | ;; /usr/projects/zaphod/Makefile would be named Makefile|tmp and | 34 | ;; /usr/projects/zaphod/Makefile would be named Makefile|tmp and |
| @@ -148,7 +148,7 @@ file name components (default \"\\\")." | |||
| 148 | :type '(choice (const nil) string)) | 148 | :type '(choice (const nil) string)) |
| 149 | 149 | ||
| 150 | (defcustom uniquify-trailing-separator-p nil | 150 | (defcustom uniquify-trailing-separator-p nil |
| 151 | "If non-nil, add a file name separator to dired buffer names. | 151 | "If non-nil, add a file name separator to Dired buffer names. |
| 152 | If `uniquify-buffer-name-style' is `forward', add the separator at the end; | 152 | If `uniquify-buffer-name-style' is `forward', add the separator at the end; |
| 153 | if it is `reverse', add the separator at the beginning; otherwise, this | 153 | if it is `reverse', add the separator at the beginning; otherwise, this |
| 154 | variable is ignored." | 154 | variable is ignored." |
diff --git a/lisp/wdired.el b/lisp/wdired.el index be7e39c8957..8ce115eb142 100644 --- a/lisp/wdired.el +++ b/lisp/wdired.el | |||
| @@ -35,7 +35,7 @@ | |||
| 35 | ;; Dired buffer editable, by changing the buffer mode (which inhibits | 35 | ;; Dired buffer editable, by changing the buffer mode (which inhibits |
| 36 | ;; all of the commands of Dired mode). Here you can edit the names of | 36 | ;; all of the commands of Dired mode). Here you can edit the names of |
| 37 | ;; one or more files and directories, and when you press `C-c C-c', | 37 | ;; one or more files and directories, and when you press `C-c C-c', |
| 38 | ;; the renaming takes effect and you are back to dired mode. | 38 | ;; the renaming takes effect and you are back to Dired mode. |
| 39 | ;; | 39 | ;; |
| 40 | ;; Other things you can do with WDired: | 40 | ;; Other things you can do with WDired: |
| 41 | ;; | 41 | ;; |
| @@ -72,7 +72,7 @@ | |||
| 72 | (autoload 'dired-do-create-files-regexp "dired-aux") | 72 | (autoload 'dired-do-create-files-regexp "dired-aux") |
| 73 | 73 | ||
| 74 | (defgroup wdired nil | 74 | (defgroup wdired nil |
| 75 | "Mode to rename files by editing their names in dired buffers." | 75 | "Mode to rename files by editing their names in Dired buffers." |
| 76 | :group 'dired) | 76 | :group 'dired) |
| 77 | 77 | ||
| 78 | (defcustom wdired-use-interactive-rename nil | 78 | (defcustom wdired-use-interactive-rename nil |
| @@ -438,7 +438,7 @@ non-nil means return old filename." | |||
| 438 | (concat (dired-current-directory) file)))))) | 438 | (concat (dired-current-directory) file)))))) |
| 439 | 439 | ||
| 440 | (defun wdired-change-to-dired-mode () | 440 | (defun wdired-change-to-dired-mode () |
| 441 | "Change the mode back to dired." | 441 | "Change the mode back to Dired." |
| 442 | (or (eq major-mode 'wdired-mode) | 442 | (or (eq major-mode 'wdired-mode) |
| 443 | (error "Not a Wdired buffer")) | 443 | (error "Not a Wdired buffer")) |
| 444 | (let ((inhibit-read-only t)) | 444 | (let ((inhibit-read-only t)) |
| @@ -677,8 +677,8 @@ non-nil means return old filename." | |||
| 677 | (make-directory (file-name-directory file-new) t))) | 677 | (make-directory (file-name-directory file-new) t))) |
| 678 | 678 | ||
| 679 | (defun wdired-exit () | 679 | (defun wdired-exit () |
| 680 | "Exit wdired and return to dired mode. | 680 | "Exit wdired and return to Dired mode. |
| 681 | Just return to dired mode if there are no changes. Otherwise, | 681 | Just return to Dired mode if there are no changes. Otherwise, |
| 682 | ask a yes-or-no question whether to save or cancel changes, | 682 | ask a yes-or-no question whether to save or cancel changes, |
| 683 | and proceed depending on the answer." | 683 | and proceed depending on the answer." |
| 684 | (interactive) | 684 | (interactive) |
diff --git a/lisp/woman.el b/lisp/woman.el index 2357ba6b132..7c68ef0334b 100644 --- a/lisp/woman.el +++ b/lisp/woman.el | |||
| @@ -92,7 +92,7 @@ | |||
| 92 | ;; (add-hook 'dired-mode-hook | 92 | ;; (add-hook 'dired-mode-hook |
| 93 | ;; (lambda () | 93 | ;; (lambda () |
| 94 | ;; (define-key dired-mode-map "W" 'woman-dired-find-file))) | 94 | ;; (define-key dired-mode-map "W" 'woman-dired-find-file))) |
| 95 | ;; and open the directory containing the man page file using dired, | 95 | ;; and open the directory containing the man page file using Dired, |
| 96 | ;; put the cursor on the file, and press `W'. | 96 | ;; put the cursor on the file, and press `W'. |
| 97 | 97 | ||
| 98 | ;; In each case, the result should (!) be a buffer in Man mode showing | 98 | ;; In each case, the result should (!) be a buffer in Man mode showing |
| @@ -102,7 +102,7 @@ | |||
| 102 | ;; manual-browsing facility rather than `WoMan' -- this is | 102 | ;; manual-browsing facility rather than `WoMan' -- this is |
| 103 | ;; intentional!) | 103 | ;; intentional!) |
| 104 | 104 | ||
| 105 | ;; (By default, WoMan will automatically define the dired keys "W" and | 105 | ;; (By default, WoMan will automatically define the Dired keys "W" and |
| 106 | ;; "w" when it loads, but only if they are not already defined. This | 106 | ;; "w" when it loads, but only if they are not already defined. This |
| 107 | ;; behavior is controlled by the user option `woman-dired-keys'. | 107 | ;; behavior is controlled by the user option `woman-dired-keys'. |
| 108 | ;; Note that the `dired-x' (dired extra) package binds | 108 | ;; Note that the `dired-x' (dired extra) package binds |
| @@ -1526,7 +1526,7 @@ Also make each path-info component into a list. | |||
| 1526 | (woman-dired-define-key key))) | 1526 | (woman-dired-define-key key))) |
| 1527 | 1527 | ||
| 1528 | (defun woman-dired-define-keys () | 1528 | (defun woman-dired-define-keys () |
| 1529 | "Define dired keys to run WoMan according to `woman-dired-keys'." | 1529 | "Define Dired keys to run WoMan according to `woman-dired-keys'." |
| 1530 | (if woman-dired-keys | 1530 | (if woman-dired-keys |
| 1531 | (if (listp woman-dired-keys) | 1531 | (if (listp woman-dired-keys) |
| 1532 | (mapc #'woman-dired-define-key woman-dired-keys) | 1532 | (mapc #'woman-dired-define-key woman-dired-keys) |
| @@ -1544,7 +1544,7 @@ Also make each path-info component into a list. | |||
| 1544 | 1544 | ||
| 1545 | ;;;###autoload | 1545 | ;;;###autoload |
| 1546 | (defun woman-dired-find-file () | 1546 | (defun woman-dired-find-file () |
| 1547 | "In dired, run the WoMan man-page browser on this file." | 1547 | "In Dired, run the WoMan man-page browser on this file." |
| 1548 | (interactive) | 1548 | (interactive) |
| 1549 | (woman-find-file (dired-get-filename))) | 1549 | (woman-find-file (dired-get-filename))) |
| 1550 | 1550 | ||
diff --git a/test/lisp/erc/erc-tests.el b/test/lisp/erc/erc-tests.el index f4cff06f942..f65c1496087 100644 --- a/test/lisp/erc/erc-tests.el +++ b/test/lisp/erc/erc-tests.el | |||
| @@ -1635,25 +1635,27 @@ | |||
| 1635 | '("Stripping" "Padding")) | 1635 | '("Stripping" "Padding")) |
| 1636 | 1636 | ||
| 1637 | (ert-deftest erc--check-prompt-input-for-multiline-blanks () | 1637 | (ert-deftest erc--check-prompt-input-for-multiline-blanks () |
| 1638 | (erc-tests-common-with-process-input-spy | 1638 | :tags '(:expensive-test) |
| 1639 | (lambda (next) | 1639 | (ert-with-message-capture messages |
| 1640 | (erc-tests-common-init-server-proc "sleep" "10") | 1640 | (erc-tests-common-with-process-input-spy |
| 1641 | (should-not erc-send-whitespace-lines) | 1641 | (lambda (next) |
| 1642 | (should erc-warn-about-blank-lines) | 1642 | (erc-tests-common-init-server-proc "sleep" "300") |
| 1643 | 1643 | (should-not erc-send-whitespace-lines) | |
| 1644 | (pcase-dolist (`((,wb ,sw) . ,ex) erc-tests--check-prompt-input--expect) | 1644 | (should erc-warn-about-blank-lines) |
| 1645 | (let ((print-escape-newlines t) | 1645 | |
| 1646 | (erc-warn-about-blank-lines (eq wb '+wb)) | 1646 | (pcase-dolist (`((,wb ,sw) . ,ex) erc-tests--check-prompt-input--expect) |
| 1647 | (erc-send-whitespace-lines (eq sw '+sw)) | 1647 | (let ((print-escape-newlines t) |
| 1648 | (samples '("" " " "\n" "\n " " \n" "\n\n" | 1648 | (erc-warn-about-blank-lines (eq wb '+wb)) |
| 1649 | "a\n" "a\n " "a\n \nb"))) | 1649 | (erc-send-whitespace-lines (eq sw '+sw)) |
| 1650 | (setq ex `(,@ex (a) (a b)) ; baseline, same for all combos | 1650 | (samples '("" " " "\n" "\n " " \n" "\n\n" |
| 1651 | samples `(,@samples "a" "a\nb")) | 1651 | "a\n" "a\n " "a\n \nb"))) |
| 1652 | (dolist (input samples) | 1652 | (setq ex `(,@ex (a) (a b)) ; baseline, same for all combos |
| 1653 | (insert input) | 1653 | samples `(,@samples "a" "a\nb")) |
| 1654 | (ert-info ((format "Opts: %S, Input: %S, want: %S" | 1654 | (dolist (input samples) |
| 1655 | (list wb sw) input (car ex))) | 1655 | (insert input) |
| 1656 | (ert-with-message-capture messages | 1656 | (ert-info ((format "Opts: %S, Input: %S, want: %S" |
| 1657 | (list wb sw) input (car ex))) | ||
| 1658 | (setq messages "") | ||
| 1657 | (pcase-exhaustive (pop ex) | 1659 | (pcase-exhaustive (pop ex) |
| 1658 | ('err (let ((e (should-error (erc-send-current-line)))) | 1660 | ('err (let ((e (should-error (erc-send-current-line)))) |
| 1659 | (should (string-match (rx (| "trailing" "blank")) | 1661 | (should (string-match (rx (| "trailing" "blank")) |
| @@ -1663,9 +1665,6 @@ | |||
| 1663 | ('nop (erc-send-current-line) | 1665 | ('nop (erc-send-current-line) |
| 1664 | (should (equal (erc-user-input) input)) | 1666 | (should (equal (erc-user-input) input)) |
| 1665 | (should-not (funcall next))) | 1667 | (should-not (funcall next))) |
| 1666 | ('clr (erc-send-current-line) | ||
| 1667 | (should (string-empty-p (erc-user-input))) | ||
| 1668 | (should-not (funcall next))) | ||
| 1669 | ((and (pred consp) v) | 1668 | ((and (pred consp) v) |
| 1670 | (erc-send-current-line) | 1669 | (erc-send-current-line) |
| 1671 | (should (string-empty-p (erc-user-input))) | 1670 | (should (string-empty-p (erc-user-input))) |
| @@ -1679,8 +1678,8 @@ | |||
| 1679 | ('s (should (equal " \n" (car (funcall next))))) | 1678 | ('s (should (equal " \n" (car (funcall next))))) |
| 1680 | ('a (should (equal "a\n" (car (funcall next))))) | 1679 | ('a (should (equal "a\n" (car (funcall next))))) |
| 1681 | ('b (should (equal "b\n" (car (funcall next))))))) | 1680 | ('b (should (equal "b\n" (car (funcall next))))))) |
| 1682 | (should-not (funcall next)))))) | 1681 | (should-not (funcall next))))) |
| 1683 | (delete-region erc-input-marker (point-max)))))))) | 1682 | (delete-region erc-input-marker (point-max))))))))) |
| 1684 | 1683 | ||
| 1685 | (ert-deftest erc--check-prompt-input-for-multiline-blanks/explanations () | 1684 | (ert-deftest erc--check-prompt-input-for-multiline-blanks/explanations () |
| 1686 | (should erc-warn-about-blank-lines) | 1685 | (should erc-warn-about-blank-lines) |
diff --git a/test/src/sqlite-tests.el b/test/src/sqlite-tests.el index e87a5fc77b1..1a887c3a730 100644 --- a/test/src/sqlite-tests.el +++ b/test/src/sqlite-tests.el | |||
| @@ -37,6 +37,7 @@ | |||
| 37 | (declare-function sqlite-open "sqlite.c") | 37 | (declare-function sqlite-open "sqlite.c") |
| 38 | (declare-function sqlite-load-extension "sqlite.c") | 38 | (declare-function sqlite-load-extension "sqlite.c") |
| 39 | (declare-function sqlite-version "sqlite.c") | 39 | (declare-function sqlite-version "sqlite.c") |
| 40 | (declare-function sqlite-execute-batch "sqlite.c") | ||
| 40 | 41 | ||
| 41 | (ert-deftest sqlite-select () | 42 | (ert-deftest sqlite-select () |
| 42 | (skip-unless (sqlite-available-p)) | 43 | (skip-unless (sqlite-available-p)) |