Also, replace obsolete city name "Bangalore" with "Delhi",
and improve doc strings.
* lisp/time.el (zoneinfo-style-world-list)
(legacy-style-world-list): Evidently "Bangalore" was chosen for
Asia/Kolkata to avoid confusion about "Calcutta" vs "Kolkata".
However, it has similar confusion with "Bengaluru".
Use "Delhi" instead, as Delhi is larger, its name has not changed
for some time, and proposals to change its name have so far failed.
See: Sharma MS. Vijay Goel wants Delhi renamed as Dilli, but historians
say it will only spell trouble. Times of India. 2019-07-25.
(zoneinfo-style-world-list): Update doc string. “Posix-style” was
ambiguous as TZDB-style strings are specified only by POSIX.1-2024,
so use “TZDB-style” instead. Say “AREA/LOCATION” to be consistent.
If AREA/LOCATION is unsupported, Emacs signals an error on NetBSD
so don’t imply that some other timezone will be used.
(legacy-style-world-list): Remove ("GMT0BST" "London") and ("CET-1CDT"
"Paris"). These are wrong because neither London nor Paris follow
US DST rules. Instead, use ("GMT0BST,M3.5.0/1,M10.5.0" "London")
and ("CET-1CEST,M3.5.0,M10.5.0/3" "Paris") if they work, and omit
London and Paris entries otherwise.
* test/lisp/textmodes/ispell-resources/fake-aspell-new.bash:
Avoid using associative arrays since they are not available
in old bash versions that come with some systems (bug#79177).
* doc/lispref/positions.texi (List Motion):
* doc/lispref/modes.texi (Major Mode Conventions, Major Modes)
(Parser-based Font Lock, Parser-based Indentation): Improve
indexing and cross-references to tree-sitter related stuff.
* lisp/progmodes/gdb-mi.el (gdb-init-1): Delay processing of GDB
responses while waiting for the user to answer the question about
enabling debuginfod. (Bug#79403)
* lisp/progmodes/php-ts-mode.el: Doc string update.
(php-ts-mode--language-source-alist): PHP grammar update.
(php-ts-mode-find-sibling-rules): Doc string fix.
(php-ts-mode--parent-html-heuristic): Handled the case where there
is no HTML between two blocks of PHP code.
(php-ts-mode--array-element-heuristic): Fix typo.
(php-ts-mode--pipe-heuristic): New function that handle PHP's new
pipe operator.
(php-ts-mode--indent-styles): Removed commented code. More
accurate indentation of ‘member_call_expression’. Use of new
function to handle pipe operator indentation. New rule for
indenting ‘property_hook_list’.
(php-ts-mode--test-yield-from-p): New predicate to check whether
the 'yield from' keyword is supported by the PHP grammar.
(php-ts-mode--test-pipe-p): New predicate to check whether the
‘pipe’ operator is supported by the PHP grammar.
(php-ts-mode--keywords): Use the new predicate
'php-ts-mode--test-yield-from-p'. Now it is a var instead of a
const.
(php-ts-mode--operators): Use the new predicate
'php-ts-mode--test-pipe-p'. Now it is a var instead of a const.
(php-ts-mode--font-lock-settings): New rules for
'nullsafe_member_access_expression', 'callable' primitive type.
New rule for the 'php_end_tag' if supported by the grammar.
More precise rules for 'scoped_call_expression' and
'member_call_expression'.
(php-ts-mode--inferior-php-process): Removed this unnecessary
variable.
(inferior-php-ts-mode-startup): Removed the use of
'php-ts-mode--inferior-php-process'.
(php-ts-mode-inferior--write-history): Removed the use of
'php-ts-mode--inferior-php-process'.
(Bug#79339)
Reloading a byte-compiled file when we fail to fetch some
docstring in it is not guaranteed to work and can cause
subtle bugs which are worse than simply not having a
docstring. Add 'documentation-dynamic-reload' variable to
allow disabling this behavior. See the discussion in
https://lists.gnu.org/archive/html/emacs-devel/2025-08/msg00304.html
for more details.
* src/doc.c (syms_of_doc): Add 'documentation-dynamic-reload'.
(Fdocumentation, Fdocumentation_property): Check value of
'documentation-dynamic-reload'.
* lisp/vc/log-edit.el (message): No longer require.
(log-edit-beginning-of-line): Delete. No longer required now
that Log Edit buffers use fields for headers. (In combination
with the new fields, this binding led to C-a behaving strangely
for summaries with colons in them.)
(log-edit-mode-map): Unbind it.
* lisp/auth-source.el (auth-source-ignore-non-existing-file):
Rename it from `auth-source-ignore-empty-file'.
(auth-source-backends-parser-file): Use it.
* doc/misc/auth.texi (Help for users):
* etc/NEWS:
* test/lisp/auth-source-tests.el (auth-source-validate-backend)
(auth-source-test-netrc-create-secret):
Use `auth-source-ignore-non-existing-file'.
* test/lisp/net/tramp-tests.el (tramp-test16-file-expand-wildcards)
(tramp-test26-interactive-file-name-completion):
Prefer #'string-lessp over 'string<.
(tramp--test-ange-ftp-p, tramp-test47-read-password)
(tramp-test47-read-otp-password): Use function read syntax.
* lisp/net/tramp.el (tramp-compat, tramp-message)
(tramp-integration, trampver): Require them later.
(top): Use `eval-and-compile' modifying `macro-declarations-alist'.
(tramp-register-file-name-handlers): Don't fail during bootstrap
before `tramp-loaddefs.el' is built.
They were caused by compilation errors going to 'display-warning'
which prints a duplicate of the message to stdout when running
noninteractively.
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-tests--log-warning-for-byte-compile)
(bytecomp-tests--with-warnings): New. Wrap around compilation calls in
this file.
* lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): We can
assume that non-compiled functions are from another file at this point
and remove an unused code branch which didn't actually work with
interpreted function objects anyway.