]> git.eshelyaron.com Git - emacs.git/log
emacs.git
2 years agoMerge branch 'master' into scratch/font_lock_large_files scratch/font_lock_large_files
Dmitry Gutov [Sun, 14 Aug 2022 23:22:59 +0000 (02:22 +0300)]
Merge branch 'master' into scratch/font_lock_large_files

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* 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 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)

2 years agoUpdate Gnus Installation FAQ
Stefan Kangas [Sat, 13 Aug 2022 15:40:17 +0000 (17:40 +0200)]
Update Gnus Installation FAQ

* doc/misc/gnus-faq.texi (FAQ 1-1, FAQ 1-2, FAQ 1-3, FAQ 1-4)
(FAQ 1-5): Update to reflect that Gnus is no longer released
separately from Emacs.  Delete FAQ on Gnus 5.10, released in May 2003.

2 years agoMake many gnus version variables obsolete
Stefan Kangas [Sat, 13 Aug 2022 15:29:36 +0000 (17:29 +0200)]
Make many gnus version variables obsolete

Many haven't been bumped since 1997, others not since 2004.
* lisp/gnus/deuglify.el (gnus-outlook-deuglify-version):
* lisp/gnus/gnus-diary.el (gnus-diary-version):
* lisp/gnus/nnagent.el (nnagent-version):
* lisp/gnus/nnbabyl.el (nnbabyl-version):
* lisp/gnus/nndiary.el (nndiary-version):
* lisp/gnus/nndir.el (nndir-version):
* lisp/gnus/nndoc.el (nndoc-version):
* lisp/gnus/nndraft.el (nndraft-version):
* lisp/gnus/nneething.el (nneething-version):
* lisp/gnus/nnfolder.el (nnfolder-version):
* lisp/gnus/nnmaildir.el (nnmaildir-version):
* lisp/gnus/nnmbox.el (nnmbox-version):
* lisp/gnus/nnmh.el (nnmh-version):
* lisp/gnus/nnml.el (nnml-version):
* lisp/gnus/nnrss.el (nnrss-version):
* lisp/gnus/nnspool.el (nnspool-version):
* lisp/gnus/nntp.el (nntp-version):
* lisp/gnus/nnvirtual.el (nnvirtual-version): Make obsolete in
favor of emacs-version.

2 years agojs.el: Tweak last change
Stefan Monnier [Sat, 13 Aug 2022 15:18:40 +0000 (11:18 -0400)]
js.el: Tweak last change

* lisp/progmodes/js.el (js-json-mode): Use a function as value of
`syntax-propertize-function`.

2 years agoSpeed up display of long lines under 'truncate-lines'
Eli Zaretskii [Sat, 13 Aug 2022 13:59:22 +0000 (16:59 +0300)]
Speed up display of long lines under 'truncate-lines'

* src/xdisp.c (partial_line_height): Return zero for long and
truncated lines.
(fast_move_it_horizontally): New function.
(hscroll_window_tree, display_line): Use
'fast_move_it_horizontally' in preference to
'move_it_in_display_line_to', when dealing with long and truncated
lines.
(redisplay_internal): Optimize "optimization 3" for long and
truncated lines.
* src/buffer.c (syms_of_buffer) <large-hscroll-threshold>: New
variable.

* etc/NEWS: Announce 'large-hscroll-threshold'.

2 years agoAdd new value `dont-save' to `deactivate-mark'
Po Lu [Sat, 13 Aug 2022 13:12:20 +0000 (21:12 +0800)]
Add new value `dont-save' to `deactivate-mark'

* etc/NEWS: Announce new value of `deactivate-mark'.

* lisp/simple.el (deactivate-mark): Handle new value.
(bug#57147)

* src/keyboard.c (syms_of_keyboard): Update doc string of
`deactivate-mark'.

2 years agoTweak outline symbol icons
Lars Ingebrigtsen [Sat, 13 Aug 2022 12:40:58 +0000 (14:40 +0200)]
Tweak outline symbol icons

* lisp/outline.el (outline-close, outline-open): Use icons of the
same size in Symbola.

2 years agoAllow EXCLUDED-FILES in loaddefs-generate to be relative
Lars Ingebrigtsen [Sat, 13 Aug 2022 12:07:41 +0000 (14:07 +0200)]
Allow EXCLUDED-FILES in loaddefs-generate to be relative

* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Allow the
excluded files to be relative (bug#57144).

2 years agoDon't hide final dump in admin/emake
Lars Ingebrigtsen [Fri, 12 Aug 2022 20:41:30 +0000 (22:41 +0200)]
Don't hide final dump in admin/emake

2 years ago; * lisp/emulation/viper.el: Bump version to match variable.
Stefan Kangas [Sat, 13 Aug 2022 11:10:45 +0000 (13:10 +0200)]
; * lisp/emulation/viper.el: Bump version to match variable.

2 years agoMake ps-mode-version variable obsolete
Stefan Kangas [Sat, 13 Aug 2022 11:08:47 +0000 (13:08 +0200)]
Make ps-mode-version variable obsolete

* lisp/progmodes/ps-mode.el (ps-mode-version): Make obsolete.
(ps-mode-show-version, ps-mode-submit-bug-report): Don't use above
obsolete variable.

2 years agoMake htmlfontify-version variable obsolete
Stefan Kangas [Sat, 13 Aug 2022 11:00:46 +0000 (13:00 +0200)]
Make htmlfontify-version variable obsolete

* lisp/htmlfontify.el (htmlfontify-version): Make obolete.
(hfy-meta-tags): Don't use above obsolete variable.

2 years agoDelete many references to Emacs 23 or older from docs
Stefan Kangas [Sat, 13 Aug 2022 10:39:42 +0000 (12:39 +0200)]
Delete many references to Emacs 23 or older from docs

* doc/emacs/glossary.texi (Glossary):
* doc/emacs/msdos.texi (Windows Fonts):
* doc/lispref/loading.texi (Library Search):
* doc/lispref/processes.texi (Accepting Output):
* doc/misc/auth.texi (GnuPG and EasyPG Assistant Configuration):
* doc/misc/efaq-w32.texi (Font names):
* doc/misc/efaq.texi (Turning on syntax highlighting)
(Escape sequences in shell output):
* doc/misc/eshell.texi (Bugs and ideas):
* doc/misc/gnus.texi (nnmairix requirements):
* doc/misc/gnus-faq.texi (FAQ 1-5):
* doc/misc/idlwave.texi (Troubleshooting):
* doc/misc/message.texi (Using S/MIME):
* doc/misc/mh-e.texi (Preface, Incorporating Mail):
* doc/misc/viper.texi (Viper Specials): Delete references to Emacs 23
or older.

2 years ago; * etc/NEWS: Minor fixes. (Bug#57169)
Eli Zaretskii [Sat, 13 Aug 2022 10:40:00 +0000 (13:40 +0300)]
; * etc/NEWS: Minor fixes.  (Bug#57169)

2 years agoPrevent selection converter from signalling if buffer is narrowed
Po Lu [Sat, 13 Aug 2022 09:49:31 +0000 (17:49 +0800)]
Prevent selection converter from signalling if buffer is narrowed

* lisp/select.el (xselect-convert-to-string): If positions are
outside the accessible portion of the buffer, don't return
anything.

2 years agoFix a recently-added Eshell test on MS-Windows
Eli Zaretskii [Sat, 13 Aug 2022 06:58:44 +0000 (09:58 +0300)]
Fix a recently-added Eshell test on MS-Windows

* test/lisp/eshell/esh-var-tests.el
(esh-var-test/last-result-var-ext-cmd): Fix the test on
MS-Windows by making sure the internal 'format' command
is invoked.  (Bug#57129)

2 years agoMake '$?' and '$$' variables more consistent in Eshell
Jim Porter [Wed, 10 Aug 2022 03:09:57 +0000 (20:09 -0700)]
Make '$?' and '$$' variables more consistent in Eshell

Previously, '$?' (last exit code) was only useful for external
commands, and '$$' (last result) was only useful for Lisp commands.

* lisp/eshell/esh-cmd.el (eshell-lisp-form-nil-is-failure): New
option.
(eshell-lisp-command): Set last exit code to 1 when the command
signals an error, and 2 if it returns nil (for Lisp forms only).

* lisp/eshell/esh-proc.el (eshell-sentinel): Set last result to t if
the command succeeded.

* test/lisp/eshell/esh-cmd-tests.el
(esh-cmd-test/while-loop-lisp-form, esh-cmd-test/until-loop-lisp-form)
(esh-cmd-test/if-else-statement-lisp-form)
(esh-cmd-test/if-else-statement-lisp-form-2)
(esh-cmd-test/unless-else-statement-lisp-form): New tests.

* test/lisp/eshell/esh-var-tests.el
(esh-var-test/last-status-var-lisp-command)
(esh-var-test/last-status-var-lisp-form)
(esh-var-test/last-status-var-lisp-form-2)
(esh-var-test/last-status-var-ext-cmd)
(esh-var-test/last-status-var-ext-cmd): New tests.
(esh-var-test/last-result-var2): Rename from this...
( esh-var-test/last-result-var-twice): ... to this.

* doc/misc/eshell.texi (Variables): Update documentation about '$?'
and '$$'.
(Control Flow): Mention that '(lisp forms)' can be used as
conditionals.

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

2 years agoAllow using dollar expansions in Eshell conditionals
Jim Porter [Tue, 9 Aug 2022 04:24:27 +0000 (21:24 -0700)]
Allow using dollar expansions in Eshell conditionals

* lisp/eshell/esh-cmd.el (eshell-structure-basic-command): Forms
beginning with 'eshell-escape-arg' are "data-wise".

* test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/while-loop)
(esh-cmd-test/until-loop, esh-cmd-test/if-statement)
(esh-cmd-test/if-else-statement, esh-cmd-test/unless-statement)
(esh-cmd-test/unless-else-statement): Use variable interpolation.
(esh-cmd-test/while-loop-ext-cmd, esh-cmd-test/until-loop-ext-cmd)
(esh-cmd-test/if-else-statement-ext-cmd)
(esh-cmd-test/unless-else-statement-ext-cmd): New tests, adapted from
the existing ones.

* doc/misc/eshell.texi (Control Flow): Update documentation for
conditionals (bug#57129).

2 years agoOnly set Eshell execution result metavariables when non-nil
Jim Porter [Sat, 6 Aug 2022 20:37:28 +0000 (13:37 -0700)]
Only set Eshell execution result metavariables when non-nil

This simplifies usage of 'eshell-close-handles' in several places and
makes it work more like the docstring indicated it would.

* lisp/eshell/esh-io.el (eshell-close-handles): Only store EXIT-CODE
and RESULT if they're non-nil.  Also, use 'dotimes' and 'dolist' to
simplify the implementation.

* lisp/eshell/em-alias.el (eshell-write-aliases-list):
* lisp/eshell/esh-cmd.el (eshell-rewrite-for-command)
(eshell-structure-basic-command): Adapt calls to
'eshell-close-handles'.

* test/lisp/eshell/eshell-tests.el (eshell-test/simple-command-result)
(eshell-test/lisp-command, eshell-test/lisp-command-with-quote)
(eshell-test/for-loop, eshell-test/for-name-loop)
(eshell-test/for-name-shadow-loop, eshell-test/lisp-command-args)
(eshell-test/subcommand, eshell-test/subcommand-args)
(eshell-test/subcommand-lisp): Move from here...

* test/lisp/eshell/esh-cmd-tests.el
(esh-cmd-test/simple-command-result, esh-cmd-test/lisp-command)
(esh-cmd-test/lisp-command-with-quote, esh-cmd-test/for-loop)
(esh-cmd-test/for-name-loop, esh-cmd-test/for-name-shadow-loop)
(esh-cmd-test/lisp-command-args, esh-cmd-test/subcommand)
(esh-cmd-test/subcommand-args, esh-cmd-test/subcommand-lisp): ... to
here.
(esh-cmd-test/and-operator, esh-cmd-test/or-operator)
(esh-cmd-test/for-loop-list, esh-cmd-test/for-loop-multiple-args)
(esh-cmd-test/while-loop, esh-cmd-test/until-loop)
(esh-cmd-test/if-statement, esh-cmd-test/if-else-statement)
(esh-cmd-test/unless-statement, esh-cmd-test/unless-else-statement):
New tests.

* doc/misc/eshell.texi (Invocation): Explain '&&' and '||'.
(for loop): Move from here...
(Control Flow): ... to here, and add documentation for other control
flow forms.

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

72fc7258bf Delete references to deleted library hilit19.el
e746fc2e7b Delete stale comments from Lisp Intro manual
77613b9217 ; Delete redundant installation instructions from ebnf2ps.el

2 years ago; * src/xfns.c (Fx_set_mouse_absolute_pixel_position): Fix typo.
Po Lu [Sat, 13 Aug 2022 02:36:54 +0000 (10:36 +0800)]
; * src/xfns.c (Fx_set_mouse_absolute_pixel_position): Fix typo.

2 years agoImprove MPX interaction with drag-and-drop
Po Lu [Sat, 13 Aug 2022 02:35:08 +0000 (10:35 +0800)]
Improve MPX interaction with drag-and-drop

* src/xfns.c (Fx_set_mouse_absolute_pixel_position): Use
internal client pointer record.
* src/xterm.c (x_dnd_cancel_dnd_early): New function.  Only used
on XI2 builds so far.
(x_dnd_begin_drag_and_drop): Set the pointer device used for DND
events.
(xi_disable_devices): Cancel the drag-and-drop operation if that
device is disabled.
(x_send_scroll_bar_event): Update outdated comment.
(handle_one_xevent): Only accept DND events from that device.
(frame_set_mouse_pixel_position): Use internal client pointer
record.

2 years ago; * lisp/cedet/ede.el: Bump version header to match variable.
Stefan Kangas [Fri, 12 Aug 2022 20:32:39 +0000 (22:32 +0200)]
; * lisp/cedet/ede.el: Bump version header to match variable.

2 years agoHide local variable section in emacs-news-modes
Stefan Kangas [Fri, 12 Aug 2022 20:22:17 +0000 (22:22 +0200)]
Hide local variable section in emacs-news-modes

* lisp/textmodes/emacs-authors-mode.el
(emacs-authors-mode--hide-local-variables): Move from here...
* lisp/emacs-lisp/subr-x.el (emacs-etc--hide-local-variables):
...to here.

* lisp/textmodes/emacs-authors-mode.el (subr-x): Require.
(emacs-authors-mode): Use above renamed function.

* lisp/textmodes/emacs-news-mode.el (subr-x): Require.
(emacs-news--mode-common): Call 'emacs-etc--hide-local-variables'
to hide local variables section.

2 years agoDon't update loaddefs.el timestamps uselessly in loaddefs-generate
Lars Ingebrigtsen [Fri, 12 Aug 2022 18:22:26 +0000 (20:22 +0200)]
Don't update loaddefs.el timestamps uselessly in loaddefs-generate

* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Don't
re-write the loaddefs.el file when there's no reason to.

2 years agoSupport imenu in emacs-authors-mode
Stefan Kangas [Fri, 12 Aug 2022 16:33:34 +0000 (18:33 +0200)]
Support imenu in emacs-authors-mode

* lisp/textmodes/emacs-authors-mode.el
(emacs-authors-imenu-generic-expression): New variable.
(emacs-authors-mode): Add imenu support.

2 years agoRename etc-authors-mode to emacs-authors-mode
Stefan Kangas [Thu, 11 Aug 2022 11:49:15 +0000 (13:49 +0200)]
Rename etc-authors-mode to emacs-authors-mode

* emacs-authors-mode.el: Rename all symbols from 'etc-authors-*' to
'emacs-authors-*'.  Make most old names into obsolete compat aliases.
* admin/authors.el:  (Bug#57105)
* etc/AUTHORS: Use 'emacs-authors' instead of 'etc-authors'.

2 years agoRename etc-authors-mode.el to emacs-authors-mode.el
Stefan Kangas [Thu, 11 Aug 2022 11:36:33 +0000 (13:36 +0200)]
Rename etc-authors-mode.el to emacs-authors-mode.el

* lisp/textmodes/etc-authors-mode.el: Move from here...
* lisp/textmodes/emacs-authors-mode.el: ...to here.  (Bug#57105)

2 years ago; etc/PROBLEMS: Move Ubuntu 8.04 entry to legacy systems.
Stefan Kangas [Fri, 12 Aug 2022 16:09:22 +0000 (18:09 +0200)]
; etc/PROBLEMS: Move Ubuntu 8.04 entry to legacy systems.

2 years agoDelete references to deleted library hilit19.el
Stefan Kangas [Fri, 12 Aug 2022 15:48:30 +0000 (17:48 +0200)]
Delete references to deleted library hilit19.el

* doc/misc/gnus.texi (Compatibility):
* lisp/progmodes/f90.el:
* lisp/ps-print.el:
* lisp/vc/ediff.el: Delete references to hilit19.el.

2 years agoFix emacs-news-view-mode-map inheritance
Lars Ingebrigtsen [Fri, 12 Aug 2022 15:44:51 +0000 (17:44 +0200)]
Fix emacs-news-view-mode-map inheritance

* lisp/textmodes/emacs-news-mode.el (emacs-news-view-mode-map):
Fix inheritance from `special-mode-map' (bug#57100).

2 years agoClarify bookmark-set prompt
Lars Ingebrigtsen [Fri, 12 Aug 2022 15:24:38 +0000 (17:24 +0200)]
Clarify bookmark-set prompt

* lisp/bookmark.el (bookmark-set): Clarify prompt further
(bug#57128).

2 years agogud.el: invoke 'perldb' with '-E' instead of '-e'
Harald Jörg [Fri, 12 Aug 2022 15:15:19 +0000 (17:15 +0200)]
gud.el: invoke 'perldb' with '-E' instead of '-e'

* lisp/progmodes/gud.el (gud-perldb-massage-args): Allow '-E' switch
and use it as a default in favor of '-e'

* etc/NEWS ('perldb' now recognizes '-E') New entry in section 'Gud'

2 years agoRemove some more outdated Gnus manual stuff
Lars Ingebrigtsen [Fri, 12 Aug 2022 15:10:27 +0000 (17:10 +0200)]
Remove some more outdated Gnus manual stuff

* doc/misc/gnus.texi (Mail Source Customization): Remove more
outdated text (bug#57156).

2 years agoRemove (gnus) Gnus Development manual section
Lars Ingebrigtsen [Fri, 12 Aug 2022 15:09:25 +0000 (17:09 +0200)]
Remove (gnus) Gnus Development manual section

* doc/misc/gnus.texi (Gnus Development): Remove outdated section
(bug#57156).

2 years ago* doc/misc/gnus.texi (Emacsen): Delete section.
Stefan Kangas [Fri, 12 Aug 2022 14:06:43 +0000 (16:06 +0200)]
* doc/misc/gnus.texi (Emacsen): Delete section.

2 years agoMake some more cedet version variables obsolete
Stefan Kangas [Fri, 12 Aug 2022 13:35:18 +0000 (15:35 +0200)]
Make some more cedet version variables obsolete

* lisp/cedet/ede.el (ede-version):
* lisp/cedet/semantic.el (semantic-version):
* lisp/cedet/srecode.el (srecode-version): Make obsolete.
* lisp/cedet/semantic/db-file.el (semanticdb-file-version): Don't
use above obsolete variable semantic-version.

2 years agoDelete stale comments from Lisp Intro manual
Stefan Kangas [Fri, 12 Aug 2022 13:58:33 +0000 (15:58 +0200)]
Delete stale comments from Lisp Intro manual

* doc/lispintro/emacs-lisp-intro.texi (Args as Variable or List)
(print-elements-of-list, Miscellaneous): Delete some references to
Emacs 22.

2 years agoClarify face-at-point doc string and add (thing-at-point 'face)
Lars Ingebrigtsen [Fri, 12 Aug 2022 13:54:55 +0000 (15:54 +0200)]
Clarify face-at-point doc string and add (thing-at-point 'face)

* lisp/faces.el (face-at-point): Say what this function does.

* lisp/thingatpt.el (thing-at-point-face-at-point): Add `face'
type (bug#57087).
(thing-at-point-provider-alist, thing-at-point): Mention it in the
doc strings.

2 years ago; Delete redundant installation instructions from ebnf2ps.el
Stefan Kangas [Fri, 12 Aug 2022 13:46:29 +0000 (15:46 +0200)]
; Delete redundant installation instructions from ebnf2ps.el

* lisp/progmodes/ebnf2ps.el: Delete redundant installation
instructions.

2 years agoFurther seq-uniq speed-ups for lists
Lars Ingebrigtsen [Fri, 12 Aug 2022 13:15:11 +0000 (15:15 +0200)]
Further seq-uniq speed-ups for lists

* lisp/emacs-lisp/seq.el (seq-uniq): Speed up more for long lists
(bug#57079).

2 years agoMake finder-mode inherit special-mode
Stefan Kangas [Fri, 12 Aug 2022 12:51:36 +0000 (14:51 +0200)]
Make finder-mode inherit special-mode

* lisp/finder.el (finder-mode): Inherit special-mode.
(finder-mode-map): Inherit special-mode-map.

2 years ago* lisp/finder.el (finder-summary): Improve formatting.
Stefan Kangas [Fri, 12 Aug 2022 12:25:27 +0000 (14:25 +0200)]
* lisp/finder.el (finder-summary): Improve formatting.

2 years agoUse help-key-binding face in package list help
Stefan Kangas [Fri, 12 Aug 2022 12:22:59 +0000 (14:22 +0200)]
Use help-key-binding face in package list help

* lisp/emacs-lisp/package.el (package--prettify-quick-help-key):
Use help-key-binding face.

2 years ago; * lisp/cedet/cedet.el: Delete stale comment.
Stefan Kangas [Thu, 11 Aug 2022 21:26:43 +0000 (23:26 +0200)]
; * lisp/cedet/cedet.el: Delete stale comment.

Since 2009, it is no longer the case that this file depends on other
parts of CEDET (see commit 715f35a55d).

2 years agoMake cedet version variables obsolete
Stefan Kangas [Thu, 11 Aug 2022 21:23:32 +0000 (23:23 +0200)]
Make cedet version variables obsolete

* lisp/cedet/cedet.el (cedet-version, cedet-packages): Make
obsolete.

2 years agoDefault outline-minor-mode-use-buttons to only happen in *Help*
Lars Ingebrigtsen [Fri, 12 Aug 2022 12:56:46 +0000 (14:56 +0200)]
Default outline-minor-mode-use-buttons to only happen in *Help*

* lisp/outline.el (outline-minor-mode-use-buttons): Change the
default to only use buttons in the *Help* buffer (for now),
because it's too disruptive in other modes.  This will probably be
changed again to have some other mechanism to opt in in certain
modes, but it's not clear what that mechanism should look like.

2 years agoReverse the outline arrows
Stephen Berman [Fri, 12 Aug 2022 12:49:22 +0000 (14:49 +0200)]
Reverse the outline arrows

* lisp/outline.el (outline-open): Reverse the arrows to match
arrows in Customize (bug#57082).

2 years agoNew option: font-lock-large-files
Dmitry Gutov [Fri, 12 Aug 2022 10:46:04 +0000 (13:46 +0300)]
New option: font-lock-large-files

* lisp/font-lock.el (font-lock-fontify-region): Use it.
(font-lock-large-files): New option (bug#56682).

* src/xdisp.c (handle_fontified_prop): Don't apply narrowing here.

2 years ago; Fix documentation of 'loaddefs-generate' (bug#57144)
Eli Zaretskii [Fri, 12 Aug 2022 06:49:35 +0000 (09:49 +0300)]
; Fix documentation of 'loaddefs-generate' (bug#57144)

* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Doc fix.

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

9419bc904d ; * lisp/printing.el: Delete outdated download instructions.
31af0f4eb7 Don't list Emacs as requirement for built-in package
ae348b719e Fix wrong metrics for bitmap-only fonts with HarfBuzz 5

2 years agoPrevent SelectionNotify etc from reaching GTK 3
Po Lu [Fri, 12 Aug 2022 01:25:12 +0000 (09:25 +0800)]
Prevent SelectionNotify etc from reaching GTK 3

* src/xterm.c (handle_one_xevent): Prevent selection events from
reaching GTK if they are destined for an Emacs window.

2 years agoNew debugging facility: backtraces from errors in Lisp called from redisplay
Alan Mackenzie [Thu, 11 Aug 2022 19:31:09 +0000 (19:31 +0000)]
New debugging facility: backtraces from errors in Lisp called from redisplay

Setting backtrace-on-redisplay-error to non-nil enables the generation of a
Lisp backtrace in buffer *Redisplay-trace* following an error in Lisp called
from redisplay.

* doc/lispref/debugging.texi (Debugging Redisplay): New subsection.
(Error Debugging): Reference to the new subsection.

* etc/NEWS: New entry for the new facility.

* src/eval.c (redisplay_deep_handler): New variable.
(init_eval): Initialize redisplay_deep_handler.
(call_debugger): Don't throw to top-level after calling debug-early
(internal_condition_case_n): "Bind" redisplay_deep_handler to the current
handler.
(backtrace_yet): New boolean variable.
(signal_or_quit): New code section to handle Lisp errors occurring in
redisplay.
(syms_of_eval): New DEFVAR_BOOL backtrace-on-redisplay-error.

* src/keyboard.c (command_loop_1): Set backtrace_yet to false each time around
the loop.
(safe_run_hooks_error): Allow args to be up to four Lisp_Objects long.
(safe_run_hooks_2): New function.

* src/lisp.h (top level): declare as externs backtrace_yet and
safe_run_hooks_2.

* src/xdisp.c (run_window_scroll_functions): Replace a call to
run_hook_with_args_2 with one to safe_run_hooks_2.

2 years agoSupport the full range of variation selectors
Axel Svensson [Mon, 8 Aug 2022 23:11:02 +0000 (01:11 +0200)]
Support the full range of variation selectors

* lisp/international/characters.el: Provide acronyms for variation
selectors.
(update-glyphless-char-display): Update display of the full range
of variation selectors.
(glyphless-char-display-control): Update doc string.  (Bug#57072)

* doc/lispref/display.texi (Glyphless Chars): Document more
variation selectors.

Copyright-paperwork-exempt: yes

2 years agoMake ad-version variable obsolete
Stefan Kangas [Thu, 11 Aug 2022 15:28:30 +0000 (17:28 +0200)]
Make ad-version variable obsolete

* lisp/emacs-lisp/advice.el (ad-version): Make obsolete in favor
of emacs-version.  It has not been bumped since 1994.

2 years agoMake ebnf-version variable obsolete
Stefan Kangas [Thu, 11 Aug 2022 15:19:45 +0000 (17:19 +0200)]
Make ebnf-version variable obsolete

* lisp/progmodes/ebnf2ps.el (ebnf-version): Make obsolete.
(ebnf-setup, ebnf-begin-file, ebnf-eps-finish-and-write): Don't
use above obsolete variable.

2 years agoMake ps-print-version variable obsolete
Stefan Kangas [Thu, 11 Aug 2022 15:10:52 +0000 (17:10 +0200)]
Make ps-print-version variable obsolete

* lisp/ps-print.el (ps-print-version): Make obsolete.
(ps-setup, ps-begin-file):
* lisp/progmodes/ebnf2ps.el:
* lisp/printing.el:
(pr-help-message, pr-interface-help-message)
(pr-create-interface): Don't use above obsolete variable.

2 years ago; * lisp/printing.el (pr-version): Avoid byte-compiler warning.
Eli Zaretskii [Thu, 11 Aug 2022 13:34:39 +0000 (16:34 +0300)]
; * lisp/printing.el (pr-version): Avoid byte-compiler warning.

2 years agoMake pr-version variable obsolete
Stefan Kangas [Thu, 11 Aug 2022 13:21:08 +0000 (15:21 +0200)]
Make pr-version variable obsolete

* lisp/printing.el (pr-version): Make obsolete.
(pr-help-message, pr-interface-help-message, pr-setup)
(pr-create-interface): Don't use above obsolete variable.

2 years ago; * lisp/printing.el: Delete outdated download instructions.
Stefan Kangas [Thu, 11 Aug 2022 13:16:31 +0000 (15:16 +0200)]
; * lisp/printing.el: Delete outdated download instructions.

2 years agoDon't list Emacs as requirement for built-in package
Stefan Kangas [Thu, 11 Aug 2022 13:03:29 +0000 (15:03 +0200)]
Don't list Emacs as requirement for built-in package

* doc/misc/htmlfontify.texi (Requirements): Don't list Emacs as
requirement for built-in package.

2 years agoDon't show status message in Helper-describe-bindings
Stefan Kangas [Thu, 11 Aug 2022 12:32:18 +0000 (14:32 +0200)]
Don't show status message in Helper-describe-bindings

* lisp/emacs-lisp/helper.el (Helper-describe-bindings): Don't show
status message.

2 years agonewsticker: fix bug#57045
Ulf Jasper [Thu, 11 Aug 2022 11:26:52 +0000 (13:26 +0200)]
newsticker: fix bug#57045

* lisp/net/newst-treeview.el
(newsticker--treeview-list-items-with-age) (newsticker-treeview-update):
Fix issues with changing sort order in virtual feed 'all' (Bug#57045).

2 years ago; * lisp/play/5x5.el (5x5-defvar-local): Improve obsoletion.
Stefan Kangas [Thu, 11 Aug 2022 11:16:34 +0000 (13:16 +0200)]
; * lisp/play/5x5.el (5x5-defvar-local): Improve obsoletion.

2 years ago* lisp/vc/emerge.el (emerge-show-file-name): Make obsolete.
Stefan Kangas [Thu, 11 Aug 2022 11:11:50 +0000 (13:11 +0200)]
* lisp/vc/emerge.el (emerge-show-file-name): Make obsolete.

2 years agoMake emerge-define-key-if-possible obsolete
Stefan Kangas [Thu, 11 Aug 2022 11:07:24 +0000 (13:07 +0200)]
Make emerge-define-key-if-possible obsolete

* lisp/vc/emerge.el (emerge-define-key-if-possible): Make unused
function obsolete.