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.
* 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.
* lisp/emacs-lisp/comp.el (comp-running-batch-compilation): New var.
(comp-final): Use it.
(batch-native-compile): Bind `comp-running-batch-compilation' it.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
* 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.
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.
* 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.
* 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.
* doc/misc/tramp.texi (FUSE setup): Add tramp-fuse-unmount-on-cleanup.
* 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.
The new name fits better in the family of variables that affect
the Lisp reader.
Suggested-by: Po Lu <luangruo@yahoo.com>
* doc/lispref/symbols.texi (Shorthands): Mention read-symbol-shorthands
* lisp/shorthands.el (hack-read-symbol-shorthands)
(hack-read-symbol-shorthands)
(shorthands-font-lock-shorthands): Use read-symbol-shorthands
* lisp/progmodes/elisp-mode.el (elisp--completion-local-symbols)
(elisp--completion-local-symbols)
(elisp-shorthands): Use read-symbol-shorthands
* src/lread.c:
(syms_of_lread): Define Vread_symbol_shorthands
(oblookup_considering_shorthand): Use Vread_symbol_shorthands.
* test/lisp/progmodes/elisp-mode-tests.el (elisp-shorthand-read-buffer):
(elisp-shorthand-read-from-string): Use read-symbol-shorthands
* test/lisp/progmodes/elisp-mode-resources/simple-shorthand-test.el
Use new symbol name read-symbol-shorthands.
Only the shorthanded prefix is font-locked. This allows the remainder
of the font-lock logic to subsist (e.g. for macro-defining symbols).
* lisp/shorthands.el (cl-lib): Require it when compiling.
(elisp-shorthand-font-lock-face): New face.
(shorthands--mismatch-from-end): New helper.
(shorthands-font-lock-shorthands): New helper.
* test/lisp/progmodes/elisp-mode-resources/simple-shorthand-test.el:
Add some dummy test code.
* lisp/emacs-lisp/easy-mmode.el (easy-mmode--arg-docstring): Adjust.
(easy-mmode--mode-docstring): Avoid making quotes into pretty
quotes in code (bug#50968).
* test/lisp/subr-tests.el (subr-test-internal--format-docstring-line):
* lisp/subr.el (internal--format-docstring-line): Make it more clear
that this function is not intended for the first line of a docstring.
* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Add comment explaining
why we use 'internal--format-docstring-line'.
Problem pointed out by Stefan Monnier <monnier@iro.umontreal.ca>.