Merge from origin/emacs-30

8f8da2d785 ; * ChangeLog.4: Update.
49adcf30b0 ; * etc/AUTHORS: Update.
1381c6f959 * Update authors.el
5c0f3f5826 ; * etc/NEWS: Mark unmarked entries.
8a0c9c234f Document 'trusted-content
c6ce11b2a4 Mention network-interface-list in network-interface-info ...
a7905145f7 ; * lisp/emacs-lisp/re-builder.el (reb-change-syntax): Fi...
cde22c0201 Move NEWS items from unreleased 28.3 to released 29.1
5686bb5b42 Improve browse-url-android-share docstring
92041e15f4 Minor doc fix for url-handler-regexp
9fd96e2ab9 Improve reb-change-syntax docstring
b9dc337ea7 * lisp/files.el (trusted-content-p): Make `:all` work in ...
4b685bc4fc ; * src/process.c (Fnetwork_interface_list): Fix typo.
c14c489571 ; * lisp/net/nsm.el (nsm-trust-local-network): Fix typo.
10f976300d ; Add some tree-sitter thing content to the manual
55303a6bc0 * lisp/org/ox-texinfo.el (org-texinfo-template): Fix Info...
8b6c6cffd1 trusted-content: Adjust the last patch based on prelimina...
69b16e5c63 ; * etc/NEWS: Fix typos.
5c6dbc65f3 ; * doc/lispref/frames.texi (Multiple Terminals): Add ind...
856a58e282 Update documentation of 'etags' regexps some more
4c68846223 Update documentation of 'etags' regexps
b5158bd191 elisp-mode.el: Disable Flymake byte-compile backend in un...

# Conflicts:
#	doc/man/etags.1
#	etc/NEWS
#	lisp/org/ox-texinfo.el
This commit is contained in:
Eli Zaretskii 2024-12-21 07:56:08 -05:00
commit 3617940f32
21 changed files with 1104 additions and 107 deletions

View file

@ -1,3 +1,855 @@
2024-12-19 Andrea Corallo <acorallo@gnu.org>
* Update authors.el
* admin/authors.el (authors-aliases, authors-valid-file-names)
(authors-renamed-files-alist): Add entry.
2024-12-18 Eli Zaretskii <eliz@gnu.org>
Document 'trusted-content
* doc/emacs/misc.texi (Host Security): Document 'trusted-content'.
* lisp/files.el (trusted-content): Doc fix.
* etc/NEWS: Mark its entry as "documented".
2024-12-18 Robert Pluim <rpluim@gmail.com>
Mention network-interface-list in network-interface-info docstring
* src/process.c (Fnetwork_interface_info): Reference
'network-interface-list'.
2024-12-17 Stefan Kangas <stefankangas@gmail.com>
Move NEWS items from unreleased 28.3 to released 29.1
* etc/NEWS.28: Remove empty sections for 28.3.
Move single pertinent item from here...
* etc/NEWS.29: ...to here.
2024-12-17 Stefan Kangas <stefankangas@gmail.com>
Improve browse-url-android-share docstring
* lisp/net/browse-url.el (browse-url-android-share): Clarify that
the option only applies to Android systems.
2024-12-17 Stefan Kangas <stefankangas@gmail.com>
Minor doc fix for url-handler-regexp
* lisp/url/url-handlers.el (url-handler-regexp): Remove mention of
obsolete internal protocol "about" (i.e. url-about.el). Reflow.
2024-12-16 Stefan Kangas <stefankangas@gmail.com>
Improve reb-change-syntax docstring
* lisp/emacs-lisp/re-builder.el (reb-change-syntax): Improve docstring.
2024-12-16 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/files.el (trusted-content-p): Make `:all` work in non-file buffers
2024-12-15 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/org/ox-texinfo.el (org-texinfo-template): Fix Info format (bug#74844)
2024-12-15 Stefan Monnier <monnier@iro.umontreal.ca>
trusted-content: Adjust the last patch based on preliminary feedback
* lisp/files.el (trusted-content): Rename from `trusted-files`.
Update all references.
* lisp/progmodes/elisp-mode.el (lisp-interaction-mode):
* lisp/ielm.el (inferior-emacs-lisp-mode):
* lisp/simple.el (read--expression): Set `trusted-content` since
these buffers contain code that the user presumably intends to run anyway.
(elisp--safe-macroexpand-all): Make the warning more discreet.
2024-12-15 Paul Eggert <eggert@cs.ucla.edu>
Update documentation of 'etags' regexps some more
* doc/emacs/maintaining.texi (Etags Regexps):
* doc/man/etags.1: Give more details about what's not supported.
2024-12-15 Eli Zaretskii <eliz@gnu.org>
Update documentation of 'etags' regexps
* doc/emacs/maintaining.texi (Etags Regexps):
* doc/man/etags.1: Say that shy groups are not supported (bug#74861).
2024-12-14 Stefan Monnier <monnier@iro.umontreal.ca>
elisp-mode.el: Disable Flymake byte-compile backend in untrusted files
To address serious security issues (CVE-2024-53920), disable
`elisp-flymake-byte-compile` except in those files explicitly
specified as "trusted".
For that introduce a new custom var `trusted-files` and new
function `trusted-content-p`.
While at it, similarly skip the implicit macroexpansion done during
completion if the current file is not trusted.
* lisp/files.el (trusted-files): New variable.
(trusted-content-p): New function.
* lisp/progmodes/elisp-mode.el (elisp--safe-macroexpand-all):
New function, extracted from `elisp--local-variables`.
Use `trusted-content-p`.
(elisp--local-variables): Use it.
(elisp-flymake-byte-compile): Disable according to `trusted-content-p`.
2024-12-13 Stephen Gildea <stepheng+emacs@gildea.com>
* lisp/time-stamp.el: Limit field width to two digits.
2024-12-10 Philip Kaludercic <philipk@posteo.net>
Revert "Attempt to install package first when upgrading"
This reverts commit 3d8e49c41a66a7f05cb96f84e2a10f0f308ac9ca.
2024-12-10 Robert Pluim <rpluim@gmail.com>
Fix 'gnus-select-method' custom type
* lisp/gnus/gnus.el (gnus-redefine-select-method-widget): Cater
for the 'gnus-search-engine' configuration variable, which takes
2 args instead of 1. (Bug#74759)
2024-12-10 Chu <maedaqu@gmail.com> (tiny change)
Fix typo in maps.texi
* doc/lispref/maps.texi (Standard Keymaps): Fix typo. (Bug#74761)
2024-12-09 Michael Albinus <michael.albinus@gmx.de>
* doc/misc/tramp.texi (FUSE-based methods): Fix sshfs reference.
2024-12-08 Stefan Kangas <stefankangas@gmail.com>
Improve gnus.texi indexing
* doc/misc/gnus.texi (Common Variables): Improve indexing.
2024-12-07 Philip Kaludercic <philipk@posteo.net>
Attempt to install package first when upgrading
* lisp/emacs-lisp/package.el (package-upgrade): Swap the
'package-install' and the 'package-delete' invocations.
(Bug#74556)
2024-12-07 john muhl <jm@pub.pink>
Don't restrict 'lua-ts-send-file' to 'lua-ts-mode'
* lisp/progmodes/lua-ts-mode.el (lua-ts-send-file): Remove
restriction on interactive use. Unlike related send-* commands
it can be useful to send a file to the Lua interpreter outside of
a 'lua-ts-mode' buffer. (Bug#74705)
2024-12-07 Vincenzo Pupillo <vincenzo.pupillo@unimi.it>
Remove unnecessary function call from 'php-ts-mode'
* lisp/progmodes/php-ts-mode.el (php-ts-mode): Remove
unnecessary function call 'treesit-font-lock-recompute-features'.
(Bug#74688)
(cherry picked from commit c87c5b95e1309b59b6cb07d07a20234a74a73f35)
2024-12-04 Robert Pluim <rpluim@gmail.com>
Add tags to 'compilation-transform-file-match-alist' custom type
* lisp/progmodes/compile.el (compilation-filter-start): Add some
more meaningful tags, and switch to using 'radio' instead of
'choice'.
2024-12-04 Robert Pluim <rpluim@gmail.com>
Improve 'compilation-transform-file-match-alist' documentation
* doc/emacs/building.texi (Compilation Mode): Document
'compilation-transform-file-match-alist'.
* lisp/progmodes/compile.el
(compilation-transform-file-match-alist):
Expand docstring and add some examples.
2024-12-04 Robert Pluim <rpluim@gmail.com>
Improve 'compilation-hidden-output' docstring
* lisp/progmodes/compile.el (compilation-hidden-output): Escape
the newline so the example value is more suitable for copying.
2024-12-04 Robert Pluim <rpluim@gmail.com>
Improve docstrings of functions for moving to message headers
* lisp/gnus/message.el (message-goto-to, message-goto-from,
message-goto-subject, message-goto-cc, message-goto-bcc,
message-goto-fcc, message-goto-reply-to,
message-goto-newsgroups, message-goto-distribution,
message-goto-followup-to, message-goto-mail-followup-to,
message-goto-keywords, message-goto-summary): Mention that these
will insert an empty header if the header is not found.
(message-position-on-field): Explain that this inserts an empty
header if the header is missing, and that insertion is done
after the headers mentioned in AFTERS.
(cherry picked from commit 9f266e2d7cde41f5872304bae0b6d2415655f1c8)
2024-12-03 Stephen Berman <stephen.berman@gmx.net>
Fix the latest dabbrev-expand test fix
* test/lisp/dabbrev-tests.el (dabbrev-expand-after-killing-buffer):
In batch runs of this file, the user-error message contains curved
quotes, but grave quotes when running `make check' (so here was
evidently not passed to `substitute-command-keys'), so use grave
quotes so the test succeeds in both modes of execution.
2024-12-02 Michael Albinus <michael.albinus@gmx.de>
Fix password prompt in comint (don't merge)
* lisp/comint.el (comint-watch-for-password-prompt): Use whole
string for setting the prompt. (Bug#74626)
2024-12-02 Manuel Giraud <manuel@ledu-giraud.fr>
Fix the version of librsvg API change
* src/image.c (init_svg_functions, svg_load_image): The first
official version that introduces
'rsvg_handle_get_pixbuf_and_error' is 2.59.0 not 2.58.0.
(Bug#74606)
2024-12-02 Stephen Berman <stephen.berman@gmx.net>
Fix latest test for dabbrev-expand
* test/lisp/dabbrev-tests.el (dabbrev-expand-after-killing-buffer):
Fix typo in a 'should' test, use part of return value of 'should-error'
test, and remove mistaken and unfounded FIXME comment.
2024-12-01 Yuan Fu <casouri@gmail.com>
Allow passing nil to treesit-node-match-p (bug#74612)
* src/treesit.c (Ftreesit_node_match_p): Return nil if NODE is nil.
2024-12-01 Manuel Giraud <manuel@ledu-giraud.fr>
Update to version 2.58 of librsvg API (bug#74606)
* src/image.c (init_svg_functions): Declare new function.
(svg_load_image): Use it.
2024-12-01 Visuwesh <visuweshm@gmail.com>
Fix decoding of non-ASCII email attachments
* lisp/mail/rfc2231.el (rfc2231-parse-string): Fix logic when a
non-ASCII file name is split between two filename*N* parts.
(Bug#74624)
2024-11-30 Stephen Berman <stephen.berman@gmx.net>
Prevent "Selecting deleted buffer" error with dabbrev-expand
* lisp/dabbrev.el (dabbrev-expand): Use the buffer where the last
expansion was found only if it is still a live buffer (bug#74090).
* test/lisp/dabbrev-tests.el (dabbrev-expand-test-minibuffer-3):
Fix typo in doc string.
(dabbrev-expand-after-killing-buffer): New test.
2024-11-30 Yuan Fu <casouri@gmail.com>
Fix docstring of c-ts-mode-indent-style
* lisp/progmodes/c-ts-mode.el (c-ts-mode-indent-style): Make the
docstring reflect what's expected by the code.
2024-11-29 Vincenzo Pupillo <v.pupillo@gmail.com>
Support PHP 8.4 and more reliable indentation (bug#74525)
Added support for PHP 8.4 property hook. More reliable CSS and
Javascript syntax indentation when there are attributes in
<script> and <style>.
* lisp/progmodes/php-ts-mode.el:
(php-ts-mode--language-source-alist): Switch to the latest php
grammar.
(php-ts-mode--js-css-tag-bol): CSS and Javascript indentation is
now more more reliable in different formatting styles.
(php-ts-mode--test-property-hook-clause-p): New function that
tests property_hook support.
(php-ts-mode--font-lock-settings): Use the new function.
(php-ts-mode--colorize-css-value): The function now behaves
exactly like the one in css-ts-mode.
(php-ts-mode--feature-list): Changed the list to match
css-ts-mode.
2024-11-28 Martin Rudalics <rudalics@gmx.at>
Don't inadvertently reset frame scroll bar sizes (Bug#74435)
* src/frame.c (gui_set_scroll_bar_width)
(gui_set_scroll_bar_height): When the new size equals the old one
do not reset size to default size (Bug#74435).
2024-11-28 Mike Kupfer <kupfer@rawbw.com>
Mention special variables in lexical binding documentation
* doc/lispref/variables.texi (Lexical Binding): Briefly mention
special variables and their semantics. (Bug#74540)
2024-11-28 Eli Zaretskii <eliz@gnu.org>
Allow to go back to using 'ruby-mode' after loading 'ruby-ts-mode'
* lisp/progmodes/ruby-ts-mode.el (major-mode-remap-defaults):
Remap 'ruby-mode' to 'ruby-ts-mode'. Add commentary.
* lisp/progmodes/ruby-mode.el (major-mode-remap-defaults): Remove
any remappings of ruby-mode'.
* lisp/progmodes/c-ts-mode.el: Fix a typo in a comment. (Bug#74339)
2024-11-25 Stefan Kangas <stefankangas@gmail.com>
Delete obsolete section in admin/notes/repo
* admin/notes/repo: Delete section "How to merge changes from emacs-24
to master", which is documented in admin/notes/git-workflow. Also
delete out-of-date autoload advice.
2024-11-25 Joost Kremers <joostkremers@fastmail.com>
Improve documentation for 'while-let'
* doc/lispref/control.texi (Conditionals): Reorganise describing
what's overlapping between the macros (and between the macros
and let*), and then improve the documentation for 'while-let'.
2024-11-25 Yuan Fu <casouri@gmail.com>
Remove mention of treesit-defun-prefer-top-level (bug#74474)
treesit-defun-prefer-top-level is removed before Emacs 29
released and was replaced by treesit-defun-tactic. These
statements that set it doesn't do anything other than introduce
confusion, so we should remove them.
* lisp/progmodes/c-ts-mode.el (c-ts-base-mode):
* lisp/progmodes/js.el (js-ts-mode):
* lisp/progmodes/php-ts-mode.el (php-ts-mode):
* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode):
* lisp/progmodes/typescript-ts-mode.el:
(typescript-ts-base-mode):
Remove statements setting treesit-defun-prefer-top-level.
2024-11-24 Aaron Jensen <aaronjensen@gmail.com>
Fix NS non-native fullscreen on initial frame load (bug#59790)
* src/nsterm.m ([EmacsView toggleFullScreen:]): Reset fs_is_native
2024-11-24 Eli Zaretskii <eliz@gnu.org>
Fix user options for listing and marking diary files
* lisp/calendar/diary-lib.el (diary-nongregorian-listing-hook)
(diary-nongregorian-marking-hook): Add Chinese functions to the
list of variable's options. (Bug#74498)
2024-11-24 john muhl <jm@pub.pink>
Avoid loading 'rx' at runtime in 'lua-ts-mode'
* lisp/progmodes/lua-ts-mode.el (lua-ts-inferior-lua):
Replace 'rx-to-string' and substitution with 'rx' and 'literal'.
(Bug#74499)
(cherry picked from commit e71d714a815e1088f8cfe946b1e431356ec85b24)
2024-11-23 Eli Zaretskii <eliz@gnu.org>
Make 'jsonrpc-default-request-timeout' a defcustom
* lisp/jsonrpc.el (jsonrpc-default-request-timeout): New
defcustom, replaces a defconst.
(jsonrpc): New customization group.
* etc/NEWS: Announce the change. (Bug#74338)
2024-11-23 Eli Zaretskii <eliz@gnu.org>
Update MS-Windows build instructions
* nt/INSTALL.W64:
* nt/README.W32: Update the name of the MSYS2 libtree-sitter
distribution. Reported by Nerd <hiweedmandriva3@163.com>.
(Bug#74429)
2024-11-22 Laurence Warne <laurencewarne@gmail.com>
Skip proced refine tests on Darwin
* test/lisp/proced-tests.el (proced-refine-test)
(proced-refine-with-update-test): Skip if the system is Darwin.
2024-11-21 Eli Zaretskii <eliz@gnu.org>
Future-proof loading tree-sitter library on MS-Windows
* src/treesit.c (syms_of_treesit) <tree-sitter--library-abi>: New
internal variable.
* lisp/term/w32-win.el (dynamic-library-alist): Use
'tree-sitter--library-abi' to select a proper libtree-sitter DLL
version.
2024-11-21 Eli Zaretskii <eliz@gnu.org>
Fix overriding 'c-ts-mode' by 'c-mode'
* lisp/progmodes/c-ts-mode.el: Remove all c- and c++-mode
associations from 'major-mode-remap-defaults' before installing
entries that remap to 'c-ts-mode' and 'c++-ts-mode'. (Bug#74339)
2024-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
lisp/progmodes/c-ts-mode.el: Demote loading c-ts-mode as a configuration
See bug#74367.
2024-11-16 F. Jason Park <jp@neverwas.me>
Backport: Don't autoload erc-modules
* doc/misc/erc.texi (Modules): Recommend using `describe-variable'
instead of `customize-option' because the latter needs the symbol to be
loaded.
* lisp/erc/erc.el (erc-modules): Remove autoload cookie because it
caused customizations for this option to load the main library. This
reverts the thrust of bb894845 "Teach customize-option about
erc-modules", which was added in ERC 5.6 and Emacs 30. The motivation
for the original offending change was to allow new users to run M-x
customize-option RET erc-modules RET immediately after startup instead
of M-x customize-group RET, followed by an I-search. (Bug#73812)
(Cherry picked from commit 1854f2751e3f73e1e5f12f6de993b6357de1766b)
Do not merge to master.
2024-11-16 Eli Zaretskii <eliz@gnu.org>
Improve the documentation of major-mode remapping
* etc/NEWS (example):
* doc/emacs/files.texi (Reverting):
* doc/emacs/modes.texi (Choosing Modes): Improve the documentation
of 'major-mode-remap-alist' and mode remapping. (Bug#74339)
2024-11-15 Robert Pluim <rpluim@gmail.com>
Improve 'which-key-special-keys' docstring
* lisp/which-key.el (which-key-special-keys): Explain the format
and use 'setopt'.
2024-11-15 Laurence Warne <laurencewarne@gmail.com>
Don't error in Proced tests if %CPU is a NaN
* test/lisp/proced-tests.el (proced--cpu-at-point): New function.
(proced--assert-process-valid-cpu-refinement)
(proced-refine-test, proced-refine-with-update-test): If %CPU for any
process visited is a NaN skip the test.
(proced-update-preserves-pid-at-point-test): Fix typo in comment.
(proced--assert-process-valid-cpu-refinement-explainer): Add process
attributes to the explainer along with tweaking how the process %CPU is
obtained to account for circumstances where it's not numeric (most
notably '-nan').
2024-11-15 Joseph Turner <joseph@breatheoutbreathe.in>
* lisp/subr.el (read-number): Document collision with 'format-prompt'.
2024-11-14 Vincenzo Pupillo <v.pupillo@gmail.com>
Improve font-locking and indentation in 'php-ts-mode'
* lisp/progmodes/php-ts-mode.el (php-ts-mode--language-source-alist):
Updated to latest version of PHP grammar.
(php-ts-mode--indent-styles): 'namespace_use_declaration' is now
correctly indented.
(php-ts-mode--operators): Support of the "argument unpacking
operator".
(php-ts-mode--font-lock-settings): 'nullsafe_member_call_expression'
is now highlighted correctly.
(php-ts-mode--comment-indent-new-line): Delete trailing whitespace
before inserting newline (see bug#73900 for more information).
Bug#74239
2024-11-14 john muhl <jm@pub.pink>
Fix some 'lua-ts-mode' options (Bug#74235)
* lisp/progmodes/lua-ts-mode.el (lua-ts-luacheck-program):
(lua-ts-inferior-program): Switch to 'file' type and remove 'nil'
as a choice.
(lua-ts-inferior-lua): Ensure 'lua-ts-inferior-program' is set.
2024-11-14 john muhl <jm@pub.pink>
Improve comment indenting in 'lua-ts-mode'
* lisp/progmodes/lua-ts-mode.el (lua-ts--simple-indent-rules):
Align single line comments with the surrounding context.
(lua-ts--comment-first-sibling-matcher): Check that comment is
the first sibling.
(lua-ts--multi-line-comment-start): New function.
* test/lisp/progmodes/lua-ts-mode-resources/indent.erts:
Add tests. (Bug#74298)
2024-11-14 Eshel Yaron <me@eshelyaron.com>
Update 'xref-num-matches-found' when reverting *xref* buffer
* lisp/progmodes/xref.el (xref--insert-xrefs):
Update 'xref-num-matches-found' here...
(xref--show-xref-buffer): ...instead of here (bug#74313).
2024-11-13 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/files.el (require-with-check): Fix last fix (bug#74289)
2024-11-10 Stefan Monnier <monnier@iro.umontreal.ca>
lisp/files.el (require-with-check): Fix bug#74091.
2024-11-10 Eli Zaretskii <eliz@gnu.org>
Fix handling of permanent-local variables in 'kill-all-local-variables'
The original implementation went too far and caused unexpected
results.
* src/buffer.c (reset_buffer_local_variables): Second argument is
now 'int', and can be 0, 1, or 2.
(Fkill_all_local_variables): Call 'reset_buffer_local_variables'
with 2nd argument 2 if KILL-PERMANENT is non-nil. (Bug#74091)
2024-11-10 Michael Albinus <michael.albinus@gmx.de>
Precise password cache in Tramp
* doc/misc/tramp.texi (Password handling):
Describe auth-source-cache-expiry and auth-source-do-cache instead
of password-cache-expiry and password-cache. (Bug#74105)
* lisp/net/tramp.el (tramp-read-passwd): Check for `auth-sources'
being non-nil.
2024-11-10 Eli Zaretskii <eliz@gnu.org>
Fix picture-mode with full-width characters
* lisp/textmodes/picture.el (picture-insert): Don't rely on
'move-to-column' to move to the column that is its argument: this
might be false when full-width characters are involved.
2024-11-10 Eli Zaretskii <eliz@gnu.org>
Fix movement to the left in picture-mode
* lisp/textmodes/picture.el (picture-insert): Measure width by
counting columns on display, not by using 'string-width', because
the latter is inaccurate when TABs are involved. (Bug#74255)
2024-11-09 Eli Zaretskii <eliz@gnu.org>
Fix documentation and error message of adding local variables
* lisp/files-x.el (add-file-local-variable)
(add-file-local-variable-prop-line): Doc fixes.
(add-file-local-variable): Improve the user-error text. (Bug#74267)
2024-11-09 Eli Zaretskii <eliz@gnu.org>
Document the 'display-line-numbers-disable' property
* doc/lispref/display.texi (Overlay Properties):
* doc/lispref/text.texi (Special Properties): Document
'display-line-numbers-disable'. Fix indexing.
2024-11-09 Eli Zaretskii <eliz@gnu.org>
Document issues with 'use-package's ':custom' and byte compilation
* doc/misc/use-package.texi (User options): Warn against
byte-compiling init files that use ':custom'. (Bug#73609)
2024-11-08 Tim Ruffing <dev@real-or-random.org>
Fix display of compositions when font style changes (Cairo backend)
* src/ftcrfont.c (ftcrhbfont_end_hb_font): Don't persist the
result of 'cairo_ft_scaled_font_lock_face' in violation of the
API contract. (Bug#73752)
2024-11-06 Mattias Engdegård <mattiase@acm.org>
Fix wrong value of `when` and `unless` with empty body (bug#74215)
* lisp/subr.el (when, unless): Return nil when the body is empty.
Reported by Brennan Vincent.
* test/lisp/subr-tests.el (subr-test-when): Add test cases.
(cherry picked from commit 9ee9154247454c18f9f75d0d32592b817d7e977a)
2024-11-05 Robert Pluim <rpluim@gmail.com>
Improve 'open-network-stream' documentation.
* doc/lispref/processes.texi (Network): Correct explanation of
':warn-unless-encrypted'. Document ':error' return keyword.
* lisp/net/network-stream.el (open-network-stream): Improve
':return-list' documentation. Document ':error'. Correct
explanation of ':warn-unless-encrypted'.
2024-11-03 Michael Albinus <michael.albinus@gmx.de>
Improve Tramp documentation on direct async processes
* doc/misc/tramp.texi (Remote processes): Add another example
enabling direct async processes based on method name. (Bug#74105)
* etc/NEWS: Rephrase Tramp entry on direct async processes.
2024-11-01 Eli Zaretskii <eliz@gnu.org>
Improve documentation of letter-case conversions
* doc/lispref/nonascii.texi (Character Properties):
* doc/lispref/strings.texi (Case Conversion, Case Tables):
Document that special-casing rules override the case-table
conversions. (Bug#74155)
2024-11-01 Dmitry Gutov <dmitry@gutov.dev>
project-tests: Add test assertion for bug#73801
* test/lisp/progmodes/project-tests.el
(project-vc-extra-root-markers-supports-wildcards): End with a
check that we didn't cache a wrong value for parent (bug#73801).
(cherry picked from commit 94a9e40e82d4180563d7bddfa0cc6c8990824f8d)
2024-11-01 Dmitry Gutov <dmitry@gutov.dev>
project-try-vc: Fix the "sometimes wrong cache" issue
* lisp/progmodes/project.el (project-try-vc--search):
Extract from 'project-try-vc'.
(project-try-vc): Use it.
(project-try-vc--search): Call itself recursively directly, to
avoid creating invalid cache entry (bug#73801).
(cherry picked from commit 29b30eb49f8bd8bad4f9e24dd56f32d62bf70121)
2024-10-31 Stephen Berman <stephen.berman@gmx.net>
Fix bugs in dabbrev-expand (bug#74090)
* lisp/dabbrev.el (dabbrev-expand): Use the buffer where the
expansion was found when setting the internal variables used to
determine the next expansion or a replacement expansion.
* test/lisp/dabbrev-tests.el (ert-x): Require for
'ert-with-temp-directory', 'ert-resource-directory' and
'ert-resource-file'.
(with-dabbrev-test): New macro.
(dabbrev-expand-test-same-buffer-{1,2,3,4})
(dabbrev-expand-test-other-buffer-{1,2,3,4})
(dabbrev-expand-test-minibuffer-{1,2,3,4}): New tests.
* test/lisp/dabbrev-resources/dabbrev-expand.el:
* test/lisp/dabbrev-resources/INSTALL_BEGIN: New test resources.
(cherry picked from commit f6c359cb66a0e9b851e3467b1ba9cab7efa8f744)
2024-10-31 Yuan Fu <casouri@gmail.com>
Fix undefined variable in previous commit (bug#73900)
I somehow thought allow-auto-fill is a global variable that's
used by cc. But it's not. It's just a function param used by
c-indent-new-comment-line.
* lisp/progmodes/c-ts-common.el:
(c-ts-common-comment-indent-new-line): Remove reference to
allow-auto-fill.
2024-10-31 Yuan Fu <casouri@gmail.com>
Fix c-ts-common-comment-indent-new-line (bug#73900)
* lisp/progmodes/c-ts-common.el:
(c-ts-common-comment-indent-new-line): Delete trailing
whitespace before inserting newline. The insert-line-break
function is the same as in c-indent-new-comment-line.
2024-10-31 Yuan Fu <casouri@gmail.com>
Fix the call to treesit-thing-defined-p
* lisp/treesit.el (treesit-defun-at-point): Add the necessary
2nd argument.
2024-10-30 Juri Linkov <juri@linkov.net>
Backport: Call tab-bar-tab-post-open-functions during tabs initialization
* lisp/tab-bar.el (tab-bar-tabs): Run the hook
'tab-bar-tab-post-open-functions' after creating the first tab
in the selected frame's tab-bar list of tabs (bug#74087).
Suggested by Ship Mints <shipmints@gmail.com>.
(cherry picked from commit 2c062dfdf50970766db179ccbad7ce71c541cd72)
2024-10-30 Laurence Warne <laurencewarne@gmail.com>
Work on proced-tests.el
* test/lisp/proced-tests.el
(proced--assert-process-valid-cpu-refinement-explainer): New function
for explaining refinement test failures in greater detail.
2024-10-29 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/files.el (require-with-check): Be a bit more lenient (bug74040)
2024-10-29 Stefan Monnier <monnier@iro.umontreal.ca>
(with-peg-rules): Fix references to rulesets (bug#74018)
PEG rules get "compiled" to functions with name `peg-rule <RULE>`.
`define-peg-ruleset` instead defines it PEG rules with name
`peg-rule <RULESET> <RULE>`, so that they can be made visible
by `with-peg-rules` simply by adding local aliases from
`peg-rule <RULE>` to `peg-rule <RULESET> <RULE>`.
Apparently when I added `define-peg-ruleset` I somehow failed to
install some of the corresponding code in `with-peg-rules`, so
the aliases were not installed, making it "impossible" to use
rulesets.
[ I still have no idea how this happened and/or where
the missing code went, so I "recreated" it. ]
* lisp/progmodes/peg.el (with-peg-rules): Install the aliases
for the rulesets.
(peg--translate-rule-body): Try and preserve
location info when emitting a warning.
* test/lisp/progmodes/peg-tests.el (peg-test-myrules): New ruleset.
(peg-test-ruleset): New test.
2024-10-27 Stefan Monnier <monnier@iro.umontreal.ca>
Tweak doc w.r.t to "void function" (bug#73886)
* doc/lispref/functions.texi (Function Cells): Avoid talking
about the function cell being void.
* src/data.c (Fboundp, Ffmakunbound, Fsymbol_function):
Don't suggest that "void" can be considered as a kind of value.
2024-10-27 Laurence Warne <laurencewarne@gmail.com>
Fix flakey proced refine tests (Bug#73441)
* test/lisp/proced-tests.el (proced-refine-test)
(proced-refine-with-update-test): Use the much simpler CPU refinement
for testing 'proced-refine'. The previous tests made the incorrect
assumption that refining on the PID of process A only filtered the
buffer to contain process A and its children, whereas in actuality
the children of process A's children, their children, and so on will
also be shown.
(proced-update-preserves-pid-at-point-test): Mark as unstable.
2024-10-27 Eli Zaretskii <eliz@gnu.org>
Another 'void' update
* doc/lispref/symbols.texi (Symbol Components): Another update due
to the change in 'void' function implementation. (Bug#73886)
2024-10-27 Eli Zaretskii <eliz@gnu.org>
Fix doc string of 'wdired-use-dired-vertical-movement'
* lisp/wdired.el (wdired-use-dired-vertical-movement): Remove the
incorrect reference to 'track-eol'. (Bug#73917)
2024-10-27 Eli Zaretskii <eliz@gnu.org>
Update the documentation of void functions
* doc/lispref/functions.texi (Function Cells):
* src/data.c (Ffboundp, Ffmakunbound, Fsymbol_function): Update
documentation to the changes of how void functions are represented
since Emacs 24.5. (Bug#73886)
2024-10-27 Sean Whitton <spwhitton@spwhitton.name>
Backport some docstring updates, warn about upcoming obsolescence
Try to save people some time if they're developing on Emacs 30.x.
Do not merge to master.
* lisp/subr.el (if-let*, when-let*, if-let, when-let): Move
docstring text around so that if-let* and when-let* descriptions
no longer refer to if-let and when-let. Note that if-let and
when-let will be marked obsolete, and recommend if-let*,
when-let* and and-let* for new code.
2024-10-26 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/editorconfig.el (editorconfig--get-indentation): Fix bug#73991
2024-10-26 Andrea Corallo <acorallo@gnu.org>
Update 'ldefs-boot.el' (don't merge)
* lisp/ldefs-boot.el: Update.
2024-10-26 Andrea Corallo <acorallo@gnu.org>
Bump Emacs version to 30.0.92
* nt/README.W32: Update Emacs version.
* msdos/sed2v2.inp: Likewise.
* exec/configure.ac: Likewise.
* configure.ac: Likewise.
* README: Likewise.
2024-10-25 Eli Zaretskii <eliz@gnu.org>
Skip *.dylib files in 'loaddefs-generate'
@ -201640,7 +202492,7 @@
This file records repository revisions from
commit f2ae39829812098d8269eafbc0fcb98959ee5bb7 (exclusive) to
commit 8e37b537160c1560048ac53529ef09de7561963c (inclusive).
commit 1381c6f9591f2851896a41e178a5ccc1a32e7471 (inclusive).
See ChangeLog.3 for earlier changes.
;; Local Variables:

View file

@ -311,7 +311,7 @@ files.")
("Lin Zhou" "georgealbert@qq\\.com")
(nil "yan@metatem\\.net")
(nil "gnu_lists@halloleo\\.hailmail\\.net")
)
(nil "^Chu$" "maedaqu@gmail.com"))
"Alist of author aliases.
Each entry is of the form (REALNAME REGEXP...).
@ -1151,7 +1151,7 @@ AUTHORS file. There are also some more recent manual additions.")
"admin/notes/tree-sitter/build-module/batch.sh"
"doc/misc/gnus-coding.texi"
"gnus-coding.texi"
)
"doc/misc/org.texi")
"File names which are valid, but no longer exist (or cannot be found)
in the repository.")
@ -1711,7 +1711,8 @@ in the repository.")
("lisp/emacs-lisp/tcover-unsafep.el" . "test/lisp/emacs-lisp/unsafep-tests.el")
("lisp/vt100-led.el" . "lisp/obsolete/vt100-led.el")
("lisp/mail/metamail.el" . "lisp/obsolete/metamail.el")
("lisp/sb-image.el" . "lisp/obsolete/sb-image.el"))
("lisp/sb-image.el" . "lisp/obsolete/sb-image.el")
("lisp/cedet/semantic/grammar-wy.el" . "lisp/cedet/semantic/grm-wy-boot.el"))
"Alist of files which have been renamed during their lifetime.
Elements are (OLDNAME . NEWNAME).")

View file

@ -3138,7 +3138,12 @@ and all the C character escape sequences are supported: @samp{\a} for
bell, @samp{\b} for back space, @samp{\e} for escape, @samp{\f} for
formfeed, @samp{\n} for newline, @samp{\r} for carriage return,
@samp{\t} for tab, and @samp{\v} for vertical tab. In addition,
@samp{\d} stands for the @code{DEL} character.
@samp{\d} stands for the @code{DEL} character. Otherwise,
the regular expression syntax is the same as Emacs
except that backslash escapes are the same
as GNU grep (which means, for example, that shy groups are not supported),
and @samp{[:ascii:]}, @samp{[:multibyte:]}, @samp{[:nonascii:]},
@samp{[:word:]}, and @samp{[:unibyte:]} are not supported.
Ideally, @var{tagregexp} should not match more characters than are
needed to recognize what you want to tag. If the syntax requires you

View file

@ -277,6 +277,39 @@ trusted and the default checking for these variables is irritating,
you can set @code{enable-local-variables} to @code{:all}. @xref{Safe
File Variables}.
@cindex trusted files and directories
Loading a file of Emacs Lisp code with @code{load-file} or
@code{load-library} (@pxref{Lisp Libraries}) can execute some of the
Lisp code in the file being loaded, so you should only load Lisp files
whose source you trust. However, some Emacs features can in certain
situations execute Lisp code even without your explicit command or
request. For example, Flymake, the on-the-fly syntax checker for Emacs
(@pxref{Top,,, flymake, GNU Flymake}), if it is enabled, can
automatically execute some of the code in a Lisp file you visit as part
of its syntax-checking job. Similarly, some completion commands
(@pxref{Completion}) in buffers visiting Lisp files sometimes need to
expand Lisp macros for best results. In these cases, just visiting a
Lisp file and performing some editing in it could trigger execution of
Lisp code. If the visited file came from an untrusted source, it could
include dangerous or even malicious code that Emacs would execute in
those situations.
To protect against this, Emacs disables execution of Lisp code by
Flymake, completion, and some other features, unless the visited file is
@dfn{trusted}. It is up to you to specify which files on your system
should be trusted, by customizing the user option
@code{trusted-content}.
@defopt trusted-content
The value of this option is @code{nil} by default, which means no file
is trusted. You can customize the variable to be a list of one or more
names of trusted files and directories. A file name that ends in a
slash @file{/} is interpreted as a directory, which means all its files
and subdirectories are also trusted. A special value @code{:all} means
@emph{all} the files and directories on your system should be trusted;
@strong{this is not recommended}, as it opens a gaping security hole.
@end defopt
@xref{Security Considerations,,, elisp, The Emacs Lisp Reference
Manual}, for more information about security considerations when using
Emacs as part of a larger application.

View file

@ -380,6 +380,9 @@ than one physical monitor. You can use the functions
@code{display-monitor-attributes-list} and @code{frame-monitor-attributes}
to obtain information about such setups.
@cindex display geometry
@cindex monitor geometry
@cindex geometry of display monitor
@defun display-monitor-attributes-list &optional display
This function returns a list of physical monitor attributes on
@var{display}, which can be a display name (a string), a terminal, or

View file

@ -1610,6 +1610,16 @@ Note that this example is modified for didactic purposes, and isn't
exactly how C and C@t{++} modes define things.
@end defvar
Emacs builtin functions already make use some thing definitions.
Command @code{treesit-forward-sexp} uses the @code{sexp} definition if
major mode defines it; @code{treesit-forward-sentence} uses the
@code{sentence} definition. Defun movement functions like
@code{treesit-end-of-defun} uses the @code{defun} definition
(@code{defun} definition is overridden by
@var{treesit-defun-type-regexp} for backward compatibility). Major
modes can also define @code{comment}, @code{string}, @code{text}
(generally comments and strings).
The rest of this section lists a few functions that take advantage of
the thing definitions. Besides the functions below, some other
functions listed elsewhere also utilize the thing feature, e.g.,

View file

@ -1,5 +1,5 @@
.\" See section COPYING for copyright and redistribution information.
.TH ETAGS 1 "2024-10-06" "GNU Tools" "GNU"
.TH ETAGS 1 "2024-12-21" "GNU Tools" "GNU"
.de BP
.sp
.ti -.2i
@ -187,10 +187,13 @@ useless characters. If the match is such that more characters than
needed are unavoidably matched by \fItagregexp\fP, it may be useful to
add a \fInameregexp\fP, to narrow down the tag scope. \fBctags\fP
ignores regexps without a \fInameregexp\fP. The syntax of regexps is
the same as in emacs. The following character escape sequences are
supported: \\a, \\b, \\d, \\e, \\f, \\n, \\r, \\t, \\v, which
respectively stand for the ASCII characters BEL, BS, DEL, ESC, FF, NL,
CR, TAB, VT.
the same as in Emacs, except that backslash escapes are the same
as GNU grep (which means, for example, that shy groups are not supported),
and \fB[:ascii:]\fP, \fB[:multibyte:]\fP, \fB[:nonascii:]\fP,
\fB[:word:]\fP, and \fB[:unibyte:]\fP are not supported.
The following character escape sequences are supported:
\\a, \\b, \\d, \\e, \\f, \\n, \\r, \\t, \\v, which respectively
stand for the ASCII characters BEL, BS, DEL, ESC, FF, NL, CR, TAB, VT.
.br
The \fImodifiers\fP are a sequence of 0 or more characters among
\fIi\fP, which means to ignore case when matching; \fIm\fP, which means

View file

@ -1737,8 +1737,8 @@ Eli Zaretskii: wrote [bidirectional display in xdisp.c]
and co-wrote help-tests.el
and changed xdisp.c display.texi w32.c msdos.c simple.el w32fns.c
files.el fileio.c keyboard.c emacs.c configure.ac text.texi w32term.c
dispnew.c frames.texi w32proc.c files.texi xfaces.c window.c
dispextern.h lisp.h and 1398 other files
dispnew.c frames.texi files.texi w32proc.c xfaces.c window.c
dispextern.h lisp.h and 1400 other files
Eliza Velasquez: changed server.el simple.el
@ -1888,9 +1888,10 @@ E Sabof: changed hi-lock.el image-dired.el
Eshel Yaron: wrote completion-preview.el
and changed eglot.el emoji.el eww.el help-fns.el info.el programs.texi
text-mode.el window.c xdisp.c bookmark.el completion-preview-tests.el
dictionary.el easy-mmode.el eldoc.el emacs.texi eww.texi fixit.texi
frames.texi help-mode.el help.el indent.texi and 14 other files
text-mode.el window.c xdisp.c xref.el bookmark.el
completion-preview-tests.el dictionary.el easy-mmode.el eldoc.el
emacs.texi eww.texi fixit.texi frames.texi help-mode.el help.el
and 14 other files
Espen Skoglund: wrote pascal.el
@ -3134,8 +3135,8 @@ Jon K Hellan: wrote utf7.el
Joost Diepenmaat: changed org.el
Joost Kremers: changed reftex-toc.el vtable-tests.el vtable.el
vtable.texi
Joost Kremers: changed control.texi reftex-toc.el vtable-tests.el
vtable.el vtable.texi
Joram Schrijver: changed eglot.el
@ -3175,7 +3176,7 @@ and changed xterm.c xfns.c keyboard.c screen.c dispnew.c xdisp.c window.c
Joseph M. Kelsey: changed fileio.c skeleton.el
Joseph Turner: changed package-vc.el minibuffer.el image.el subr.el
Joseph Turner: changed package-vc.el minibuffer.el subr.el image.el
display.texi image-tests.el info.el ispell.el lists.texi package.el
package.texi records.texi shortdoc.el shorthands.el subr-tests.el
@ -3654,7 +3655,7 @@ Lasse Rasinen: changed gnus-start.el
Lassi Kortela: changed dns-mode.el
Laurence Warne: changed proced.el proced-tests.el progmodes/python.el
Laurence Warne: changed proced-tests.el proced.el progmodes/python.el
python-tests.el
Laurent Martelli: changed mm-decode.el
@ -3812,10 +3813,10 @@ Malcolm Purvis: changed spam-stat.el
Manoj Srivastava: wrote manoj-dark-theme.el
Manuel Giraud: changed image-dired.el xdisp.c vc.el ox-html.el
Manuel Giraud: changed image-dired.el xdisp.c vc.el image.c ox-html.el
bookmark.el doc-view.el find-dired.el image-dired-util.el keyboard.c
longlines.el ox-publish.el dired.el dispextern.h gdb-mi.el gnus.el
image.c paragraphs.el simple.el androidterm.c basic.texi battery.el
paragraphs.el simple.el androidterm.c basic.texi battery.el
and 29 other files
Manuel Gómez: changed speedbar.el
@ -4358,7 +4359,7 @@ Mike Kazantsev: changed erc-dcc.el
Mike Kupfer: changed mh-comp.el mh-e.el mh-mime.el mh-utils.el files.el
ftcrfont.c mh-compat.el mh-funcs.el mh-utils-tests.el emacs-mime.texi
files.texi gnus-mh.el gnus.texi mh-acros.el mh-e.texi mh-identity.el
mh-scan.el xftfont.c
mh-scan.el variables.texi xftfont.c
Mike Lamb: changed em-unix.el esh-util.el pcmpl-unix.el
@ -4447,7 +4448,7 @@ Murata Shuuichirou: changed coding.c
M Visuwesh: changed dired-aux.el image.el ind-util.el quail/indian.el
delsel.el doc-view.el eww.el find-dired.el mailcap.el mouse.el shr.el
arc-mode.el comint.el dired-x.el dired.el easy-mmode.el emacsbug.el
ffap.el files.el files.texi gnus-group.el and 18 other files
ffap.el files.el files.texi gnus-group.el and 19 other files
Myles English: changed org-clock.el
@ -4770,7 +4771,7 @@ and co-wrote cal-dst.el
and changed lisp.h configure.ac alloc.c fileio.c process.c editfns.c
sysdep.c xdisp.c fns.c image.c data.c emacs.c keyboard.c lread.c
xterm.c eval.c gnulib-comp.m4 merge-gnulib callproc.c Makefile.in
buffer.c and 1886 other files
buffer.c and 1887 other files
Paul Fisher: changed fns.c
@ -5300,10 +5301,11 @@ Roberto Rodríguez: changed glossary.texi widget.texi
Robert P. Goldman: changed org.texi ob-exp.el org.el ox-latex.el
Robert Pluim: wrote nsm-tests.el
and changed configure.ac process.c keymap.el blocks.awk custom.texi
font.c network-stream-tests.el processes.texi emoji-zwj.awk ftfont.c
and changed configure.ac process.c keymap.el blocks.awk processes.texi
custom.texi font.c network-stream-tests.el emoji-zwj.awk ftfont.c
gtkutil.c process-tests.el unicode vc-git.el display.texi files.texi
nsterm.m terminal.c char-fold.el gnutls.el help.el and 215 other files
network-stream.el nsterm.m terminal.c char-fold.el gnutls.el
and 217 other files
Robert Thorpe: changed cus-start.el indent.el rmail.texi
@ -5528,10 +5530,10 @@ Sean O'Rourke: changed complete.el comint.el dabbrev.el find-func.el
Sean Sieger: changed emacs-lisp-intro.texi
Sean Whitton: wrote em-elecslash.el em-extpipe-tests.el em-extpipe.el
and changed vc-git.el project.el bindings.el server.el simple.el
and changed vc-git.el project.el bindings.el server.el simple.el subr.el
vc-dispatcher.el vc.el window.el eshell-tests.el eshell.texi subr-x.el
subr.el .dir-locals.el cl-macs.el eshell-tests-helpers.el files.texi
ftfont.c remember.el startup.el term.el INSTALL and 34 other files
.dir-locals.el cl-macs.el eshell-tests-helpers.el files.texi ftfont.c
remember.el startup.el term.el INSTALL and 34 other files
Sebastian Fieber: changed gnus-art.el mm-decode.el mm-view.el
@ -5750,8 +5752,8 @@ Stefan Kangas: wrote bookmark-tests.el cal-julian-tests.el
underline-tests.el uudecode-tests.el wallpaper.el warnings-tests.el
and co-wrote help-tests.el keymap-tests.el
and changed image-dired.el efaq.texi package.el cperl-mode.el checkdoc.el
subr.el help.el simple.el bookmark.el dired.el files.el dired-x.el
gnus.texi browse-url.el erc.el keymap.c image-mode.el ediff-util.el
subr.el help.el simple.el bookmark.el dired.el files.el gnus.texi
dired-x.el browse-url.el erc.el keymap.c image-mode.el ediff-util.el
speedbar.el woman.el eglot.el and 1801 other files
Stefan Merten: co-wrote rst.el
@ -5766,8 +5768,8 @@ Stefan Monnier: wrote bibtex-style.el bytecomp-tests.el
pcvs-util.el radix-tree.el regexp-opt-tests.el reveal.el smerge-mode.el
smie.el subword-tests.el track-changes.el vc-mtn.el
and co-wrote font-lock.el gitmerge.el pcvs.el visual-wrap.el
and changed subr.el simple.el cl-macs.el bytecomp.el keyboard.c lisp.h
files.el vc.el eval.c xdisp.c alloc.c buffer.c sh-script.el help-fns.el
and changed subr.el simple.el cl-macs.el bytecomp.el keyboard.c files.el
lisp.h vc.el eval.c xdisp.c alloc.c buffer.c sh-script.el help-fns.el
progmodes/compile.el tex-mode.el lread.c keymap.c package.el window.c
edebug.el and 1724 other files
@ -5803,10 +5805,10 @@ Stephen A. Wood: changed fortran.el
Stephen Berman: wrote todo-mode-tests.el
and co-wrote todo-mode.el visual-wrap.el
and changed wid-edit.el wdired.el todo-mode.texi wdired-tests.el
diary-lib.el dired.el dired-tests.el doc-view.el files.el info.el
minibuffer.el outline.el todo-test-1.todo widget.texi allout.el eww.el
find-dired.el frames.texi hl-line.el ibuffer.el menu-bar.el
and 71 other files
dabbrev-tests.el diary-lib.el dired.el dired-tests.el doc-view.el
files.el info.el minibuffer.el outline.el todo-test-1.todo widget.texi
allout.el dabbrev.el eww.el find-dired.el frames.texi hl-line.el
and 75 other files
Stephen C. Gilardi: changed configure.ac
@ -6135,7 +6137,7 @@ Timo Taipalus: changed display.texi image.c image.el
Timothee Denizou: changed tetris.el
Tim Ruffing: changed keyboard.c calc-prog.el emacs.service keyboard.h
macros.c dbus.el macros.h process.c subr.el term.c
macros.c dbus.el ftcrfont.c macros.h process.c subr.el term.c
Tim Van Holder: changed emacsclient.c Makefile.in configure.ac
progmodes/compile.el which-func.el
@ -6652,7 +6654,7 @@ Yuan Fu: changed treesit.el treesit.c c-ts-mode.el parsing.texi
treesit-tests.el progmodes/python.el modes.texi js.el indent.erts
treesit.h typescript-ts-mode.el c-ts-common.el css-mode.el
java-ts-mode.el rust-ts-mode.el print.c sh-script.el configure.ac
go-ts-mode.el csharp-mode.el gdb-mi.el and 78 other files
go-ts-mode.el csharp-mode.el gdb-mi.el and 79 other files
Yuanle Song: changed rng-xsd.el

View file

@ -15,41 +15,6 @@ in older Emacs versions.
You can narrow news to a specific version by calling 'view-emacs-news'
with a prefix argument or by typing 'C-u C-h C-n'.
* Installation Changes in Emacs 28.3
* Startup Changes in Emacs 28.3
* Changes in Emacs 28.3
* Editing Changes in Emacs 28.3
* Changes in Specialized Modes and Packages in Emacs 28.3
** 'native-comp-driver-options' on macOS.
The value of 'native-comp-driver-options' has been changed to contain
"-Wl,-w" to suppress warnings of the form
ld: warning: -undefined dynamic_lookup may not work with chained fixups
emitted during native compilation on macOS 12.6 with Xcode 14.
* New Modes and Packages in Emacs 28.3
* Incompatible Lisp Changes in Emacs 28.3
* Lisp Changes in Emacs 28.3
* Changes in Emacs 28.3 on Non-Free Operating Systems
* Installation Changes in Emacs 28.2

View file

@ -4361,6 +4361,14 @@ two buttons: "Yes" and "No".
*** The 'ns-popup-font-panel' command has been removed.
Use the general command 'M-x menu-set-font' instead.
*** 'native-comp-driver-options' on macOS.
The value of 'native-comp-driver-options' has been changed to contain
"-Wl,-w" to suppress warnings of the form
ld: warning: -undefined dynamic_lookup may not work with chained fixups
emitted during native compilation on macOS 12.6 with Xcode 14.
----------------------------------------------------------------------
This file is part of GNU Emacs.

View file

@ -199,6 +199,15 @@ see the variable 'url-request-extra-headers'.
* Changes in Emacs 30.1
+++
** New user option 'trusted-content' to allow potentially dangerous features.
This variable lists those files and directories whose content Emacs should
consider as sufficiently trusted to run any part of the code contained
therein even without any explicit user request.
For example, Flymake's backend for Emacs Lisp consults this option
and disables itself with an "untrusted content" warning if the file
is not listed.
---
** Emacs now supports Unicode Standard version 15.1.
@ -1859,6 +1868,13 @@ In the past they included a terminating newline in most cases but not all.
** Emacs Lisp mode
+++
*** 'elisp-flymake-byte-compile' is disabled for untrusted files.
For security reasons, this backend can be used only in those files
specified as trusted according to 'trusted-content' and emits an
"untrusted content" warning otherwise.
This fixes CVE-2024-53920.
---
*** ',@' now has 'prefix' syntax.
Previously, the '@' character, which normally has 'symbol' syntax,
@ -2024,6 +2040,7 @@ By default it retains the previous behavior: read the contents of
Gemfile and act accordingly. But you can also set it to t or nil to
skip checking the Gemfile.
---
*** New user option 'ruby-bracketed-args-indent'.
When it is set to nil, multiple consecutive open braces/brackets/parens
result in only one additional indentation level. Default is t.
@ -2371,6 +2388,7 @@ These hooks were named incorrectly, and so they never actually ran
when unloading the corresponding feature. Instead, you should use
hooks named after the feature name, like 'esh-mode-unload-hook'.
---
** User options 'eshell-process-wait-{seconds,milliseconds}' are now obsolete.
Instead, use 'eshell-process-wait-time', which supports floating-point
values.
@ -2627,6 +2645,7 @@ The new function 'haiku-notifications-notify' provides a subset of the
capabilities of the 'notifications-notify' function in a manner
analogous to 'w32-notification-notify'.
---
** New Haiku specific variable 'haiku-pass-control-tab-to-system'.
This sets whether Emacs should pass 'C-TAB' on to the system instead of
handling it, fixing a problem where window switching would not activate
@ -3073,6 +3092,7 @@ inside 'treesit-language-source-alist', so that calling
It may be useful, for example, for the purposes of bisecting a
treesitter grammar.
+++
** New buffer-local variable 'tabulated-list-groups'.
It controls display and separate sorting of groups of entries. By
default no grouping or sorting is done.
@ -3108,6 +3128,7 @@ this case, would mean repeating the object in the argument list.) When
replacing an object with a different one, passing both the new and old
objects is still necessary.
+++
** 'vtable-insert-object' can insert "before" or at an index.
The signature of 'vtable-insert-object' has changed and is now:

View file

@ -485,7 +485,22 @@ If the optional PAUSE is non-nil then pause at the end in any case."
(defun reb-change-syntax (&optional syntax)
"Change the syntax used by the RE Builder.
Optional argument SYNTAX must be specified if called non-interactively."
Interactively, prompt for SYNTAX.
Re-Builder currently understands three different forms of input, namely
`read', `string', and `rx' syntax:
1. The `string' syntax is the same one used by functions such as
`query-replace-regexp' (\\[query-replace-regexp]). There is no need to escape
backslashes and double quotes.
2. The `read' syntax is the syntax used when specifying the
regexp as a string in a Lisp program.
3. Finally, the `rx' syntax allows editing of symbolic regular
expressions supported by the package of the same name.
When called from Lisp, SYNTAX must be specified."
(interactive
(list (intern
(completing-read

View file

@ -713,6 +713,57 @@ buffer contents as untrusted.
This variable might be subject to change without notice.")
(put 'untrusted-content 'permanent-local t)
(defcustom trusted-content nil
"List of files and directories whose content we trust.
Be extra careful here since trusting means that Emacs might execute the
code contained within those files and directories without an explicit
request by the user.
One important case when this might happen is when `flymake-mode' is
enabled (for example, when it is added to a mode hook).
Each element of the list should be a string:
- If it ends in \"/\", it is considered as a directory name and means that
Emacs should trust all the files whose name has this directory as a prefix.
- else it is considered as a file name.
Use abbreviated file names. For example, an entry \"~/mycode/\" means
that Emacs will trust all the files in your directory \"mycode\".
This variable can also be set to `:all', in which case Emacs will trust
all files, which opens a gaping security hole."
:type '(choice (repeat :tag "List" file)
(const :tag "Trust everything (DANGEROUS!)" :all))
:version "30.1")
(put 'trusted-content 'risky-local-variable t)
(defun trusted-content-p ()
"Return non-nil if we trust the contents of the current buffer.
Here, \"trust\" means that we are willing to run code found inside of it.
See also `trusted-content'."
;; We compare with `buffer-file-truename' i.s.o `buffer-file-name'
;; to try and avoid marking as trusted a file that's merely accessed
;; via a symlink that happens to be inside a trusted dir.
(and (not untrusted-content)
(or
(eq trusted-content :all)
(and
buffer-file-truename
(with-demoted-errors "trusted-content-p: %S"
(let ((exists (file-exists-p buffer-file-truename)))
(or
;; We can't avoid trusting the user's init file.
(if (and exists user-init-file)
(file-equal-p buffer-file-truename user-init-file)
(equal buffer-file-truename user-init-file))
(let ((file (abbreviate-file-name buffer-file-truename))
(trusted nil))
(dolist (tf trusted-content)
(when (or (if exists (file-equal-p tf file) (equal tf file))
;; We don't use `file-in-directory-p' here, because
;; we want to err on the conservative side: "guilty
;; until proven innocent".
(and (string-suffix-p "/" tf)
(string-prefix-p tf file)))
(setq trusted t)))
trusted))))))))
;; This is an odd variable IMO.
;; You might wonder why it is needed, when we could just do:
;; (setq-local enable-local-variables nil)

View file

@ -580,6 +580,7 @@ Customized bindings may be defined in `ielm-map', which currently contains:
ielm-fontify-input-enable
(comint-fontify-input-mode))
(setq-local trusted-content :all)
(setq comint-prompt-regexp (concat "^" (regexp-quote ielm-prompt)))
(setq-local paragraph-separate "\\'")
(setq-local paragraph-start comint-prompt-regexp)

View file

@ -1410,7 +1410,7 @@ Default to the URL around or before point."
'browse-url-browser-kind 'external)
(defcustom browse-url-android-share nil
"If non-nil, share URLs instead of opening them.
"If non-nil, share URLs on Android systems instead of opening them.
When non-nil, `browse-url-default-android-browser' will try to
share the URL being browsed through programs such as mail clients
and instant messengers instead of opening it in a web browser."

View file

@ -65,10 +65,10 @@ checked and warned against."
The default suite of TLS checks in NSM is designed to follow the
most current security best practices. Under some situations,
such as attempting to connect to an email server that do not
such as attempting to connect to an email server that does not
follow these practices inside a school or corporate network, NSM
may produce warnings for such occasions. Setting this option to
a non-nil value, or a zero-argument function that returns non-nil
a non-nil value, or a zero-argument function that returns non-nil,
tells NSM to skip checking for potential TLS vulnerabilities when
connecting to hosts on a local network.

View file

@ -826,7 +826,9 @@ holding export options."
;; `dn' is presumed to be just the DIRNAME part, so generate
;; either `* DIRNAME: (FILENAME).' or `* FILENAME.', whichever
;; is shortest.
(t (format "* %s: (%s)." dn (or file dn))))))
(dn
(format "* %s: (%s)." dn (or file dn)))
(t (format "* (%s)." file)))))
(concat "@dircategory " dircat "\n"
"@direntry\n"
(let ((dirdesc

View file

@ -448,6 +448,35 @@ be used instead.
This is used to try and avoid the most egregious problems linked to the
use of `macroexpand-all' as a way to find the \"underlying raw code\".")
(defvar elisp--macroexpand-untrusted-warning t)
(defun elisp--safe-macroexpand-all (sexp)
(if (not (trusted-content-p))
;; FIXME: We should try and do better here, either using a notion
;; of "safe" macros, or with `bwrap', or ...
(progn
(when elisp--macroexpand-untrusted-warning
(setq-local elisp--macroexpand-untrusted-warning nil) ;Don't spam!
(let ((inhibit-message t)) ;Only log.
(message "Completion of local vars is disabled in %s (untrusted content)"
(buffer-name))))
sexp)
(let ((macroexpand-advice
(lambda (expander form &rest args)
(condition-case err
(apply expander form args)
(error
(message "Ignoring macroexpansion error: %S" err) form)))))
(unwind-protect
;; Silence any macro expansion errors when
;; attempting completion at point (bug#58148).
(let ((inhibit-message t)
(macroexp-inhibit-compiler-macros t)
(warning-minimum-log-level :emergency))
(advice-add 'macroexpand-1 :around macroexpand-advice)
(macroexpand-all sexp elisp--local-macroenv))
(advice-remove 'macroexpand-1 macroexpand-advice)))))
(defun elisp--local-variables ()
"Return a list of locally let-bound variables at point."
(save-excursion
@ -463,23 +492,8 @@ use of `macroexpand-all' as a way to find the \"underlying raw code\".")
(car (read-from-string
(concat txt "elisp--witness--lisp" closer)))
((invalid-read-syntax end-of-file) nil)))
(macroexpand-advice
(lambda (expander form &rest args)
(condition-case err
(apply expander form args)
(error
(message "Ignoring macroexpansion error: %S" err) form))))
(sexp
(unwind-protect
;; Silence any macro expansion errors when
;; attempting completion at point (bug#58148).
(let ((inhibit-message t)
(macroexp-inhibit-compiler-macros t)
(warning-minimum-log-level :emergency))
(advice-add 'macroexpand-1 :around macroexpand-advice)
(macroexpand-all sexp elisp--local-macroenv))
(advice-remove 'macroexpand-1 macroexpand-advice)))
(vars (elisp--local-variables-1 nil sexp)))
(vars (elisp--local-variables-1
nil (elisp--safe-macroexpand-all sexp))))
(delq nil
(mapcar (lambda (var)
(and (symbolp var)
@ -1330,7 +1344,8 @@ Semicolons start comments.
\\{lisp-interaction-mode-map}"
:abbrev-table nil
(setq-local lexical-binding t))
(setq-local lexical-binding t)
(setq-local trusted-content :all))
;;; Emacs Lisp Byte-Code mode
@ -2195,6 +2210,14 @@ directory of the buffer being compiled, and nothing else.")
"A Flymake backend for elisp byte compilation.
Spawn an Emacs process that byte-compiles a file representing the
current buffer state and calls REPORT-FN when done."
(unless (trusted-content-p)
;; FIXME: Use `bwrap' and friends to compile untrusted content.
;; FIXME: We emit a message *and* signal an error, because by default
;; Flymake doesn't display the warning it puts into "*flmake log*".
(message "Disabling elisp-flymake-byte-compile in %s (untrusted content)"
(buffer-name))
(error "Disabling elisp-flymake-byte-compile in %s (untrusted content)"
(buffer-name)))
(when elisp-flymake--byte-compile-process
(when (process-live-p elisp-flymake--byte-compile-process)
(kill-process elisp-flymake--byte-compile-process)))

View file

@ -2033,6 +2033,7 @@ function `read-from-minibuffer'."
(set-syntax-table emacs-lisp-mode-syntax-table)
(add-hook 'completion-at-point-functions
#'elisp-completion-at-point nil t)
(setq-local trusted-content :all)
(run-hooks 'eval-expression-minibuffer-setup-hook))
(read-from-minibuffer prompt initial-contents
read--expression-map t

View file

@ -1,6 +1,6 @@
;;; url-handlers.el --- file-name-handler stuff for URL loading -*- lexical-binding:t -*-
;; Copyright (C) 1996-1999, 2004-2024 Free Software Foundation, Inc.
;; Copyright (C) 1996-2024 Free Software Foundation, Inc.
;; Keywords: comm, data, processes, hypermedia
@ -124,13 +124,13 @@ that URL in a buffer."
(defcustom url-handler-regexp
"\\`\\(?:https?\\|ftp\\|file\\|nfs\\|ssh\\|scp\\|rsync\\|telnet\\)://"
"Regular expression for URLs handled by `url-handler-mode'.
When URL Handler mode is enabled, this regular expression is
added to `file-name-handler-alist'.
When URL Handler mode is enabled, this regular expression is added to
`file-name-handler-alist'.
Some valid URL protocols just do not make sense to visit
interactively (about, data, info, irc, mailto, etc.). This
regular expression avoids conflicts with local files that look
like URLs (Gnus is particularly bad at this)."
Some valid URL protocols just do not make sense to visit interactively
(data, info, irc, mailto, etc.). This regular expression avoids
conflicts with local files that look like URLs (Gnus is particularly bad
at this)."
:group 'url
:type 'regexp
:version "25.1"

View file

@ -4613,7 +4613,7 @@ network_interface_info (Lisp_Object ifname)
DEFUN ("network-interface-list", Fnetwork_interface_list,
Snetwork_interface_list, 0, 2, 0,
doc: /* Return an alist of all network interfaces and their network address.
Each element is cons of the form (IFNAME . IP) where IFNAME is a
Each element is a cons of the form (IFNAME . IP) where IFNAME is a
string containing the interface name, and IP is the network address in
internal format; see the description of ADDRESS in
`make-network-process'. The interface name is not guaranteed to be
@ -4664,7 +4664,8 @@ where ADDR is the layer 3 address, BCAST is the layer 3 broadcast address,
NETMASK is the layer 3 network mask, HWADDR is the layer 2 address, and
FLAGS is the current flags of the interface.
Data that is unavailable is returned as nil. */)
Data that is unavailable is returned as nil. Only returns IPv4 layer 3
addresses, for IPv6 use `network-interface-list'. */)
(Lisp_Object ifname)
{
#if ((defined HAVE_NET_IF_H \