(cl--old-macroexpand): Remove.
(cl--sm-macroexpand): Change its calling convention, so it can use
advice-add. Extend re-binding treatment of vars so it applies to all
var-introducing forms rather than only to 'let'.
(cl-symbol-macrolet): Use advice-add rather than fset.
Call user-error when it's non-nil and result is empty (bug#30285).
* lisp/dired-aux.el (dired-do-chxxx, dired-do-chmod)
(dired-do-print, dired-do-async-shell-command)
(dired-do-shell-command, dired-do-compress-to)
(dired-mark-confirm, dired-do-create-files)
(dired-do-isearch, dired-do-isearch-regexp)
(dired-do-query-replace-regexp, dired-do-find-regexp):
* lisp/dired-x.el (dired-do-find-marked-files):
Set arg 'error' of dired-get-marked-files call to t.
* lisp/isearch.el (isearch-occur): Use region-bounds as region arg of occur.
(isearch-query-replace): Use use-region-p.
* lisp/replace.el (occur--region-start-line): Rename from
occur--matches-threshold.
(occur): Use complete lines when region is active for line-oriented occur.
(occur-engine): Count lines either from occur--region-start-line or 1.
* lisp/replace.el (occur--orig-line-str): Remove.
(occur): Remove occur--orig-line-str.
(occur-engine): Use add-face-text-property to add the face
list-matching-lines-current-line-face to the current line.
Use previous-single-property-change to find occur--final-pos.
(occur-context-lines): New args orig-line and multi-occur-p.
Find the current line in context lines and add face to it.
(Bug#30281)
* doc/misc/tramp.texi (File name completion): Adapt example
expanding "//".
* lisp/net/tramp.el (tramp-handle-substitute-in-file-name): "//" shall
expand the localname only, even when on top of the local part.
* test/lisp/net/tramp-tests.el (tramp-test04-substitute-in-file-name):
Adapt test.
* doc/emacs/cmdargs.texi (Action Arguments): Rearrange text
describing what happens when Emacs is invoked with several file
arguments. Suggested by Grant Rettke <gcr@wisdomandwonder.com> in
emacs-manual-bugs@gnu.org.
* doc/emacs/xresources.texi (GTK styles):
* doc/emacs/mini.texi (Passwords):
* doc/emacs/frames.texi (Scroll Bars): Use "cannot" instead of
"can not".
* doc/emacs/macos.texi (Mac / GNUstep Basics): Clarify the effect
of ns-right-alternate-modifier when its value is 'none'.
Suggested by Wanderson Ferreira <iagwanderson@gmail.com> in
emacs-manual-bugs@gnu.org.
* doc/emacs/calendar.texi (Importing Diary, Appointments): Now
sub-sections of Diary.
* doc/emacs/emacs.texi (Top):
* doc/emacs/calendar.texi (Diary): Adjust menus to the above
change. Suggested by Isaac Carter <icarter1391@gmail.com> in
emacs-manual-bugs@gnu.org.
* doc/emacs/anti.texi (Antinews): Fix grammar.
* src/nsterm.m (keyDown:): Distinguish between shift-like and
control-like modifier keys. Allow treating ⌘ as shift-like
modifier (e.g. for the Gujarati – QUERTY input method, where ⌘
switches to QUERTY.)
* lisp/cus-start.el (standard): Change nil to none for
ns-command-modifier; update description.
* etc/NEWS: Add NEWS entry.
* lisp/net/tramp-archive.el (tramp-archive-enabled)
(tramp-archive-file-name-handler-alist)
(tramp-archive-file-name-handler): Adapt docstring.
(tramp-register-archive-file-name-handler): Remove it from
`after-init-hook' when unloading.
(tramp-archive-gvfs-host): New defsubst.
(tramp-archive-dissect-file-name): Use it.
* lisp/net/tramp-cmds.el (tramp-cleanup-all-connections):
Check that `tramp-archive-enabled' is bound.
* test/lisp/net/tramp-archive-tests.el (tramp-archive-test42-auto-load):
Check also that tramp-archive is not loaded when Tramp is loaded.
(tramp-archive-test42-delay-load): Adapt test messages.
* lisp/simple.el (shell-command): Display async shell buffer on
process output for every, not just first, command invocation. Check
buffer liveness, not name, before displaying. (bug#30213, bug#30280)
This fixes a bug where (file-directory-p FOO) would fail if FOO
had an inode number out of range for ‘stat’.
* src/fileio.c (file_directory_p): Accept a Lisp string instead of
a C string. All callers changed. On non-MS-Windows hosts, use
openat with O_PATH|O_DIRECTORY if available, otherwise
file_accessible_directory_p unless it fails due to EACCESS,
otherwise stat.
* test/lisp/files-tests.el (files-tests-file-attributes-equal): New
function.
(files-tests-file-name-non-special-directory-files-and-attributes)
(files-tests-file-name-non-special-file-attributes): Use it instead of
`equal'.
* lisp/files.el (locate-dominating-file): Check, that FILE is
a directory when traversing the tree.
* lisp/net/tramp-archive.el (tramp-archive-enabled): New defvar.
(tramp-archive-file-name-regexp): Protect against errors.
(tramp-archive-file-name-handler)
(tramp-register-archive-file-name-handler): Use it.
(all) Call `tramp-register-archive-file-name-handler'.
* lisp/net/tramp.el (tramp-register-file-name-handlers):
Use `tramp-archive-enabled'.
* test/lisp/net/tramp-archive-tests.el (all):
Use `tramp-archive-enabled' instead of `tramp-gvfs-enabled'.
(tramp-archive--test-emacs27-p): New defun.
(tramp-archive-test42-auto-load): Skip for older Emacsen.
(tramp-archive-test42-delay-load): Skip for older Emacsen.
Test also behavior when `tramp-archive-enabled' is nil.
* doc/misc/tramp.texi (Archive file names): Do not require to
load Tramp explicitly, this is autoloaded now also for file archives.
* lisp/net/tramp-archive.el (tramp-archive-suffixes)
(tramp-archive-compression-suffixes): Autoload them.
(tramp-archive-autoload-file-name-regexp): New defmacro.
(tramp-archive-file-name-regexp): Use it.
(tramp-register-archive-file-name-handler): New defun. Call
it in `after-init-hook'.
* test/lisp/net/tramp-archive-tests.el
(tramp-archive-test40-file-system-info): Rename from
`tramp-archive-test40-archive-file-system-info.
(tramp-archive-test42-auto-load)
(tramp-archive-test42-delay-load): New tests.
* doc/emacs/fixit.texi (Transpose, Spelling): Minor stylistic
changes. Suggested by myq larson <myqlarson@gmail.com> in
emacs-manual-bugs@gnu.org.
* doc/emacs/calendar.texi (Appointments, Time Intervals): Mention
relevant Org features. Suggested by Alex Branham
<alex.branham@gmail.com> in emacs-manual-bugs@gnu.org.
* doc/emacs/dired.texi (Operating on Files)
(Shell Commands in Dired, Image-Dired): Minor stylistic edits.
Suggested by Francis Wright <f.j.wright@live.co.uk> in
emacs-manual-bugs@gnu.org.
* doc/emacs/commands.texi (User Input): Explain "C-M-a".
Suggested by Martin Luethi <martin.luethi@geo.uzh.ch> in
emacs-manual-bugs@gnu.org.
* test/lisp/term-tests.el (term-test-screen-from-input): Just unset
the process query-on-exit flag to rather than trying to end the
process before the end of test (which is generally unreliable).
* lisp/progmodes/cc-engine.el (c-inside-bracelist-p): Return a bufpos rather
than t for the enum case.
(c-add-stmt-syntax, c-guess-continued-construct): Replace
c-looking-at-or-maybe-in-bracelist by c-inside-bracelist-p, since the former
does not recognize enum brace lists, but the latter does.
* lisp/progmodes/cc-fonts.el (c-get-fontification-context): Replace
c-looking-at-or-maybe-in-bracelist by c-inside-bracelist-p.
* src/lread.c (Fload): Don't defer to module-load immediately when
encountering a module, but use the normal loading machinery to
properly set up load-history, check for recursive loads, print
messages, etc.
* test/src/emacs-module-tests.el (module/load-history): New test.
(module/describe-function-1): Adapt test.
* etc/NEWS: Mention fixed behavior.
This puts functions defined in the module into the 'load-history'.
* test/data/emacs-module/mod-test.c (bind_function): Use 'defalias'
instead of 'fset'.
* test/src/emacs-module-tests.el (module/describe-function-1): Adapt
unit test.
* lisp/filenotify.el (file-notify-add-watch): Do not suppress
other file name handlers when FILE is quoted.
* test/lisp/filenotify-tests.el
(file-notify-test-remote-temporary-file-directory):
Beware quoted `temporary-file-directory'.
* test/lisp/files-tests.el
(files-tests-file-name-non-special-quote-unquote): Improve test.
* lisp/net/tramp-archive.el (tramp-archive-file-name-handler):
Bind `tramp-unknown-id-integer' and `tramp-unknown-id-string'
in order to have minimal ownership information.