Arash Esbati [Wed, 6 Oct 2021 09:14:45 +0000 (11:14 +0200)]
Improve finding external documents in reftext
* lisp/textmodes/reftex-parse.el (reftex-parse-from-file): Extend
regexp in order to support \externalcitedocument macro and a
second optional argument provided by LaTeX package xr-hyper
(bug#51054).
Yuri D'Elia [Wed, 6 Oct 2021 08:43:22 +0000 (10:43 +0200)]
Perform cleanup on errors in mouse-drag-track
* lisp/mouse.el (mouse-drag-track): Disable both scroll-margin and
auto-hscroll-mode in mouse-drag-region and do not re-enable them until
dragging is over, making selections work as expected when inside the
margins.
* lisp/mouse.el (mouse-drag-track): Correctly reset original values
changed during execution if errors occur.
Yuri D'Elia [Wed, 6 Oct 2021 08:42:56 +0000 (10:42 +0200)]
Improve interaction between mouse-drag-region and scroll-margin
* lisp/mouse.el (mouse-drag-track): Disable both scroll-margin and
auto-hscroll-mode in mouse-drag-region and do not re-enable them until
dragging is over, making selections work as expected when inside the
margins.
Glenn Morris [Tue, 5 Oct 2021 14:50:22 +0000 (07:50 -0700)]
Merge from origin/emacs-28
63abe976ce (origin/emacs-28) Document minibuffer-default-prompt-forma... b5afbedc90 Backward compatibility option for 'nobreak-char-display' ea1b728a06 ; * lisp/dired.el: Fix typo. 984eafeb98 Unbreak the build after Gnulib update 5946370cd1 Check, whether an FUSE mount has been broken in Tramp 90575a6c0c Disable 'nobreak-char-display' in Eldoc buffers 570e2c9a17 Fix small error in comint-send-input fd7bb31412 Update documentation of search-whitespace-regexp 1f4ced47a1 Fix cc-compat.el syntax error b431f54c1b Mention `seq-uniq' in `delete-dups' documentation 0a7bab689c ; Minor stylistic fixes found by checkdoc e2861e2d08 ; * etc/NEWS: Fix typo. 1a65d49931 Port recent Gnulib changes to MS-Windows 68a256c892 Update from Gnulib 63cb65dcce * Fix mh tests for native comp builds (bug#50975) e606cc6f40 * Fix `batch-native-compile' not to spawn a subprocess 894dfe70da Fix native-compilation build from tarball on Cygwin 2ce5e08058 Remove U+FE0F from script-representative-chars
* doc/misc/ert.texi (erts files): Indent examples with spaces rather
than tabs, since Texinfo treats tab characters as a single space;
see (info "(texinfo) @example"). Fix typos/thinkos.
Eli Zaretskii [Tue, 5 Oct 2021 14:12:49 +0000 (17:12 +0300)]
Backward compatibility option for 'nobreak-char-display'
* src/xdisp.c (syms_of_xdisp) <nobreak-char-ascii-display>: New
variable.
(get_next_display_element): If 'nobreak-char-ascii-display' is
non-nil, display non-ASCII space and hyphen characters as their
ASCII equivalents. (Bug#50983)
Stefan Kangas [Tue, 5 Oct 2021 13:17:41 +0000 (15:17 +0200)]
Make two old function aliases obsolete
* lisp/textmodes/bibtex.el (bibtex-find-crossref)
(bibtex-find-entry): Make function aliases obsolete. These were left
behind when renaming functions, but never declared obsolete.
Stefan Kangas [Tue, 5 Oct 2021 12:43:11 +0000 (14:43 +0200)]
Set advertised calling convention on make-face-* functions
* lisp/faces.el (make-face-bold, make-face-unbold)
(make-face-italic, make-face-unitalic, make-face-bold-italic):
Use `advertised-calling-convention` to avoid promoting the third
_noerror argument; it has been ignored since 1999.
Michael Albinus [Tue, 5 Oct 2021 09:27:48 +0000 (11:27 +0200)]
Check, whether an FUSE mount has been broken in Tramp
* lisp/net/tramp-fuse.el (tramp-fuse-mount-timeout): New defconst.
(tramp-fuse-mounted-p): Use it. Check for a file property instead
of a connection property.
(tramp-fuse-unmount): Dito.
* lisp/net/tramp-sshfs.el (tramp-sshfs-maybe-open-connection):
Do not trust existence of a process, whether the volume is mounted.
* lisp/subr.el (define-keymap, define-keymap--define): Change how
these functions call each other.
(defvar-keymap): Change interface to be more like `define-keymap'.
* lisp/emacs-lisp/lisp-mode.el (lisp-indent--defvar-keymap): Remove.
(lisp-indent-function): Don't use it.
Daniel Martín [Tue, 5 Oct 2021 07:37:56 +0000 (09:37 +0200)]
Update documentation of search-whitespace-regexp
* doc/emacs/search.texi (Lax Search): Update the documentation about
the default value of search-whitespace-regexp, as it is now
independent of the major mode's syntax table (bug#51020).
In term-mode, handle ANSI codes, specifying italic and other modes
* etc/e/eterm-color.ti: Add new capabilities
* lisp/term.el: New faces and variables to support new ANSI modes.
(term-termcap-format): Add new capabilities
(term-emulate-terminal): When saving cursor, additionally save the new
variables.
(term--handle-colors-list): Handle ANSI codes, specifying italic other
modes.
* test/lisp/term-tests.el (ansi-test-strings): Adjust tests.
Add support for 256-color and 24bit ANSI colors in term-mode
(term-ansi-face-already-done): Make obsolete
(term--maybe-brighten-color): Remove
(term--color-as-hex): New function
(term-handle-colors-array): Make obsolete in favour of the new
function 'term--handle-colors-list'.
(term--handle-colors-list): New function, that can also handle ANSI
codes 38 and 48.
(term-handle-ansi-escape): Use it
* test/lisp/term-tests.el (ansi-test-strings): Add tests for 256-color
and 24bit ANSI colors
Miha Rihtaršič [Tue, 5 Oct 2021 06:53:36 +0000 (08:53 +0200)]
Add support for 256-color and 24bit ANSI colors in ansi-color
* lisp/ansi-color.el (ansi-color--code-as-hex): New function to
convert from 256-color and 24-bit ANSI codes.
(ansi-color--face-vec-face): Add support for ANSI color codes greater
than 16
(ansi-color--update-face-vec): Add support for ANSI codes 38 and 48
which can specify 256-color and 24bit ANSI colors.
* test/lisp/ansi-color-tests.el (ansi-color-tests--strings): Add tests
for ANSI codes 38 and 34
Miha Rihtaršič [Tue, 5 Oct 2021 06:47:07 +0000 (08:47 +0200)]
Optimize ansi-color.el
(ansi-color-context-region):
(ansi-color-context): Adjust doc string to the new format of
ansi-color context.
(ansi-color--find-face): Rename to ansi-color--face-vec-face
(ansi-color--face-vec-face): Adjust to the new format ansi-color
context.
(ansi-color-filter-apply):
(ansi-color-apply):
(ansi-color-filter-region):
(ansi-color-apply-on-region): Adjust to the new format of ansi-color
context in order to speed these functions up.
(ansi-color-apply-sequence): Make it obsolete.
(ansi-color--update-face-vec): New function to handle the new format
of ansi-color context.
(ansi-color-get-face-1): Make obsolete as this function isn't used any
more (bug#50806).
* lisp/emacs-lisp/memory-report.el (memory-report--type-size):
Default to nil so that the test in `memory-report-object-size' works.
(memory-report--set-size): Initialize
memory-report-object-size.
Paul Eggert [Mon, 4 Oct 2021 19:11:39 +0000 (12:11 -0700)]
Port recent Gnulib changes to MS-Windows
* nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_free-posix)
(OMIT_GNULIB_MODULE_malloc-posix)
(OMIT_GNULIB_MODULE_realloc-gnu)
(OMIT_GNULIB_MODULE_realloc-posix):
New macros, since we don’t want these modules on MS-Windows.
* src/w32heap.c (heap_alloc, heap_realloc): New functions.
(malloc_after_dump, realloc_after_dump, realloc_before_dump):
Use them.
Paul Eggert [Mon, 4 Oct 2021 19:11:39 +0000 (12:11 -0700)]
Update from Gnulib
Make the following changes by hand, and run 'admin/merge-gnulib'.
* .gitignore: Add lib/malloc/*.gl.h.
* admin/merge-gnulib: Copy lib/af_alg.h and lib/save-cwd.h
directly from Gnulib, without worrying about Gnulib modules,
as these files are special cases.
(AVOIDED_MODULES): Remove malloc-posix.
* lib/malloc.c, lib/realloc.c, m4/malloc.m4, m4/realloc.m4:
* m4/year2038.m4: New files, copied from Gnulib.
* lib/malloca.c, lib/malloca.h:
* m4/close-stream.m4, m4/glibc21.m4, m4/malloca.m4:
Remove. These are either no longer present in Gnulib, or are no
longer needed by modules that Emacs uses.
* oldXMenu/AddPane.c, oldXmenu/Addsel.c: Include XmenuInt.h first;
needed for new Gnulib.
* src/xmenu.c: Call emacs_abort, not abort.
Andrea Corallo [Mon, 4 Oct 2021 20:47:30 +0000 (22:47 +0200)]
* Fix mh tests for native comp builds (bug#50975)
* test/lisp/mh-e/mh-utils-tests.el (mh-ensure-native-trampolines):
New function.
(mh-test-utils-setup-with-mocks)
(mh-test-utils-setup-with-variant): Use it.
Andrea Corallo [Mon, 4 Oct 2021 19:15:02 +0000 (21:15 +0200)]
* Fix `batch-native-compile' not to spawn a subprocess
* lisp/emacs-lisp/comp.el (comp-running-batch-compilation): New var.
(comp-final): Use it.
(batch-native-compile): Bind `comp-running-batch-compilation' it.
Robert Pluim [Mon, 4 Oct 2021 17:11:15 +0000 (19:11 +0200)]
Remove U+FE0F from script-representative-chars
* lisp/international/fontset.el (script-representative-chars): Remove
U+FE0F / VS-16 from the 'emoji' entry. It could cause us to skip
fonts that don't have a glyph for it, even though we don't actually
need one.
* lisp/emacs-lisp/ert.el (ert-deftest, ert--run-test-internal):
Use t rather than the ambient file value for `lexical-binding` to
avoid bad lexbind coverage by mistake.
Allow computing :doc-spec info-look elements at run time
* lisp/info-look.el (info-lookup--expand-info): New function.
(:mode, info-lookup-add-help): Adjust doc string.
(info-lookup-add-help*): Allow adding a dynamic expansion.
(info-lookup): Expand.
(:mode): Use a dynamic expansion for Python to postpone the lookup.
(info-complete): Expand.
Paul Eggert [Mon, 4 Oct 2021 03:30:26 +0000 (20:30 -0700)]
Add safety check in x_menu_show
* src/xmenu.c (x_menu_show): Explicitly check whether save_wv can
be null here. Looks like it can be but I am not 100% sure, so
play it safe and add a FIXME comment.
Paul Eggert [Mon, 4 Oct 2021 03:11:57 +0000 (20:11 -0700)]
Tweak x_connection_closed when I/O error
* src/xterm.c (x_connection_closed): Don’t dereference dpyinfo
in the unlikely case where it is null and ioerror is true.
This pacifies gcc 11.2.1 -Wanalyzer-null-dereference.
Stefan Kangas [Sun, 3 Oct 2021 23:08:03 +0000 (01:08 +0200)]
Don't use some obsolete names in documentation
* admin/notes/bugtracker: Use non-obsolete name
'mail-dont-reply-to-names'.
* admin/notes/multi-tty: Mention new variable name
'x-selection-value'.
* doc/lispintro/emacs-lisp-intro.texi (Point and mark)
(Point and mark, Design @value{COUNT-WORDS}): Avoid using obsolete
name 'count-lines-region'.
* doc/lispref/hooks.texi (Standard Hooks): Remove reference to
obsolete abnormal hook 'completion-annotate-function'.
* doc/misc/efaq.texi (SPC no longer completes file names): Remove
reference to obsolete 'minibuffer-local-filename-must-match-map';
setting it has no effect.
* doc/misc/gnus.texi (NNTP): Remove reference to obsolete variable
'nntp-authinfo-file'.
* doc/misc/reftex.texi (Table of Contents, Creating Citations)
(Options - Table of Contents, Options - Referencing Labels)
(Options - Creating Citations, Options - Index Support)
(Options - Index Support, Changes): Don't use obsolete names.
* doc/misc/speedbar.texi (Minor Display Modes)
(Major Display Modes): Make variable name suggestions more in line
with existing non-obsolete variable.
* lisp/textmodes/reftex-cite.el (reftex-select-bib-mode-map):
* lisp/textmodes/reftex-ref.el (reftex-offer-label-menu): Don't use
obsolete variable names.
* lisp/progmodes/which-func.el (which-func-mode): Doc fix.
Paul Eggert [Mon, 4 Oct 2021 00:58:16 +0000 (17:58 -0700)]
Tweak x_hide_tip for consistency
* src/xfns.c (x_hide_tip, Fx_show_tip): Be consistent about using
!NILP (tip_frame) instead of FRAMEP (tip_frame). The two
expressions are logically equivalent since tip_frame is either a
frame or nil, !NILP is a bit faster, and making things consistent
pacifies gcc 11.2.1 -Wanalyzer-null-dereference.
Paul Eggert [Mon, 4 Oct 2021 00:52:04 +0000 (17:52 -0700)]
Remove encode_terminal_code UNINITs
* src/term.c (encode_terminal_code): Clarify by removing a couple
of UNINITs and testing the local variable ‘cmp’ instead of
retesting src->u.cmp.automatic. This pacifies gcc 11.2.1
-Wanalyzer-null-dereference.
Paul Eggert [Mon, 4 Oct 2021 00:22:30 +0000 (17:22 -0700)]
Port systhreads.h to C2x
* src/systhread.h: Put NODISCARD at the start of extern
declarations, not at the end. This is needed by C2x.
This patch also pacifies gcc 11.2.1 -Wattributes.
Paul Eggert [Sun, 3 Oct 2021 23:37:13 +0000 (16:37 -0700)]
Pacify -Wanalyzer-null-argument in lisp_malloc
* src/alloc.c (lisp_malloc): Document that NBYTES must be
positive, and omit a needless runtime check. This pacifies a
false alarm with gcc 11.2.1 -Wanalyzer-possible-null-dereference.
* lisp/international/mule.el (load-with-code-conversion): Call
hack-read-symbol-shorthands-function. Set up shorthands.
(hack-read-symbol-shorthands-function): New variable.
Paul Eggert [Sun, 3 Oct 2021 18:42:20 +0000 (11:42 -0700)]
Simplify socket symlink-attack checking
This is a minor bugfix cleanup (Bug#33847#161).
* lib-src/emacsclient.c: Move "#include <acl.h>" to inside
"#ifdef SOCKETS_IN_FILE_SYSTEM", which is more accurate
and simpler than having a separate "#ifndef WINDOWSNT".
(O_PATH): Likewise.
Alan Mackenzie [Sun, 3 Oct 2021 18:13:23 +0000 (18:13 +0000)]
Clarify (elisp) insert-file-contents with BEG or END not on character boundary
* doc/lispref/files.texi (Reading from files): When the argument BEG or END to
insert-file-contents are at a byte position not at a character boundary,
clarify that raw bytes get inserted, and how to handle this awkwardness in
Lisp. Also clarify that insert-file-contents-literally is intended to insert
raw bytes into the buffer. Fix the outdated example that states it inserts
500 characters, when it actually inserts 500 bytes.
Juri Linkov [Sun, 3 Oct 2021 17:35:49 +0000 (20:35 +0300)]
Move context-menu selection items Defun/List/Symbol to prog-mode (bug#9054)
* lisp/mouse.el (context-menu-functions):
Add context-menu-middle-separator to choices.
(context-menu-region): Move Defun/List/Symbol selection items
to prog-context-menu.
* lisp/progmodes/prog-mode.el (prog-context-menu):
Move Defun/List/Symbol selection items from context-menu-region.
Include text-mode select menu only in strings and comments.
* lisp/textmodes/text-mode.el (text-mode-menu): New function.
(text-mode): Add text-mode-menu to context-menu-functions.
Juri Linkov [Sun, 3 Oct 2021 17:16:32 +0000 (20:16 +0300)]
* lisp/tab-bar.el (tab-bar-detach-tab): Handle frame selected by make-frame.
(tab-bar-move-window-to-tab): New command.
(tab-bar-new-tab-to): Handle the value 'window' of tab-bar-new-tab-choice.
https://lists.gnu.org/archive/html/emacs-devel/2021-09/msg02197.html
Juri Linkov [Sun, 3 Oct 2021 17:13:29 +0000 (20:13 +0300)]
* lisp/tab-line.el (tab-line-format): Add face-modified to the cache key.
When tab-line-tab-face-functions contains tab-line-tab-face-modified,
add 'buffer-modified-p' status to the cache-key, so the cache will expire
when the buffer modification status will change.
https://lists.gnu.org/archive/html/emacs-devel/2021-10/msg00129.html
* lisp/net/tramp.el (tramp-file-name-unify): New defun.
(tramp-file-name-equal-p):
* lisp/net/tramp-cache.el (tramp-get-connection-property)
(tramp-set-connection-property, tramp-flush-connection-property)
(tramp-flush-connection-properties): Use it.
* lisp/net/tramp-fuse.el (tramp-fuse-get-fusermount): New defun.
(tramp-fuse-mount-points): New defvar.
(tramp-fuse-unmount): Use it. Delete VEC from
`tramp-fuse-mount-points'. Delete mount point.
(tramp-fuse-unmount-on-cleanup): New user option.
(tramp-fuse-cleanup, tramp-fuse-cleanup-all): New defuns.
(top): Adapt `tramp-fuse-unload-hook',
`tramp-cleanup-connection-hook',
`tramp-cleanup-all-connections-hook' and `kill-emacs-hook'.
* lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection):
* lisp/net/tramp-sshfs.el (tramp-sshfs-maybe-open-connection):
Add VEC to `tramp-fuse-mount-points'.
* test/lisp/net/tramp-tests.el (tramp-fuse-unmount-on-cleanup): Declare.
(tramp-test39-make-lock-file-name): Use it.