]> git.eshelyaron.com Git - emacs.git/log
emacs.git
2 years ago* lisp/emacs-lisp/bytecomp.el (byte-compile-log-1): Create buffer if necessary
Andrea Corallo [Wed, 17 Aug 2022 21:31:41 +0000 (23:31 +0200)]
* lisp/emacs-lisp/bytecomp.el (byte-compile-log-1): Create buffer if necessary

2 years ago* lisp/progmodes/cc-defs.el (c-safe-scan-lists): Evaluate LIMIT just once
Alan Mackenzie [Wed, 17 Aug 2022 20:34:43 +0000 (20:34 +0000)]
* lisp/progmodes/cc-defs.el (c-safe-scan-lists): Evaluate LIMIT just once

2 years agoFix Linux APM BIOS flag testing in battery.el
Basil L. Contovounesios [Wed, 17 Aug 2022 17:11:25 +0000 (20:11 +0300)]
Fix Linux APM BIOS flag testing in battery.el

Original sin detected by recent byte-compiler improvements; see:
https://lists.gnu.org/r/emacs-devel/2022-08/msg00611.html

* lisp/battery.el (battery-linux-proc-apm): Treat result of logand
as a number, not boolean.

2 years agoShorten new manual section "Shell Command Guessing"
Stefan Kangas [Tue, 16 Aug 2022 18:51:38 +0000 (20:51 +0200)]
Shorten new manual section "Shell Command Guessing"

* doc/emacs/dired.texi (Shell Command Guessing): Don't document
unimportant details, and improve wording to be shorter.

2 years agoAssume dired-guess is now always available
Stefan Kangas [Tue, 16 Aug 2022 17:52:48 +0000 (19:52 +0200)]
Assume dired-guess is now always available

* lisp/dired-aux.el (dired-read-shell-command): Use
dired-guess-shell-command unconditionally, as it is now always
available.
(dired-do-shell-command): Doc fix; dired-guess is always available.
* lisp/dired.el (dired-do-man): Don't require dired-x.

2 years agoMove dired-guess commands from dired-x to dired
Stefan Kangas [Tue, 16 Aug 2022 15:14:33 +0000 (17:14 +0200)]
Move dired-guess commands from dired-x to dired

* lisp/dired-x.el (dired-shell-command-history)
(dired-guess-shell-alist-default, dired-guess-default)
(dired-guess-shell-command): Move from here...
* lisp/dired-aux.el (dired-shell-command-history)
(dired-guess-shell-alist-default, dired-guess-default)
(dired-guess-shell-command): ...to here.  (Bug#21981)

* lisp/dired-x.el (dired-guess-shell-gnutar)
(dired-guess-shell-gzip-quiet, dired-guess-shell-znew-switches)
(dired-guess-shell-case-fold-search, dired-guess-shell-alist-user):
Move from here...
* lisp/dired.el (dired-guess-shell-gnutar)
(dired-guess-shell-gzip-quiet, dired-guess-shell-znew-switches)
(dired-guess-shell-case-fold-search, dired-guess-shell-alist-user):
...to here.  Change :group to dired-guess.
(dired-guess): New defgroup.

* test/lisp/dired-x-tests.el (dired-guess-default): Move from here...
* test/lisp/dired-aux-tests.el (dired-guess-default): ...to here.

* doc/misc/dired-x.texi (Features, Technical Details, Installation):
Delete any mention of shell command guessing.
(Shell Command Guessing): Move from here...
* doc/emacs/dired.texi (Shell Command Guessing): ...to here.  Adapt to
better fit the Emacs Manual conventions.
* lisp/dired-aux.el (dired-do-shell-command): Doc fix to adjust for
above changes.
* etc/NEWS: Announce the above change.

2 years agoMake compat function cperl-putback-char obsolete
Stefan Kangas [Wed, 17 Aug 2022 14:09:31 +0000 (16:09 +0200)]
Make compat function cperl-putback-char obsolete

* lisp/progmodes/cperl-mode.el (cperl-putback-char): Make
obsolete.  Update callers.

2 years ago* lisp/progmodes/cperl-mode.el: Improve commentary.
Stefan Kangas [Wed, 17 Aug 2022 13:56:13 +0000 (15:56 +0200)]
* lisp/progmodes/cperl-mode.el: Improve commentary.

2 years ago; Delete code in cperl-mode.el commented out since 1997
Stefan Kangas [Wed, 17 Aug 2022 13:50:20 +0000 (15:50 +0200)]
; Delete code in cperl-mode.el commented out since 1997

* lisp/progmodes/cperl-mode.el (cperl-menu): Delete some code
commented out since 1997.

2 years agoDon't check if autoloaded functions are fboundp
Stefan Kangas [Wed, 17 Aug 2022 13:47:13 +0000 (15:47 +0200)]
Don't check if autoloaded functions are fboundp

* lisp/progmodes/cperl-mode.el (cperl-menu, cperl-init-faces):
Assume some autoloaded ps-print.el functions are always there.

2 years agoem-unix.el: only pass -H option to grep
Brendan O'Dea [Wed, 17 Aug 2022 11:20:15 +0000 (13:20 +0200)]
em-unix.el: only pass -H option to grep

* lisp/eshell/em-unix.el (eshell-grep): Don't add -H, because that
breaks agrep/glimpse etc (bug#57247).
(eshell/grep, eshell/egrep, eshell/fgrep): Instead add it here.

2 years agoEnhance Python font-lock to support multilines
kobarity [Wed, 17 Aug 2022 11:10:16 +0000 (13:10 +0200)]
Enhance Python font-lock to support multilines

* test/lisp/progmodes/python-tests.el
(python-tests-assert-faces-after-change): New helper function.
(python-font-lock-keywords-level-1-3)
(python-font-lock-assignment-statement-multiline-*): New tests.

* lisp/progmodes/python.el (python-rx): Add `sp-nl' to represent
space or newline (with/without backslash).
(python-font-lock-keywords-level-1)
(python-font-lock-keywords-maximum-decoration): Allow newlines
where appropriate.
(python-font-lock-extend-region): New function.
(python-mode): Set `python-font-lock-extend-region' to
`font-lock-extend-after-change-region-function'.

2 years agoRevert "Add Python blocks support for hideshow"
Lars Ingebrigtsen [Wed, 17 Aug 2022 11:09:21 +0000 (13:09 +0200)]
Revert "Add Python blocks support for hideshow"

This reverts commit af4cfb519415ed3c1d6d036aac908e4f9ee383eb.

This led to test failures.

2 years agoFix some recently introduced byte-compiler warnings
Stefan Kangas [Wed, 17 Aug 2022 10:48:02 +0000 (12:48 +0200)]
Fix some recently introduced byte-compiler warnings

* lisp/emulation/viper-util.el (viper-key-to-character):
* lisp/vc/vc-svn.el (vc-svn-dir-extra-headers): Fix warnings.
* lisp/net/eudc-export.el (eudc-batch-export-records-to-bbdb):
Fix buglet.

2 years agoAdd Python blocks support for hideshow
kobarity [Wed, 17 Aug 2022 10:44:56 +0000 (12:44 +0200)]
Add Python blocks support for hideshow

* lisp/progmodes/python.el (python-nav-beginning-of-block-regexp):
New variable.
(python-hideshow-forward-sexp-function): Change to call
`python-nav-end-of-block'.
(python-hideshow-find-next-block): New function to be used as
FIND-NEXT-BLOCK-FUNC in `hs-special-modes-alist'.
(python-info-looking-at-beginning-of-block): New function to be
used as LOOKING-AT-BLOCK-START-P-FUNC in `hs-special-modes-alist'.
(python-mode): Change settings of `hs-special-modes-alist'.

* test/lisp/progmodes/python-tests.el
(python-hideshow-hide-levels-1): Fix to keep empty lines.
(python-info-looking-at-beginning-of-block-1)
(python-hideshow-hide-levels-3, python-hideshow-hide-levels-4)
(python-hideshow-hide-all-1, python-hideshow-hide-all-2)
(python-hideshow-hide-all-3, python-hideshow-hide-block-1): New
tests (bug#56635).

2 years agoMerge from origin/emacs-28
Stefan Kangas [Wed, 17 Aug 2022 04:30:25 +0000 (06:30 +0200)]
Merge from origin/emacs-28

a4078fa628 ; * lisp/vc/ediff.el: Improve wording in last change.
dd077ebded Revert "; * doc/lispintro/emacs-lisp-intro.texi: Fix typo."
362c9ab879 * doc/misc/gnus.texi (Article Washing): Fix Links URL.

2 years agoAvoid disabling device multiple times while handling XI attachment events
Po Lu [Wed, 17 Aug 2022 02:20:25 +0000 (10:20 +0800)]
Avoid disabling device multiple times while handling XI attachment events

* src/xterm.c (handle_one_xevent): Avoid disabling devices if we
notice it has been disabled while handling XISlaveDetached or
XISlaveAttached.

2 years ago* src/buffer.c (Frename_buffer): Fix bug#56693
Stefan Monnier [Tue, 16 Aug 2022 21:29:26 +0000 (17:29 -0400)]
* src/buffer.c (Frename_buffer): Fix bug#56693

2 years ago* lisp/dired.el (dired-mark-if): Evaluate MSG once to avoid warning.
Mattias Engdegård [Tue, 16 Aug 2022 18:37:02 +0000 (20:37 +0200)]
* lisp/dired.el (dired-mark-if): Evaluate MSG once to avoid warning.

2 years agoImproved `null` (alias `not`) optimisation
Mattias Engdegård [Tue, 16 Aug 2022 17:03:46 +0000 (19:03 +0200)]
Improved `null` (alias `not`) optimisation

Take static boolean information of the argument into account.

* lisp/emacs-lisp/byte-opt.el (byte-optimize-not): New.

2 years agoImproved `and` and `or` optimisation
Mattias Engdegård [Fri, 12 Aug 2022 18:12:54 +0000 (20:12 +0200)]
Improved `and` and `or` optimisation

* lisp/emacs-lisp/byte-opt.el (byte-optimize-and, byte-optimize-or):
Rewrite.  Avoid branching on arguments statically known to be true or
false, and hoist code out to an unconditional prefix when possible.

2 years agoImproved `if` and `while` optimisation
Mattias Engdegård [Fri, 12 Aug 2022 18:12:25 +0000 (20:12 +0200)]
Improved `if` and `while` optimisation

Recognise some more special cases:

  (if X nil t)      -> (not X)
  (if X t)          -> (not (not X))
  (if X t nil)      -> (not (not X))
  (if VAR VAR X...) -> (or VAR (progn X...))

* lisp/emacs-lisp/byte-opt.el (byte-opt-negate): New.
(byte-optimize-if): Add transformations above and refactor.
(byte-optimize-while): Better static nil-detection.

2 years agoImproved static detection of nil and non-nil expressions
Mattias Engdegård [Fri, 12 Aug 2022 18:11:52 +0000 (20:11 +0200)]
Improved static detection of nil and non-nil expressions

* lisp/emacs-lisp/byte-opt.el (byte-opt--bool-value-form): New.
(byte-compile-trueconstp, byte-compile-nilconstp): Determine a static
nil or non-nil result in more cases.  These functions have grown and
are no longer defsubst.

2 years agoFix autoload in tramp.el
Michael Albinus [Tue, 16 Aug 2022 18:32:58 +0000 (20:32 +0200)]
Fix autoload in tramp.el

2 years agoHandle root permissions on remote files
Michael Albinus [Tue, 16 Aug 2022 17:41:00 +0000 (19:41 +0200)]
Handle root permissions on remote files

* lisp/net/tramp.el (tramp-check-cached-permissions): Check also
for remote uid/gid being 0.  (Bug#57238)

* lisp/net/tramp-sh.el (tramp-do-file-attributes-with-ls):
Convert numeric uid/gid strings into real strings.
(tramp-sh-get-signal-strings): Use `zerop'.

* lisp/net/tramp.el (tramp-root-id-string, tramp-root-id-integer):
New defconsts.
(tramp-handle-find-backup-file-name, tramp-handle-lock-file)
(tramp-local-host-p, tramp-handle-make-auto-save-file-name)
* lisp/net/tramp-sh.el (tramp-default-method-alist)
(ramp-default-user-alist, tramp-find-shell):
* lisp/net/tramp-sudoedit.el (tramp-default-user-alist): Use them.

2 years agodired-do-shell-command doc string clarification
Lars Ingebrigtsen [Tue, 16 Aug 2022 17:20:49 +0000 (19:20 +0200)]
dired-do-shell-command doc string clarification

* lisp/dired-aux.el (dired-do-shell-command): Clarify doc string
(bug#57228).

2 years ago; * lisp/vc/ediff.el: Improve wording in last change.
Stefan Kangas [Tue, 16 Aug 2022 14:38:33 +0000 (16:38 +0200)]
; * lisp/vc/ediff.el: Improve wording in last change.

2 years ago; * lisp/bookmark.el (fringe): Require. (Bug#57241)
Eli Zaretskii [Tue, 16 Aug 2022 13:40:49 +0000 (16:40 +0300)]
; * lisp/bookmark.el (fringe): Require.  (Bug#57241)

2 years agoAdvertise obsolete library pgg.el less
Stefan Kangas [Tue, 16 Aug 2022 13:29:30 +0000 (15:29 +0200)]
Advertise obsolete library pgg.el less

* doc/misc/gnus-faq.texi (FAQ 8-2):
* doc/misc/gnus.texi (Security):
* doc/misc/message.texi (Using OpenPGP, PGP Compatibility):
* doc/misc/mh-e.texi (Reading PGP, Sending PGP):
* lisp/gnus/mml2015.el (mml2015-use):
* lisp/info-look.el (mapc):
* lisp/mh-e/mh-e.el (mh-mml-method-default): Advertise obsolete
library pgg.el less.

* lisp/mh-e/mh-identity.el (mh-identity-pgg-default-user-id): Rename
from 'mh-identity-gpg-default-user-id', and make the old name into
obsolete variable alias.  Update all uses.

2 years agoFix XInput hierarchy events not being delivered in daemon mode
Po Lu [Tue, 16 Aug 2022 13:11:03 +0000 (21:11 +0800)]
Fix XInput hierarchy events not being delivered in daemon mode

* src/xfns.c (setup_xi_event_mask): Stop selecting for device
hierarchy events.

* src/xterm.c (xi_select_hierarchy_events, x_term_init): Select
those here instead, on the default root window.

2 years agoMake message-delete-line obsolete
Lars Ingebrigtsen [Tue, 16 Aug 2022 13:01:16 +0000 (15:01 +0200)]
Make message-delete-line obsolete

* lisp/gnus/message.el (message-delete-line): Make obsolete.
(message-change-subject, message-cross-post-insert-note)
(message-reduce-to-to-cc, message-indent-citation)
(message-send-mail-with-mh, message-generate-headers)
(message-fill-field-general): Adjust callers.

2 years agoFix buffer-start cleanup in message-indent-citation
Lars Ingebrigtsen [Tue, 16 Aug 2022 12:58:43 +0000 (14:58 +0200)]
Fix buffer-start cleanup in message-indent-citation

* lisp/gnus/message.el (message-indent-citation): Fix thinko in loop.

2 years agoDon't look for long lines beyond the narrowed region
Eli Zaretskii [Tue, 16 Aug 2022 12:27:15 +0000 (15:27 +0300)]
Don't look for long lines beyond the narrowed region

* src/xdisp.c (redisplay_window): Don't scan for newlines outside
the current buffer's restriction.

2 years ago; Normalize my email
Stefan Kangas [Tue, 16 Aug 2022 11:41:08 +0000 (13:41 +0200)]
; Normalize my email

2 years agoRevert "; * doc/lispintro/emacs-lisp-intro.texi: Fix typo."
Stefan Kangas [Tue, 16 Aug 2022 11:38:22 +0000 (13:38 +0200)]
Revert "; * doc/lispintro/emacs-lisp-intro.texi: Fix typo."

This reverts commit 9d0dba44da7ac83d018fff3c26d33dac12ebd806.

This was not a typo, but incorrectly matching parens in Info-mode.

2 years ago; Don't mention obsolete libraries
Stefan Kangas [Tue, 16 Aug 2022 11:31:49 +0000 (13:31 +0200)]
; Don't mention obsolete libraries

* lisp/erc/erc-speedbar.el:
* etc/TODO (https): Don't mention obsolete libraries.

2 years agoModernize spam section in Gnus manual slightly
Stefan Kangas [Tue, 16 Aug 2022 08:14:52 +0000 (10:14 +0200)]
Modernize spam section in Gnus manual slightly

* doc/misc/gnus.texi (The problem of spam): Don't explain what
spam is; there is no need for that in 2022.  Don't explain
limitations of obsolete software TMDA; it's website has stopped
working but seems to have been updated last in 2007.
(Thwarting Email Spam, Anti-Spam Basics)
(Spam Package Configuration Examples): Prefer "spam" to "UCE".
(The problem of spam): Use example.org in example.
(SpamAssassin, Hashcash): Improve wording.

2 years ago; * doc/misc/url.texi: Don't mention obsolete library url-ns.
Stefan Kangas [Tue, 16 Aug 2022 08:08:39 +0000 (10:08 +0200)]
; * doc/misc/url.texi: Don't mention obsolete library url-ns.

2 years ago* doc/misc/gnus.texi (Article Washing): Fix Links URL.
Stefan Kangas [Tue, 16 Aug 2022 06:08:36 +0000 (08:08 +0200)]
* doc/misc/gnus.texi (Article Washing): Fix Links URL.

2 years agoDelete implicit XEmacs references from Gnus manual
Stefan Kangas [Tue, 16 Aug 2022 06:03:22 +0000 (08:03 +0200)]
Delete implicit XEmacs references from Gnus manual

* doc/misc/gnus.texi (Group Buffer Format, Summary Buffer, RSS):
Delete some implicit references to XEmacs.
(RSS): Fix default value.

2 years agoMake the bookmark fringe icon look like a bookmark
Jim Porter [Tue, 2 Aug 2022 18:40:43 +0000 (11:40 -0700)]
Make the bookmark fringe icon look like a bookmark

* src/fringe.c (large_circle_bits): New variable.
(standard_bitmaps): Add large_circle_bits.

* lisp/fringe.el (fringe-bitmaps): Add 'large-circle'.
(fringe-custom-set-bitmap): New function.

* lisp/cus-edit.el (widget-fringe-bitmap-prompt-value-history): New
variable.
(fringe-bitmap): New widget.

* lisp/bookmark.el (bookmark-set-fringe-mark): Obsolete in favor of...
(bookmark-fringe-mark): ... this.
(bookmark-fringe-mark): Rename this fringe bitmap to...
(bookmark-mark): ... and change it to look like a bookmark.
(bookmark-face): Don't set the ':background' of the face.  Instead,
set ':distant-foreground'.
(bookmark--set-fringe-mark, bookmark--remove-fringe-mark)
(bookmark-store, bookmark--jump-via): Consult the
'bookmark-fringe-mark' option.

* doc/lispref/customize.texi (Simple Types): Document 'fringe-bitmap'
type.

* doc/lispref/display.texi (Fringe Bitmaps): Mention 'large-circle'.

* etc/NEWS: Announce this change (bug#56896).

2 years agoFix non-interactive use of conditionals in Eshell
Jim Porter [Sun, 14 Aug 2022 20:48:22 +0000 (13:48 -0700)]
Fix non-interactive use of conditionals in Eshell

* lisp/eshell/esh-cmd.el (eshell-rewrite-if-command): Fix misplaced
't' symbol; it should be passed to 'eshell-invokify-arg'.
(eshell-do-eval): Pass 'synchronous-p' to recursive calls in some
missing cases.

* test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/if-statement,
(esh-cmd-test/if-else-statement)
(esh-cmd-test/if-else-statement-lisp-form)
(esh-cmd-test/if-else-statement-lisp-form-2)
(esh-cmd-test/if-else-statement-ext-cmd)
(esh-cmd-test/unless-statement)
(esh-cmd-test/unless-else-statement)
(esh-cmd-test/unless-else-statement-lisp-form)
(esh-cmd-test/unless-else-statement-ext-cmd): Use
'eshell-command-result-equal'.

2 years agoAdd 'eshell-command-result-equal' with an ERT explainer
Jim Porter [Sun, 14 Aug 2022 20:44:04 +0000 (13:44 -0700)]
Add 'eshell-command-result-equal' with an ERT explainer

* test/lisp/eshell/eshell-tests-helpers.el
(eshell-command-result--equal, eshell-command-result--equal-explainer)
(eshell-command-result-equal): New functions.

* test/lisp/eshell/em-basic-tests.el
* test/lisp/eshell/em-dirs-tests.el
* test/lisp/eshell/esh-cmd-tests.el
* test/lisp/eshell/esh-proc-tests.el
* test/lisp/eshell/esh-var-tests.el
* test/lisp/eshell/eshell-tests.el: Use 'eshell-command-result-equal'.

2 years agoProvide ERT explainer for 'eshell-match-command-output'
Jim Porter [Sun, 14 Aug 2022 03:31:11 +0000 (20:31 -0700)]
Provide ERT explainer for 'eshell-match-command-output'

This was formerly named 'eshell-command-result-p', but "result" isn't
quite the right terminology, since this function specifically tested
the output of a command, not its Lisp result (as
'eshell-command-result' would return).

* test/lisp/eshell/eshell-tests-helpers.el (eshell-insert-command):
Provide a more-complete docstring.
(eshell-match-result): Rename to...
(eshell-match-output): ... this.
(eshell-match-output--explainer): New function.
(eshell-command-result-p): Rename to...
(eshell-match-command-output): ... this.

* test/lisp/eshell/em-alias-tests.el
* test/lisp/eshell/em-dirs-tests.el
* test/lisp/eshell/em-extpipe-tests.el
* test/lisp/eshell/em-script-tests.el
* test/lisp/eshell/esh-cmd-tests.el
* test/lisp/eshell/esh-proc-tests.el
* test/lisp/eshell/esh-var-tests.el
* test/lisp/eshell/eshell-tests-helpers.el
* test/lisp/eshell/eshell-tests.el: Use 'eshell-match-command-output'.

2 years agoAvoid lowering child frames below scroll bars on X
Po Lu [Tue, 16 Aug 2022 01:30:08 +0000 (09:30 +0800)]
Avoid lowering child frames below scroll bars on X

* src/xterm.c (x_lower_frame_1): New function.
(x_lower_frame): Avoid calling XLowerFrame when there is a
parent with scroll bars.

2 years ago* doc/misc/gnus.texi (Troubleshooting): Update section.
Stefan Kangas [Tue, 16 Aug 2022 00:39:27 +0000 (02:39 +0200)]
* doc/misc/gnus.texi (Troubleshooting): Update section.

2 years ago* doc/lispref/functions.texi (What Is a Function): Improve further
Stefan Monnier [Mon, 15 Aug 2022 22:45:58 +0000 (18:45 -0400)]
* doc/lispref/functions.texi (What Is a Function): Improve further

2 years agoProduce TAGS in 'lib' as well and include them in src/TAGS
Eli Zaretskii [Mon, 15 Aug 2022 19:12:58 +0000 (22:12 +0300)]
Produce TAGS in 'lib' as well and include them in src/TAGS

* src/Makefile.in (TAGS): Include ../lib/TAGS.
($(lib)/TAGS): New target.
(tags): Depend on $(lib)/TAGS.

2 years agoFix tmpdir handling in Tramp for Android sshd
Michael Albinus [Mon, 15 Aug 2022 17:35:43 +0000 (19:35 +0200)]
Fix tmpdir handling in Tramp for Android sshd

* doc/misc/tramp.texi (Android shell setup): Rework.

* lisp/net/tramp.el (tramp-get-remote-tmpdir): Cache result in
temporary connection property.

2 years agoClean up message-sort-headers code slightly
Lars Ingebrigtsen [Mon, 15 Aug 2022 15:08:25 +0000 (17:08 +0200)]
Clean up message-sort-headers code slightly

* lisp/gnus/message.el (message-sort-headers): Simplify code by
removing always-true `if' statement.

2 years agoFix `python-nav-forward-block' moving backward under certain conditions
kobarity [Mon, 15 Aug 2022 14:30:23 +0000 (16:30 +0200)]
Fix `python-nav-forward-block' moving backward under certain conditions

* lisp/progmodes/python.el (python-nav-forward-block): Add check
for not moving backward (bug#57223).

2 years agoFix fix_command for non-symbol functions
Lars Ingebrigtsen [Mon, 15 Aug 2022 14:18:21 +0000 (16:18 +0200)]
Fix fix_command for non-symbol functions

* src/callint.c (fix_command): Don't bug out on commands that
aren't symbols (like lambdas, for instance).

2 years agoEnhance safe_run_hooks_1 and safe_run_hook_funcall to handle more arguments
Alan Mackenzie [Mon, 15 Aug 2022 12:18:01 +0000 (12:18 +0000)]
Enhance safe_run_hooks_1 and safe_run_hook_funcall to handle more arguments

This fixes bug #57179.

* src/keyboard.c (safe_run_hooks_1, safe_run_hook_funcall): Enhance these
functions so that nargs == 3 or 4 is handled as well as nargs == 2.  This
allows them to be used to call hooks with 1 or 2 arguments.

2 years agoFix variable types in warnings-suppress
Yury Kholodkov [Mon, 15 Aug 2022 07:36:06 +0000 (09:36 +0200)]
Fix variable types in warnings-suppress

* lisp/emacs-lisp/warnings.el (warnings-suppress): The type of
these user options is a list of lists of symbols, not a list of
symbols (bug#57183).

Copyright-paperwork-exempt: yes

2 years agoMake eshell-mode more resilient towards `mode-line-format'
Lars Ingebrigtsen [Mon, 15 Aug 2022 07:27:13 +0000 (09:27 +0200)]
Make eshell-mode more resilient towards `mode-line-format'

* lisp/eshell/esh-mode.el (eshell-mode): `mode-line-format' can be
a string (bug#57185).  In that case, don't alter anything.

2 years agoPacify warnings from gcc 12 in encode_coding_object
Matt Armstrong [Mon, 15 Aug 2022 06:56:57 +0000 (08:56 +0200)]
Pacify warnings from gcc 12 in encode_coding_object

* src/coding.c (encode_coding_object): Mark saved_pt_byte with UNINIT
to silence a false alarm from -Wmaybe-uninitialized.  This was already
done in decode_coding_object.  The fix is correct because saved_pt is
used as a sentinel before saved_pt_byte is used (bug#57219).

2 years agoFix up the exclusion logic in loaddefs-generate
Lars Ingebrigtsen [Mon, 15 Aug 2022 06:29:28 +0000 (08:29 +0200)]
Fix up the exclusion logic in loaddefs-generate

* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Allow
excluding files completely (bug#57144).

2 years agoTweak autoloads of defsubsts containing spaces/control chars
Lars Ingebrigtsen [Mon, 15 Aug 2022 06:24:29 +0000 (08:24 +0200)]
Tweak autoloads of defsubsts containing spaces/control chars

* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--print-form):
Escape control chars in bodies so that we don't end up with
trailing spaces if we're autoloading a defsubst containing
"\\`[ \t\n\r]*\\'".

2 years agoRegenerated ldefs-boot.el
Lars Ingebrigtsen [Mon, 15 Aug 2022 06:22:30 +0000 (08:22 +0200)]
Regenerated ldefs-boot.el

2 years agoRemove Gnus Compatibility manual section
Lars Ingebrigtsen [Mon, 15 Aug 2022 06:01:02 +0000 (08:01 +0200)]
Remove Gnus Compatibility manual section

* doc/misc/gnus.texi (Compatibility): Remove outdated section
(bug#57178).

2 years agoFurther lisp-current-defun-name tweaks
Lars Ingebrigtsen [Mon, 15 Aug 2022 05:30:11 +0000 (07:30 +0200)]
Further lisp-current-defun-name tweaks

* lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Further
tweaks to make (autoload 'foo) work again.  Perhaps this should
all be reverted to the original version and then given a new rething.

2 years agoMake update-directory-autoloads available by default again
Lars Ingebrigtsen [Mon, 15 Aug 2022 05:29:22 +0000 (07:29 +0200)]
Make update-directory-autoloads available by default again

* lisp/subr.el (make-directory-autoloads)
(update-directory-autoloads): Make available by default again
(bug#57200).

* lisp/obsolete/autoload.el (make-directory-autoloads): Add
obsoletion form.
(batch-update-autoloads): Fix warning.

2 years agoMerge from origin/emacs-28
Stefan Kangas [Mon, 15 Aug 2022 04:30:29 +0000 (06:30 +0200)]
Merge from origin/emacs-28

9d0dba44da ; * doc/lispintro/emacs-lisp-intro.texi: Fix typo.
0e336fa51f ; Improve documentation of minibuffer history wrt completion

2 years agoFix uninitialized variable false-positives
Po Lu [Mon, 15 Aug 2022 00:54:23 +0000 (08:54 +0800)]
Fix uninitialized variable false-positives

* src/xterm.c (xm_setup_dnd_targets):
(x_dnd_free_toplevels): Mark dpy and recs UNINIT, since GCC
thinks they can be used uninitialized.  (bug#57208)

2 years agoMake message-mark-active-p obsolete in favor of mark-active
Stefan Kangas [Sun, 14 Aug 2022 22:32:46 +0000 (00:32 +0200)]
Make message-mark-active-p obsolete in favor of mark-active

* lisp/gnus/message.el (message-mark-active-p): Make obsolete in
favor of 'mark-active'.  Update callers.

2 years agoMake gnus-uu-view-with-metamail obsolete
Stefan Kangas [Sun, 14 Aug 2022 15:15:23 +0000 (17:15 +0200)]
Make gnus-uu-view-with-metamail obsolete

The metamail package was last released in 1994, and has been removed
from most GNU/Linux distributions due to being buggy and unmaintained.

* lisp/gnus/gnus-uu.el (gnus-uu-view-with-metamail): Make obsolete.
* doc/misc/gnus.texi (Other Decode Variables): Don't document
above obsolete variable.

2 years agoDon't use obsolete library as example in Elisp Intro
Stefan Kangas [Sun, 14 Aug 2022 14:53:33 +0000 (16:53 +0200)]
Don't use obsolete library as example in Elisp Intro

* doc/lispintro/emacs-lisp-intro.texi (Several files recursively)
(Sorting, Files List): Don't use obsolete library makesum.el as
example.

2 years agoMake gnus-iswitchb-completing-read obsolete
Stefan Kangas [Sun, 14 Aug 2022 14:37:11 +0000 (16:37 +0200)]
Make gnus-iswitchb-completing-read obsolete

* lisp/gnus/gnus-util.el (gnus-iswitchb-completing-read): Make
obsolete.  It depends on the obsolete library iswitchb.el.
(gnus-completing-read-function): Don't advertise above obsolete
function.

2 years ago; * lisp/org/org.el: Delete unnecessary declarations.
Stefan Kangas [Sun, 14 Aug 2022 14:33:24 +0000 (16:33 +0200)]
; * lisp/org/org.el: Delete unnecessary declarations.

2 years agoDon't advertise obsolete library html2text.el
Stefan Kangas [Sun, 14 Aug 2022 14:28:25 +0000 (16:28 +0200)]
Don't advertise obsolete library html2text.el

* doc/misc/emacs-mime.texi (Display Customization):
* doc/misc/gnus-faq.texi (FAQ 4-7):
* doc/misc/gnus.texi (Article Washing):
* doc/misc/mh-e.texi (HTML):
* lisp/gnus/mm-decode.el (mm-text-html-renderer): Don't advertise
obsolete library html2text.el.

2 years agoImprove timefns speed on integers
Paul Eggert [Sun, 14 Aug 2022 20:48:11 +0000 (13:48 -0700)]
Improve timefns speed on integers

* src/timefns.c (decode_lisp_time) [FASTER_TIMEFNS]:
Speed up when SPECIFIED_TIME is an integer.
(time_cmp) [FASTER_TIMEFNS]: Speed up when comparing integers.

2 years agoDecode time conses before floats
Paul Eggert [Sun, 14 Aug 2022 20:48:11 +0000 (13:48 -0700)]
Decode time conses before floats

* src/timefns.c (decode_lisp_time): Test for conses before floats,
as conses are more common.

2 years agoWork around Bug#57211
Paul Eggert [Sun, 14 Aug 2022 20:48:11 +0000 (13:48 -0700)]
Work around Bug#57211

* src/buffer.c (Fgenerate_new_buffer_name): Allocate a bigger buffer.

2 years ago* doc/lispref/functions.texi: Fix capitalization.
Paul Eggert [Sun, 14 Aug 2022 18:17:10 +0000 (11:17 -0700)]
* doc/lispref/functions.texi: Fix capitalization.

2 years agoFix selection preservation bug when USE_XCB
Paul Eggert [Sun, 14 Aug 2022 18:11:30 +0000 (11:11 -0700)]
Fix selection preservation bug when USE_XCB

* src/xterm.c (x_preserve_selections) [USE_XCB]: Fix bug: use of
wrong ‘tem’ value.  Found by GCC -Wanalyzer-use-of-uninitialized-value.
Move decl of local to make the (former) bug more obvious.

2 years ago; Fix last change.
Eli Zaretskii [Sun, 14 Aug 2022 17:50:56 +0000 (20:50 +0300)]
; Fix last change.

2 years ago; Fix documentation of 'compiled-function-p' (bug#56648)
Eli Zaretskii [Sun, 14 Aug 2022 16:45:32 +0000 (19:45 +0300)]
; Fix documentation of 'compiled-function-p' (bug#56648)

* etc/NEWS: Fix a typo and expand the description of
'compiled-function-p'.

* doc/lispref/functions.texi (What Is a Function): Fix wording of
the documentation of 'compiled-function-p'.

2 years ago* lisp/emacs-lisp/ring.el (ring): Define as a type
Stefan Monnier [Sun, 14 Aug 2022 16:29:17 +0000 (12:29 -0400)]
* lisp/emacs-lisp/ring.el (ring): Define as a type

2 years ago(compiled-function-p): New function (bug#56648)
Stefan Monnier [Sun, 14 Aug 2022 16:28:37 +0000 (12:28 -0400)]
(compiled-function-p): New function (bug#56648)

* lisp/subr.el (compiled-function-p): New function.

* test/lisp/international/ucs-normalize-tests.el (ucs-normalize-part1):
* lisp/gnus/gnus.el (gnus):
* lisp/mh-e/mh-e.el (mh-version):
* lisp/emacs-lisp/macroexp.el (emacs-startup-hook):
* lisp/emacs-lisp/cl-macs.el (compiled-function):
* lisp/emacs-lisp/bytecomp.el (byte-compile-fdefinition)
(byte-compile, display-call-tree):
* lisp/emacs-lisp/byte-opt.el (<toplevel-end>):
* lisp/emacs-lisp/advice.el (ad-compiled-p):
* lisp/cedet/semantic/bovine.el (semantic-bovinate-stream):
* lisp/loadup.el (macroexpand-all):
* admin/unidata/unidata-gen.el (unidata--ensure-compiled): Use it.

* lisp/emacs-lisp/pcase.el (pcase-mutually-exclusive-predicates):
Add entries for it.
(pcase--split-pred): Use it.

* lisp/help-fns.el (help-fns-function-description-header): Use `functionp`.
(help-fns--var-safe-local): Use `compiled-function-p`.

2 years agoTramp code cleanup
Michael Albinus [Sun, 14 Aug 2022 15:01:25 +0000 (17:01 +0200)]
Tramp code cleanup

* lisp/net/tramp-adb.el
(tramp-adb-handle-directory-files-and-attributes): Use it.

* lisp/net/tramp-compat.el (tramp-compat-replace-regexp-in-region):
New defalias.

* lisp/net/tramp-crypt.el (tramp-crypt-do-encrypt-or-decrypt-file-name):
Fix root filename for cache.

* lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file):
Adapt check for proper remote command.

* lisp/net/tramp-sh.el (tramp-open-shell): Add sanity check for
shell prompt.
(tramp-get-ls-command): Check, that argument "--color=never" has
the intended effect.

2 years ago; * etc/NEWS: Fix typos.
Michael Albinus [Sun, 14 Aug 2022 15:01:00 +0000 (17:01 +0200)]
; * etc/NEWS: Fix typos.

2 years ago* lisp/cedet/ede/emacs.el (ede-emacs-load): Delete obsolete name arg
Stefan Monnier [Sun, 14 Aug 2022 14:45:24 +0000 (10:45 -0400)]
* lisp/cedet/ede/emacs.el (ede-emacs-load): Delete obsolete name arg

2 years ago; * doc/lispintro/emacs-lisp-intro.texi: Fix typo.
Stefan Kangas [Sun, 14 Aug 2022 14:43:58 +0000 (16:43 +0200)]
; * doc/lispintro/emacs-lisp-intro.texi: Fix typo.

2 years ago* lisp/calendar/time-date.el (seconds-to-time): Use the original arg list
Stefan Monnier [Sun, 14 Aug 2022 14:41:40 +0000 (10:41 -0400)]
* lisp/calendar/time-date.el (seconds-to-time): Use the original arg list

2 years ago; Delete commented out manual section on emulation
Stefan Kangas [Sun, 14 Aug 2022 14:17:31 +0000 (16:17 +0200)]
; Delete commented out manual section on emulation

This section has been commented out for close to a decade already.  It
mostly deals with obsolete libraries, and there are separate manuals
for viper and edt.

* doc/emacs/misc.texi (Recursive Edit): Delete commented out section
on emulation.

2 years ago* src/Makefile.in (elnlisp): Delete autoload.eln from list.
Stefan Kangas [Sun, 14 Aug 2022 14:02:34 +0000 (16:02 +0200)]
* src/Makefile.in (elnlisp): Delete autoload.eln from list.

2 years agoMake Gnus FAQ more contemporary
Stefan Kangas [Sun, 14 Aug 2022 13:20:18 +0000 (15:20 +0200)]
Make Gnus FAQ more contemporary

* doc/misc/gnus-faq.texi (FAQ - Introduction): Fix timeline.
(FAQ - Changes): Delete outdated section.
(FAQ 5-5): Update to reflect that ispell.el and flyspell.el is
distributed with Emacs.
(FAQ 4-1, FAQ 4-7, FAQ 4-8, FAQ 4-14, FAQ 5-8, FAQ 5-10, FAQ 6-3)
(FAQ 7-2): Delete references to ancient versions of Gnus.
(FAQ 6-3): Delete reference to obsolete library nnir.el.
(FAQ - Glossary): Remove "Emacs" entry.  This is self-explanatory, and
risks causing confusion; our docs never mean anything but "GNU Emacs"
when we say "Emacs".

2 years agoStrength-reduce apply with (list ...) as tail argument
Mattias Engdegård [Fri, 12 Aug 2022 13:04:51 +0000 (15:04 +0200)]
Strength-reduce apply with (list ...) as tail argument

* lisp/emacs-lisp/byte-opt.el (byte-optimize-apply):
Transform (apply F ... (list X ...)) -> (funcall F ... X ...)

2 years agoSimplify code using take, ntake and butlast
Mattias Engdegård [Fri, 12 Aug 2022 11:35:01 +0000 (13:35 +0200)]
Simplify code using take, ntake and butlast

* lisp/calc/calc-vec.el (calcFunc-rhead):
* lisp/calc/calc.el (calc-top-list, calc-pop):
* lisp/emacs-lisp/ert.el (ert-summarize-tests-batch-and-exit):
Simplify.

2 years ago; * doc/misc/gnus-faq.texi (FAQ 1-3): Fix recent change.
Stefan Kangas [Sun, 14 Aug 2022 13:16:11 +0000 (15:16 +0200)]
; * doc/misc/gnus-faq.texi (FAQ 1-3): Fix recent change.

It

2 years agoFurther speedups of redisplay of long and truncated lines
Eli Zaretskii [Sun, 14 Aug 2022 12:47:59 +0000 (15:47 +0300)]
Further speedups of redisplay of long and truncated lines

* src/xdisp.c (mode_line_update_needed, redisplay_window)
(decode_mode_spec): Don't avoid calling current_column, as it is
now fast enough.
(redisplay_window) <optional_new_start>: Don't call 'move_it_to'
if its result will not be used.
(Flong_line_optimizations_p): New primitive.
* src/indent.c (Fcurrent_column): Doc fix.
(current_column, scan_for_column): When in a buffer with long
and/or truncated lines, quickly return an approximate value.
* src/window.c (Frecenter): Use the old text-mode code when the
buffer has very long lines.

* lisp/simple.el (line-move): Avoid costly calls to
'line-move-partial' and 'line-move-visual' when lines are
truncated and/or very long.
(move-beginning-of-line): Call 'line-beginning-position' instead
of the slower 'skip-chars-backward'.

* etc/NEWS: Announce 'long-line-optimizations-p'.

2 years ago; advice--interactive-form: Fix a typo introduced in recent change
Štěpán Němec [Sun, 14 Aug 2022 08:23:29 +0000 (10:23 +0200)]
; advice--interactive-form: Fix a typo introduced in recent change

* lisp/emacs-lisp/nadvice.el (advice--interactive-form): Fix a typo.

2 years ago; * src/xdisp.c (display_line): Fix a typo.
Eli Zaretskii [Sun, 14 Aug 2022 06:34:37 +0000 (09:34 +0300)]
; * src/xdisp.c (display_line): Fix a typo.

2 years ago; Improve documentation of minibuffer history wrt completion
Eli Zaretskii [Sun, 14 Aug 2022 05:51:44 +0000 (08:51 +0300)]
; Improve documentation of minibuffer history wrt completion

* doc/emacs/mini.texi (Minibuffer History): Mention explicitly
that minibuffer history is related also to completion candidates.
Improve indexing.  (Bug#57163)

2 years agoMore fixes to MPX drag-and-drop interaction
Po Lu [Sun, 14 Aug 2022 01:39:08 +0000 (09:39 +0800)]
More fixes to MPX drag-and-drop interaction

* src/xterm.c (x_dnd_begin_drag_and_drop): Also initialize the
keyboard device used for drag-and-drop.
(handle_one_xevent): Verify deviceid in more places; also test
keyboard device before swallowing F1.

2 years ago; * etc/NEWS: Fix typo.
Philip Kaludercic [Sat, 13 Aug 2022 20:33:46 +0000 (22:33 +0200)]
; * etc/NEWS: Fix typo.

2 years agoDocument time-convert FORM argument as mandatory
Basil L. Contovounesios [Sat, 13 Aug 2022 18:59:39 +0000 (21:59 +0300)]
Document time-convert FORM argument as mandatory

This is a followup to commit b70369c557 of 2022-08-05
"time-convert): Deprecate calls without an explicit FORM arg".

* doc/lispref/os.texi (Time Conversion):
* src/timefns.c (Ftime_convert): Describe FORM argument as required
as per the advertised calling convention.

2 years agoImprove time-convert docstring formatting for readability
Stefan Kangas [Sat, 13 Aug 2022 18:30:12 +0000 (20:30 +0200)]
Improve time-convert docstring formatting for readability

* src/timefns.c (Ftime_convert): Doc fix; improve formatting for
readability.

2 years agonadvice.el: Avoid exponential blow up in interactive-form recursion
Stefan Monnier [Sat, 13 Aug 2022 16:03:22 +0000 (12:03 -0400)]
nadvice.el: Avoid exponential blow up in interactive-form recursion

* lisp/emacs-lisp/nadvice.el (advice--interactive-form): Sink the call
to `commandp` into the autoloaded function case since it's redundant in
the other branch.
(advice--make-interactive-form): Take just the interactive forms rather
than the actual functions as arguments.
(oclosure-interactive-form): Use `advice--interactive-form` rather than
`commandp` since we'd call `advice--interactive-form` afterwards anyway.

2 years ago; Fix documentation of 'deactivate-mark'
Eli Zaretskii [Sat, 13 Aug 2022 15:52:46 +0000 (18:52 +0300)]
; Fix documentation of 'deactivate-mark'

* src/keyboard.c (syms_of_keyboard):
* etc/NEWS: Fix the documentation of 'deactivate-mark' and its new
value 'dont-save'.  (Bug#57147)