Eshel Yaron [Mon, 24 Mar 2025 10:14:10 +0000 (11:14 +0100)]
Drop cl-font-lock.el
Stephen Gildea [Sun, 23 Mar 2025 17:37:21 +0000 (10:37 -0700)]
; Move time-stamp release info from symbol-releases.eld to NEWS
Update the appropriate historical NEWS files with time-stamp feature
releases. Suggested by Stefan Monnier. All dates are from my notes.
* etc/symbol-releases.eld: Remove time-stamp,
reverting commit
69210eb84e of 17 March.
* etc/NEWS.19:
* etc/NEWS.20: Add 'time-stamp' feature paragraphs that
should have been written then.
* etc/NEWS.21: Add missing quotes, so symbol names can be identified.
(cherry picked from commit
9e005e9da06f71441e643f7ecbe309e35f68680a)
Andrea Corallo [Wed, 11 Dec 2024 23:06:43 +0000 (00:06 +0100)]
Fix a nativecomp type propagation bug (bug#74771)
* lisp/emacs-lisp/comp.el (comp--add-cond-cstrs): Don't emit negated
cstr.
* test/src/comp-tests.el (comp-tests-type-spec-tests): Add a test.
(cherry picked from commit
d565a6747a2bb3c6699a95e60e5f522f80a1ca0a)
Stefan Kangas [Sun, 23 Mar 2025 16:22:51 +0000 (17:22 +0100)]
checkdoc: Delete redundant check for wide docstrings
With Emacs 28.1, wide docstrings are now flagged by the byte-compiler.
The logic in the byte-compiler for catching these issues is complex
and continuously evolving, particularly to avoid incorrectly flagging
`substitute-command-keys` substitutions. Unfortunately, the checkdoc
implementation incorrectly flags correct docstrings as overly wide.
Rather than duplicating the byte-compiler logic in checkdoc, which
would introduce unnecessary maintenance overhead, we acknowledge that
this check is now redundant and remove it. Users utilizing the
byte-compiler, whether manually or through `flymake`, will continue to
be warned about this issue.
* lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine):
Remove check for overly wide docstrings; duplicates byte-compiler
logic.
(cherry picked from commit
408ad273eeadf72dea11b89ea2a44f36ea0e2295)
Po Lu [Sun, 23 Mar 2025 11:43:13 +0000 (19:43 +0800)]
Patch bug#77128
* src/pgtkterm.c (pgtk_flash): Destroy `cr_surface_visible_bell'
if still present. (bug#77128)
(cherry picked from commit
7d14e35498209e45290f5c1297ded6d7175bf1ea)
Stefan Kangas [Sun, 23 Mar 2025 00:30:37 +0000 (01:30 +0100)]
Improve documentation of cl-defstruct
* doc/misc/cl.texi (Structures): Organize more logically, slightly
expand, and add more examples.
(cherry picked from commit
81404bf3c2695dbd5a78e40ea8dd0547c1cca30c)
Eli Zaretskii [Sun, 23 Mar 2025 11:17:06 +0000 (13:17 +0200)]
Avoid rare crashes due to "C-g C-g" on TTY frames
* src/term.c (tty_send_additional_strings): Don't use SBYTES, as
this function could be called in the middle of GC. (Bug#77205)
(cherry picked from commit
939a2a3c2dd60503c6ebef839b5f05f962d405ce)
Eli Zaretskii [Sun, 23 Mar 2025 09:35:25 +0000 (11:35 +0200)]
; * src/dispnew.c (check_window_matrix_pointers): Fix last change.
(cherry picked from commit
467aba67db407e930fc5de6d4a4ae0cd6fc106df)
Eli Zaretskii [Sun, 23 Mar 2025 09:30:17 +0000 (11:30 +0200)]
Avoid rare segfaults in 'check_matrix_pointers'
* src/dispnew.c (check_window_matrix_pointers): No-op if the
window's frame not ready yet. (Bug#77200)
(cherry picked from commit
e20e8538610ed8b78e0b9f9cc3121c1102a8aaf0)
Stephen Gildea [Sun, 23 Mar 2025 00:07:05 +0000 (17:07 -0700)]
Consistent wording in top-level headers in NEWS.19
* etc/NEWS.19: Put the word "Emacs" in front of each version number.
This change lets 'help-fns--first-release' parse the headers, which
produces more accurate "probably introduced at" versions from
'describe-function' and 'describe-variable'.
(cherry picked from commit
aa12cebaa684d7b3ea7e131666d33bcc71b45625)
Stefan Kangas [Sat, 22 Mar 2025 21:41:53 +0000 (22:41 +0100)]
Reduce code duplication in ns_set_appearance
* src/nsterm.h (ns_set_appearance_1): Declare.
* src/nsterm.m (ns_set_appearance_1): Break out new function...
(ns_set_appearance): ...here.
* src/nsfns.m (Fx_create_frame): Use above new function.
(cherry picked from commit
92b373318d2401f98f0ad5590ef799904c96506f)
shipmints [Sun, 16 Feb 2025 19:30:45 +0000 (14:30 -0500)]
Ensure .dir-locals-2.el behavior as documented (bug#75890)
* lisp/files.el
(dir-locals--all-files): New &optional 'base-el-only' argument.
(dir-locals--base-file): New function.
(dir-locals-find-file): 'locate-dominating-file' only for the base
.dir-locals.el.
* test/lisp/files-tests.el
(files-test-dir-locals-2-solo): New test.
* test/lisp/files-resources/dir-locals-2-solo: New test support.
(files-test-dir-locals-2-paired): New test.
* test/lisp/files-resources/dir-locals-and-2: New test support.
(cherry picked from commit
81c21d89ede8dfa664b7a3700acd7bf4c9fa54aa)
Eli Zaretskii [Sat, 22 Mar 2025 19:32:16 +0000 (21:32 +0200)]
Avoid rare segfaults due to crazy creation of new child frames
* src/dispnew.c (combine_updates, combine_updates_for_frame): Skip
frames and child frames that were not yet completely made.
(Bug#77046)
(cherry picked from commit
62368f93a5d2cf1b961626c705c032e15b1d5f43)
Sora Takai [Wed, 19 Mar 2025 14:50:38 +0000 (23:50 +0900)]
Make isearch lazy-highlights non-sticky at both ends (bug#77121)
Copyright-paperwork-exempt: yes
(cherry picked from commit
893c40c63e8e30eae6be577670612aa21768d312)
Paul Eggert [Sat, 22 Mar 2025 18:19:41 +0000 (11:19 -0700)]
Remove ctags program
Remove our old ctags and suggest Universal Ctags instead.
This fixes a FIXME in lib-src/Makefile.in and speeds up compilation
quite a bit on my older CPU when I compile with --enable-gcc-warnings.
It also lessens installation and runtime footprint. (Bug#76322)
* .gitignore: Remove lib-src/ctags.
* admin/authors.el (authors-renamed-files-alist): Remove ctags.1.
* admin/check-man-pages: ctags.1 is no longer a special case.
* admin/quick-install-emacs (PUBLIC_LIBSRC_BINARIES): Remove ctags.
* cross/Makefile.in (LIBSRC_BINARIES): Remove lib-src/ctags.
* doc/man/ctags.1, lib-src/ctags.c: Remove.
* java/Makefile.in (CROSS_LIBSRC_BINS): Remove ctags.
* lib-src/Makefile.in (INSTALLABLES): Remove ctags${EXEEXT}.
(ctags${EXEEXT}): Remove.
* lib-src/etags.c (CTAGS): Remove. All uses replaced by ...
(ctags): ... this new static var.
(STDIN): Remove macro. All uses replaced by new STDIN_OPTION constant.
(CTAGS_OPTION, STDIN_OPTION): New contants.
(longopts): New --ctags option.
(ctags_default_C_help): New constant,
to override default_C_help at runtime.
(default_C_help): Now always the etags version.
(C_LANG_NAMES_INDEX): New macro.
(print_language_names): Do not assume etags.
(PROGRAM_NAME): Remove. All uses removed.
(print_help): Document --ctags if PRINT_UNDOCUMENTED_OPTIONS_HELP.
(main): Support new --ctags option, and support all [ce]tags options.
* test/manual/etags/Makefile (CTAGS_PROG):
Now etags --ctags, since there is no longer a ctags.
(cherry picked from commit
25d757535884da71ace29fd80b8b24dd3a8f9017)
Michael Albinus [Sat, 22 Mar 2025 16:49:53 +0000 (17:49 +0100)]
; Another Tramp fix
* lisp/net/tramp.el (tramp-skeleton-file-truename):
Remove possible trailing slash.
(cherry picked from commit
2658f4eab96aaad7f52245c2422bbfa51db9b207)
Eli Zaretskii [Sat, 22 Mar 2025 16:45:38 +0000 (18:45 +0200)]
Fix usage of string data pointers in xfaces.c
* src/xfaces.c (tty_defined_color): Don't use SSDATA pointers
across calls to Lisp. (Bug#77046)
(cherry picked from commit
9816c61c4876ac2acdc6d9efb73c4270846b5555)
Eshel Yaron [Sun, 23 Mar 2025 19:25:32 +0000 (20:25 +0100)]
Eli Zaretskii [Sat, 22 Mar 2025 12:14:22 +0000 (14:14 +0200)]
; Fix last change (bug#76980)
* lisp/window.el (window--state-normalize-buffer-name): Doc fix.
* doc/lispref/windows.texi (Window Configurations): Add indexing.
(cherry picked from commit
42e116bb1095f47cd0d57bbb6ee7b73d2d9f506e)
shipmints [Wed, 12 Mar 2025 16:14:50 +0000 (12:14 -0400)]
'window-state-normalize-buffer-name' option for `uniquify' buffers
If 'window-state-normalize-buffer-name' is non-nil, 'window-state-get'
will normalize stored buffer names, making them easier to restore for
users that use 'uniquify' buffer naming.
* doc/lispref/windows.texi (Window Configurations): Document
'window-state-normalize-buffer-name'.
* lisp/window.el (window-state-normalize-buffer-name): New defvar.
(window--state-normalize-buffer-name): New function.
(window--state-get-1): Call 'window--state-normalize-buffer-name'
rather than 'buffer-name'.
* etc/NEWS: Announce 'window-state-normalize-buffer-name'.
(Bug#76980)
(cherry picked from commit
4266514dc88345d5c1bc1ab6dd8576dd47caf57f)
Eshel Yaron [Sun, 23 Mar 2025 19:25:06 +0000 (20:25 +0100)]
Stefan Kangas [Sat, 22 Mar 2025 11:47:06 +0000 (12:47 +0100)]
Delete now unused constants in nsterm.h
* src/nsterm.h (NS_DUMPGLYPH_NORMAL, NS_DUMPGLYPH_CURSOR)
(NS_DUMPGLYPH_FOREGROUND, NS_DUMPGLYPH_MOUSEFACE): Delete now unused
constants.
(cherry picked from commit
20687ab61715889cb0670c9351983154e6620c1b)
Stefan Kangas [Sat, 22 Mar 2025 11:33:47 +0000 (12:33 +0100)]
; Clean up comments in nsterm.h
(cherry picked from commit
69013ed73d8fd5e8827335c3e1be47dc652905a6)
Eli Zaretskii [Sat, 22 Mar 2025 10:55:43 +0000 (12:55 +0200)]
; Fix recent documentation changes
* doc/lispref/frames.texi (Frames, Visibility of Frames):
* etc/NEWS: Fix wording, punctuation, and markup.
(cherry picked from commit
d9386cb546571121899a6604badba651c2fa46da)
Eli Zaretskii [Sat, 22 Mar 2025 10:39:46 +0000 (12:39 +0200)]
Improve 'C-u C-x =' for ligatures of ASCII characters
* lisp/composite.el (composition-find-pos-glyph): New function.
* lisp/descr-text.el (describe-char): Use it to get the font glyph
code of "trivial" compositions.
(describe-char-display): Accept an additional optional argument
and use it as the font glyph code for the character.
(cherry picked from commit
098fe4b73b62033b8930760e7fff0a23c271a1bb)
Michael Albinus [Sat, 22 Mar 2025 08:52:22 +0000 (09:52 +0100)]
Tramp: Improve handling of cyclic symlinks
* lisp/net/tramp-sh.el (tramp-sh-handle-file-ownership-preserved-p):
Add FIXME.
* lisp/net/tramp.el (tramp-skeleton-file-exists-p)
(tramp-handle-file-directory-p): Protect against cyclic symlinks.
* test/lisp/net/tramp-tests.el (tramp-test18-file-attributes)
(tramp-test21-file-links): Adapt tests.
(cherry picked from commit
172e35afce430594fdf2eb9c404efc398098d621)
Eshel Yaron [Sun, 23 Mar 2025 19:24:09 +0000 (20:24 +0100)]
Martin Rudalics [Sat, 22 Mar 2025 08:34:53 +0000 (09:34 +0100)]
Fix and document frame parameters for text terminals and child frames
* src/frame.c (Fmake_frame_invisible): In doc-string describe
effect on text terminals. Set FRAME correctly when called with
nil value. Make frame invisible before calling mru_rooted_frame
or next_frame.
(Ficonify_frame): Make it work for child frames on text
terminals
(Fmodify_frame_parameters): Make value 'icon' for 'visibility'
work for child frames.
* src/dispnew.c (frame_ancestors_visible_p): New function.
(frames_with_root): If VISIBLE_ONLY is non-nil, return only
frames whose ancestors are all visible to avoid that redisplay
draws visibly orphaned child frames.
* doc/lispref/frames.texi (Frames): Move descriptions of top
frame and 'tty-top-frame' here.
(Frame Layout): Mention that on text terminals the outer border
can be emulated by setting the 'undecorated' frame parameter.
(Frame Position, Frame Parameters, Window Frame Parameters)
(Position Parameters, Size Parameters): Rewrite sections dealing
with the handling of frame parameters in text terminals.
(Layout Parameters): Move description of 'undecorated' parameter
here. Clarify semantics of 'menu-bar-lines' parameter.
(Frame Interaction Parameters): Move description of 'visibility'
parameter here. Mention which parameters are not implemented on
text terminals.
(Mouse Dragging Parameters): Describe how these work on text
terminals.
(Visibility of Frames): Rewrite section.
(Raising and Lowering): Describe for text terminals.
(Child Frames): Fix description of 'iconify-child-frame' option.
(cherry picked from commit
1ee2a921ad528e18cc68c594f4f2ffcb0599cfe7)
Stefan Kangas [Sat, 22 Mar 2025 08:05:08 +0000 (09:05 +0100)]
; Add index entry "code completion" to user manual
* doc/emacs/programs.texi (Symbol Completion): Improve indexing by
adding "code completion". This is the name that this feature goes by
elsewhere, so users are likely to look for it.
(cherry picked from commit
dc80a8f0509e37cc92f4f2f3a18c6732b163ffd4)
john muhl [Fri, 21 Mar 2025 19:10:36 +0000 (14:10 -0500)]
; Update version comment in 'lua-ts-mode'
* lisp/progmodes/lua-ts-mode.el: Update comment for version
0.3.0 of tree-sitter-lua grammar. (Bug#77158)
(cherry picked from commit
cf7fdd374ac96ddd53a026bda2aa2b7211e5ee70)
Eli Zaretskii [Sat, 22 Mar 2025 07:04:48 +0000 (09:04 +0200)]
; * doc/emacs/programs.texi (Program Modes): Add info about Eglot.
(cherry picked from commit
0d9b14ed05701104d251495cf80fe47627a3b0ee)
Eshel Yaron [Sun, 23 Mar 2025 19:23:28 +0000 (20:23 +0100)]
Stefan Kangas [Sat, 22 Mar 2025 06:01:14 +0000 (07:01 +0100)]
Make 'eieio-version' obsolete
EIEIO used to be developed externally as part of CEDET, but that is no
longer the case. It now has the same version as Emacs itself.
https://sourceforge.net/p/cedet/git/ci/
8aa920380f8178ed2514f06f13c403d80db16752/
* lisp/emacs-lisp/eieio.el: Change "Version" header to "Old-Version".
(eieio-version): Make both the variable and the function obsolete in
favor of 'emacs-version'.
(cherry picked from commit
580c050f6dd41eea718f9414efeabcae43cdb625)
Eshel Yaron [Sun, 23 Mar 2025 19:23:13 +0000 (20:23 +0100)]
Daniel Colascione [Sat, 22 Mar 2025 01:09:19 +0000 (21:09 -0400)]
xref: error -> user-error: reduce debug-on-error annoyance
* lisp/progmodes/xref.el (xref--next-error-function): Use user-error
instead of error.
(cherry picked from commit
2fcf6b40869f085b32876206179bf1dfe2dc2c93)
Daniel Colascione [Fri, 21 Mar 2025 23:46:08 +0000 (19:46 -0400)]
Adapt ediff to nonstandard layouts
Make ediff cope with having some of its windows (especially the control
window) not shown by a custom ediff-window-setup-function.
Modernize relevant adjacent code. After this change, one can write a
custom ediff-window-setup-function that doesn't show the control window.
* doc/misc/ediff.texi (Notes on Heavy-duty Customization): Refine
language to explain that the window setup function doesn't have to show
all windows.
* lisp/vc/ediff-util.el (ediff-select-control-window-on-setup):
New variable.
(ediff-setup, ediff-recenter, ediff-recenter-one-window)
(ediff-recenter-ancestor, ediff-toggle-read-only)
(ediff-operate-on-windows, ediff-jump-to-difference-at-point)
(ediff-default-suspend-function)
(ediff-clone-buffer-for-region-comparison)
(ediff-clone-buffer-for-window-comparison): Modernize control flow;
select only windows that exist.
* lisp/vc/ediff-wind.el (ediff-with-live-window): New convenience macro.
(ediff-window-setup-function): Explain relaxed contract.
(cherry picked from commit
e5ee1d2a74c6a0989c863c3c6c06eba31efaecb3)
Eshel Yaron [Sun, 23 Mar 2025 19:22:08 +0000 (20:22 +0100)]
Eshel Yaron [Sun, 23 Mar 2025 19:21:53 +0000 (20:21 +0100)]
Eli Zaretskii [Fri, 21 Mar 2025 16:20:21 +0000 (18:20 +0200)]
Avoid infinite loop with images under 'display-line-numbers-mode'
* src/xdisp.c (move_it_in_display_line_to, display_line): When
considering the first glyph on a glyph row, take into
consideration the glyphs produced for line-number display.
(Bug#77065)
(cherry picked from commit
df6669578001e49f44714301df71870654a2de33)
Eli Zaretskii [Thu, 20 Mar 2025 20:33:32 +0000 (22:33 +0200)]
Leave buffer with input-method help unmodified
* lisp/international/quail.el (quail-help): Leave "*Help*"
unmodified. (Bug#77139)
(cherry picked from commit
bbad5be9f05aee3eb38b81c65c4a3a286271ce55)
Stefan Kangas [Thu, 20 Mar 2025 18:21:08 +0000 (19:21 +0100)]
Make compilation-filter-hook into a defcustom
* lisp/progmodes/compile.el (compilation-filter-hook): Make variable
into a defcustom.
(cherry picked from commit
40a17ce3b238ea0223d1b3e1c72f48352e1ca63d)
Eshel Yaron [Sun, 23 Mar 2025 18:15:23 +0000 (19:15 +0100)]
john muhl [Tue, 18 Mar 2025 14:12:39 +0000 (09:12 -0500)]
; Fix 'lua-ts-mode' tests (Bug#77102)
* test/lisp/progmodes/lua-ts-mode-resources/indent.erts:
Remove unintended use of tabs and make indentation settings
buffer local.
(cherry picked from commit
60e9195984d746cbbb5939918ed5ddc27377c0e6)
Eshel Yaron [Sun, 23 Mar 2025 18:15:14 +0000 (19:15 +0100)]
Eshel Yaron [Sun, 23 Mar 2025 18:15:08 +0000 (19:15 +0100)]
David Ponce [Sun, 16 Mar 2025 10:31:21 +0000 (11:31 +0100)]
Fix `string-pixel-width' with alternate text properties
Fix possible wrong result of `string-pixel-width' with alternate
and default properties. Create new regression tests.
* lisp/emacs-lisp/subr-x.el (string-pixel-width): Like for
`face-remapping-alist', use in work buffer the value of
`char-property-alias-alist' and `default-text-properties'
local to the passed buffer, to correctly compute pixel width.
(Bug#77042)
* test/lisp/misc-tests.el: Add tests for `string-pixel-width'.
(cherry picked from commit
b1db48c0fcd438c903826fe0dba3bc28ffa73cc4)
Vincenzo Pupillo [Mon, 17 Mar 2025 21:35:23 +0000 (22:35 +0100)]
MariaDB and Mysql handle escaped aphostrophes in the same way
* lisp/progmodes/sql.el (sql-mode): MariaDB and Mysql both
handle escaped apostrophes in the same way. (Bug#77088)
(cherry picked from commit
cace07f27dc31091a606a70ae8b957cd5dd7da43)
Jindrich Makovicka [Wed, 19 Mar 2025 09:03:09 +0000 (10:03 +0100)]
Fix OSX build without pdumper
* Makefile.in (install-arch-dep) [ns_self_contained]: Add missing
DUMPING = pdumper check.
Copyright-paperwork-exempt: yes
(cherry picked from commit
86c354dd0d891144bf5a6821949de7be3df0ffa2)
Eli Zaretskii [Thu, 20 Mar 2025 08:41:26 +0000 (10:41 +0200)]
; Add indexing for Eglot in user manual
* doc/emacs/programs.texi (Imenu, Programming Language Doc)
(Symbol Completion):
* doc/emacs/maintaining.texi (Xref): Index Eglot-related
functionalities.
(cherry picked from commit
2d12754ee20deb789bd5444f604acda6bb05bbf9)
Stefan Kangas [Thu, 20 Mar 2025 01:05:55 +0000 (02:05 +0100)]
; Change some instances of cl to cl-lib in docs
* doc/misc/cl.texi (Overview):
* doc/misc/eieio.texi (CLOS compatibility, Wish List): Change 'cl' to
'cl-lib' where appropriate.
(cherry picked from commit
a30b9b640b46c23f0a6db7b8fbe329d93e035db6)
Stefan Kangas [Wed, 19 Mar 2025 20:27:29 +0000 (21:27 +0100)]
; Improve introduction to use-package manual
* doc/misc/use-package.texi (Top): Improve introduction.
(cherry picked from commit
b681d62436f577ddfbfbac50885d48cde320632e)
Stefan Kangas [Wed, 19 Mar 2025 20:27:38 +0000 (21:27 +0100)]
; Add cross-references to push and pop docstrings
* lisp/subr.el (push, pop): Add cross-references to Info manual.
(cherry picked from commit
f1acefd86f8d88d26455fec43961d3060451b6f0)
Eli Zaretskii [Thu, 20 Mar 2025 09:03:32 +0000 (11:03 +0200)]
Improve 'gui-get-selection' on MS-Windows
* lisp/term/w32-win.el (w32--get-selection): Allow UTF8_STRING and
TEXT data types as well, since w32select.c handles that correctly.
(cherry picked from commit
e53b90a5ce21feeb0290fbe035e9a2d6aae34bc3)
Stephen Gildea [Thu, 20 Mar 2025 04:03:54 +0000 (21:03 -0700)]
; * etc/symbol-releases.eld: Add time-stamp, from my notes
(cherry picked from commit
a7d2aa7e0c1a0984d6d1a3563b407efda123d6ae)
Po Lu [Thu, 20 Mar 2025 02:21:03 +0000 (10:21 +0800)]
; * java/org/gnu/emacs/EmacsInputConnection.java: Fix commentary typo.
(cherry picked from commit
f38f4588d7bb5dee9f6a5adc1b29bd457c70c7b2)
Stefan Kangas [Thu, 20 Mar 2025 01:38:58 +0000 (02:38 +0100)]
Recenter calendar-chinese-year-cache on 2028
* lisp/calendar/cal-china.el (calendar-chinese-year-cache): Recenter
on 2028.
(cherry picked from commit
3488ae7c5295bb2385d65f1e7e470bd727f6b408)
Stefan Kangas [Wed, 19 Mar 2025 20:24:56 +0000 (21:24 +0100)]
; Improve documentation of incf and decf
* doc/lispref/variables.texi (Setting Generalized Variables): Mention
incf and decf.
* lisp/emacs-lisp/gv.el (incf, decf): Add references to Info manual
documentation on generalized variables.
(cherry picked from commit
03053baebee8a89f1b1d470a6173b9f1e80f0b39)
Stefan Kangas [Wed, 19 Mar 2025 20:02:30 +0000 (21:02 +0100)]
; Delete duplicate variable definition
* lisp/doc-view.el (doc-view--current-cache-dir): Delete duplicate
variable definition.
(cherry picked from commit
1fca171addd830fab78fb7cc1c73c43cd7d7a2e9)
Stefan Monnier [Wed, 19 Mar 2025 19:47:11 +0000 (15:47 -0400)]
indent.erts (Code): Don't modify the global state
* test/lisp/progmodes/java-ts-mode-resources/indent.erts (Code):
Use `setq-local` and correspondingly move the remaining
assignment after activating the major mode.
(cherry picked from commit
5432331a62522c096246ef995a5b41dc067d25a9)
Eshel Yaron [Sun, 23 Mar 2025 18:08:29 +0000 (19:08 +0100)]
Juri Linkov [Wed, 19 Mar 2025 19:09:10 +0000 (21:09 +0200)]
* lisp/files.el (save-some-buffers-action-alist): Fix 'view-mode'.
Use 'view-mode-enter' instead of 'view-buffer' to ignore the 'special'
mode-class that prevents some modes from binding 'q' to 'exit-action'
that should call 'exit-recursive-edit' (bug#76745).
(cherry picked from commit
7016d1c8e3c16e8bfb61ce8ef96d85490a00c2eb)
Philip Kaludercic [Wed, 19 Mar 2025 17:33:01 +0000 (18:33 +0100)]
; Avoid scraping non-readable files for maintainers
* lisp/mail/emacsbug.el (submit-emacs-patch): Check if a file
mentioned in a patch can be opened. (Bug#77083)
(cherry picked from commit
a77f10305c9ad0354987b09ec9a967021bb47d93)
Eshel Yaron [Thu, 20 Mar 2025 10:52:43 +0000 (12:52 +0200)]
Michael Albinus [Wed, 19 Mar 2025 13:40:54 +0000 (14:40 +0100)]
; Tramp: fixes resulting from test campaign
* lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file):
Handle symlinks.
* lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file):
STDERR is not implemented.
* lisp/net/tramp.el (tramp-skeleton-process-file): Raise a warning
if STDERR is not implemented.
(tramp-handle-shell-command):
Respect `async-shell-command-display-buffer'.
* test/lisp/net/tramp-tests.el (tramp-test28-process-file): Adapt test.
(cherry picked from commit
f6632114fe661930c45b5e9c1bf66644be095ff9)
Martin Rudalics [Wed, 19 Mar 2025 08:36:42 +0000 (09:36 +0100)]
On tty frames restrict number of menu bar lines (Bug#77015)
* src/frame.c (set_menu_bar_lines): Make sure tty frames get
only 0 or 1 menu bar line (Bug#77015).
(cherry picked from commit
fa1cfcada0939e33d69696df6448b75b33ab656d)
Stefan Kangas [Tue, 18 Mar 2025 22:11:01 +0000 (23:11 +0100)]
; Minor keymap cleanup in dired.el
* lisp/dired.el:
(dired-context-menu): Prefer keymap-set.
(dired-click-to-select-map): Move key definition inside defvar-keymap.
(cherry picked from commit
ec9290eb80253cc97990788aab588a15cb35b664)
Stefan Monnier [Tue, 18 Mar 2025 12:42:42 +0000 (08:42 -0400)]
lisp/emacs-lisp/smie.el (smie-config-show-indent): Tweak message
(cherry picked from commit
0e1f81b9bc469c7b115d1abcd12c20aae4160dd7)
Martin Rudalics [Tue, 18 Mar 2025 08:17:52 +0000 (09:17 +0100)]
Ensure redisplay after re-parenting a tty child frame (Bug#77079)
* src/frame.c (store_frame_param): When re-parenting a tty child
frame, mark it's old and new root frames as garbaged so redisplay
will reflect the change immediately (Bug#77079).
(cherry picked from commit
739d18dc41234824f4f01bfaa2313510e2df14a7)
Po Lu [Tue, 18 Mar 2025 01:41:56 +0000 (09:41 +0800)]
Fix generation of mouse position lists on the tool and tab bars
* src/keyboard.c (make_lispy_tty_position): Return whether an
internal border was hit.
(make_lispy_position): Only skip standard window and frame
detection process if so, as there are other scenarios where POSN
is nil but WINDOW_OR_FRAME is none the less expected to be
provided by the conditionals skipped.
(cherry picked from commit
5a4b9ca7364f225eff9b134ff06a49c46179366e)
Stefan Kangas [Mon, 17 Mar 2025 23:33:32 +0000 (00:33 +0100)]
; Use defvar-keymap in define-derived-mode
* lisp/emacs-lisp/derived.el (define-derived-mode): Use defvar-keymap.
This change is for documentation purposes on macro expansion.
(cherry picked from commit
5f4c9053538fc1bf472c1be9a203db5c6178ea02)
Stefan Kangas [Mon, 17 Mar 2025 17:45:20 +0000 (18:45 +0100)]
Use 'help-key' function in more places
* lisp/dired-aux.el (dired-query):
* lisp/emacs-lisp/helper.el (Helper-help-map):
* lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Use 'help-key'.
* lisp/net/tramp-cmds.el (tramp-rename-files):
* lisp/which-key.el (which-key--next-page-hint): Prefer 'help-key'
when available.
* lisp/help.el (help-key): Simplify.
* etc/symbol-releases.eld: Add 'help-key'.
(cherry picked from commit
69210eb84e7c3074c339b8aa2f380f66a80ae61b)
Stefan Kangas [Sun, 16 Mar 2025 21:26:09 +0000 (22:26 +0100)]
; * lisp/follow.el (follow-mode-prefix-key): Improve.
(cherry picked from commit
49e019fbbc61e22167f0a15a3b1983d98bce7be6)
john muhl [Mon, 17 Mar 2025 14:04:33 +0000 (09:04 -0500)]
; Fix 'java-ts-mode' tests (Bug#77070)
* test/lisp/progmodes/java-ts-mode-resources/indent.erts:
Set 'indent-tabs-mode' later.
(cherry picked from commit
be2b5a7148887879e0127994c9d779a943e3df2b)
Eli Zaretskii [Mon, 17 Mar 2025 12:19:34 +0000 (14:19 +0200)]
; * src/dispnew.c (adjust_glyph_matrix): Restore lost comment.
(cherry picked from commit
4cfeb3697c242b5d669a102bd43fa51f776f987e)
Eli Zaretskii [Mon, 17 Mar 2025 12:16:45 +0000 (14:16 +0200)]
; * src/dispnew.c (adjust_glyph_matrix): Add comment (bug#77039).
(cherry picked from commit
4008e664a8dc6d92dda0ba0a5b0c717ab3f72e5c)
Eshel Yaron [Thu, 20 Mar 2025 10:48:14 +0000 (12:48 +0200)]
Eli Zaretskii [Mon, 17 Mar 2025 12:12:13 +0000 (14:12 +0200)]
; * etc/NEWS: Fix last change.
(cherry picked from commit
fd88c5232098a323f6334b6e1f7e2dacdc447a8e)
Mauro Aranda [Mon, 17 Mar 2025 09:55:07 +0000 (06:55 -0300)]
Make marking conflicted files as resolved upon saving opt-out
This fixes Bug#3860.
* lisp/vc/vc.el (vc-resolve-conflicts): New user option.
* lisp/vc/vc-bzr.el (vc-bzr-resolve-conflicts): New user option.
(vc-bzr-find-file-hook): Use it.
* lisp/vc/vc-hg.el (vc-hg-resolve-conflicts): New user option.
(vc-hg-find-file-hook): Use it.
* lisp/vc/vc-svn.el (vc-svn-resolve-conflicts): New user option.
(vc-svn-find-file-hook): Use it.
* lisp/vc/vc-git.el (vc-git-resolve-conflicts): Support
'default' as an option. Adjust docstring and version.
(vc-git-find-file-hook): Respect vc-resolve-conflicts.
* etc/NEWS: Announce the new options.
(cherry picked from commit
acb96a5ca8ac3bef80ca2ff1496cacb3ab57c87a)
Martin Rudalics [Mon, 17 Mar 2025 08:50:19 +0000 (09:50 +0100)]
Implement dragging and resizing of tty child frames
* lisp/faces.el (face-spec-recalc): Don't set
scroll-bar-foreground and scroll-bar-background parameters on
ttys.
* lisp/mouse.el (mouse-drag-frame-resize)
(mouse-drag-frame-move): On ttys call
'mouse-position-in-root-frame' to get position of child frame to
resize or drag.
* lisp/xt-mouse.el (xterm-mouse-event): Handle events on
child frame decorations as if they happened on the internal border
to find out whether a user wants to drag or resize a child frame.
* src/frame.c (frame_internal_border_part): Define for ttys too.
(Fmouse_position_in_root_frame): New function.
* src/frame.h (internal_border_part): Define for ttys too.
* src/keyboard.c (internal_border_parts): Define for ttys too.
(frame_border_side): New enum.
(make_lispy_position): Handle events on tty child frames.
(Fposn_at_x_y): Accept -1 for Y so we can handle a position on
the top decoration of a tty child frame.
* src/term.c (tty_frame_at): Handle case where X and Y denote a
position on a tty child frame's decoration.
* src/window.c (Fwindow_at): Handle case where X and Y denote a
position on the decoration of a tty child frame which we pretend
as belonging to that child frame (and not to its root).
(cherry picked from commit
86be9431ae88126387ed8402cb4953963ebba6f8)
Martin Rudalics [Mon, 17 Mar 2025 08:36:59 +0000 (09:36 +0100)]
Implement surrogate menu bars for tty child frames
* lisp/menu-bar.el (popup-menu): When asked to pop up MENU from
a tty child frame try to use menu of its root frame.
(menu-bar-open): When FRAME is a child frame and
'tty-menu-open-use-tmm' is nil, navigate menu bar of its root
frame.
* src/keymap.c (Fcurrent_active_maps): Accept live window as
POSITION argument and use its buffer as current when processing
the key sequence. Needed for tty child frames so the root
frame's menu bar can be updated according to the selected
window's buffer when navigating the menu bar from keyboard.
* src/xdisp.c (prepare_menu_bars): If the selected window's
frame is a tty child frame without menu bar, that frame's root
frame has a menu bar and 'tty-menu-open-use-tmm' is nil, prepare
to update the menu bar of the root frame as surrogate.
(update_menu_bar): New argument W denoting the window that
should be considered as selected. For a tty child frame using F
as surrogate menu bar frame this specifies the child frame's
selected window and its buffer shall be used for updating the
menu bar of the root frame instead of the buffer of the root
frame's selected window.
(redisplay_window): Instead of setting redisplay_menu_p flag
always call display_menu_bar right away. This facilitates to
call display_menu_bar for a tty child frame with its root
frame as surrogate menu bar frame.
(display_tty_menu_item): If the selected frame is a tty child
frame, overwrite its root frame's glyph matrix (and not that of
the child frame) when displaying a menu item.
(Qtty_menu_open_use_tmm): Define symbol.
(cherry picked from commit
7e71b0a2c938623872ec7404d81339c8ff51b012)
Eshel Yaron [Mon, 17 Mar 2025 11:06:11 +0000 (12:06 +0100)]
Yuan Fu [Mon, 17 Mar 2025 05:38:26 +0000 (22:38 -0700)]
Add some keywords to java-ts-mode--keywords (bug#75154)
* lisp/progmodes/java-ts-mode.el:
(java-ts-mode--keywords): Add keywords, remove @interface.
(cherry picked from commit
eb63d0c04a6747a8a1847b88a50befb4e425e7a3)
Yuan Fu [Mon, 17 Mar 2025 05:30:42 +0000 (22:30 -0700)]
Move around java-ts-mode font-lock rules (bug#75154)
* lisp/progmodes/java-ts-mode.el:
(java-ts-mode--font-lock-settings): Move constant feature down
so it overrides expression and definition.
(cherry picked from commit
3d2d95e28431a16897a65543d8b26c791b389ef6)
Yuan Fu [Fri, 14 Feb 2025 02:24:41 +0000 (18:24 -0800)]
Use c-ts-common baseline rule in java-ts-mode (bug#75154)
Use it for function parameters.
* lisp/progmodes/java-ts-mode.el:
(java-ts-mode--standalone-predicate): New function.
(java-ts-mode--indent-rules): Comment out rules for function
parameters and statements, and add
c-ts-common-baseline-indent-rule as fallback.
(java-ts-mode): Setup.
(java-ts-mode--first-line-on-multi-line-string): Mark BOL as
unused.
* test/lisp/progmodes/java-ts-mode-resources/indent.erts:
New test.
(cherry picked from commit
93cd55f40e5e1788e55d82c572f1fafac1dee499)
Yuan Fu [Fri, 14 Feb 2025 02:23:43 +0000 (18:23 -0800)]
Add indentation for multi-line string in java-ts-mode (bug#75154)
* lisp/progmodes/java-ts-mode.el:
(java-ts-mode--first-line-on-multi-line-string): New function.
(java-ts-mode--indent-rules): Add rules.
(cherry picked from commit
affb2ba77b4a7ec7c000b18cc5c30d237e1b7165)
Yuan Fu [Thu, 13 Feb 2025 15:57:19 +0000 (07:57 -0800)]
Add java-ts-mode-method-chaining-indent-offset (bug#75154)
Default method chaining to indent 8 spaces.
* lisp/progmodes/java-ts-mode.el:
(java-ts-mode-method-chaining-indent-offset): New custom option.
(java-ts-mode--indent-rules): Use
java-ts-mode-method-chaining-indent-offset.
(cherry picked from commit
8fb31f58664b2c963dcc49706c163ffb4fafd699)
Eshel Yaron [Mon, 17 Mar 2025 11:05:59 +0000 (12:05 +0100)]
Gerd Möllmann [Sun, 16 Mar 2025 20:17:55 +0000 (21:17 +0100)]
Make sure to initialize glyph::frame to NULL (bug#77039)
* src/dispnew.c (adjust_glyph_matrix): Clear glyph memory when
enlarging window-system window glyph matrices.
(cherry picked from commit
eab14d68b2e72b9a6b8b0cc67c9667c2bfbed4f5)
Jens Schmidt [Fri, 14 Mar 2025 22:07:11 +0000 (23:07 +0100)]
Correctly unload variable aliases.
* src/eval.c (Finternal_delete_indirect_variable): Add function.
* lisp/loadhist.el (loadhist-unload-element): Use it for variable
aliases.
* test/src/eval-tests.el (eval-tests--internal-delete-indirect-variable):
Test function `internal-delete-indirect-variable'.
* test/lisp/loadhist-tests.el (loadhist-test-unload-feature-alias):
* test/lisp/loadhist-resources/loadhist--alias.el: Test unloading of
features that define variable aliases. (Bug#76748)
(cherry picked from commit
7f2e4508cebe76a885b72ca4789ae839d5bd45e1)
Michael Albinus [Sun, 16 Mar 2025 13:17:38 +0000 (14:17 +0100)]
Tramp: Handle symlinks to non-existing targets better
* lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file):
Don't use the truename.
* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file): Refactor. Handle
symlinks. (Bug#76678)
* lisp/net/tramp-smb.el (tramp-smb-errors): Add string.
(tramp-smb-handle-copy-file, tramp-smb-handle-rename-file):
Refactor.
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-do-copy-or-rename-file):
Don't use the truename. Handle symlinks.
* lisp/net/tramp.el (tramp-barf-if-file-missing): Accept also symlinks.
(tramp-skeleton-file-exists-p): Handle non-existing symlink targets.
(tramp-skeleton-set-file-modes-times-uid-gid): Fix typo.
* test/lisp/net/tramp-tests.el (vc-handled-backends):
Suppress only if noninteractive.
(tramp-test11-copy-file, tramp-test12-rename-file)
(tramp-test18-file-attributes, tramp-test21-file-links)
(tramp--test-check-files): Adapt tests.
(cherry picked from commit
b8104dadbf285d12c356d4cddd28ac3eaf05f263)
Stefan Kangas [Sat, 15 Mar 2025 13:11:51 +0000 (14:11 +0100)]
Don't recommend legacy keymap functions in docstrings
* lisp/comint.el (comint-prompt-read-only):
* lisp/ielm.el (ielm-prompt-read-only):
* lisp/international/ogonek.el (ogonek-informacja, ogonek-information):
* lisp/mouse-copy.el (mouse-drag-secondary-pasting):
* lisp/mouse-drag.el (mouse-drag-throw, mouse-drag-drag): Don't
recommend using legacy keymap functions.
(cherry picked from commit
03e33cbef3e33aa1ec843388d1671f7116a7347b)
Stefan Kangas [Sat, 15 Mar 2025 18:26:31 +0000 (19:26 +0100)]
Use substitute-quotes for checkdoc errors
* lisp/emacs-lisp/checkdoc.el (checkdoc-create-error): Use
substitute-quotes.
(cherry picked from commit
dec21bcc9997780a9c56e4eb7f718fd64d8c32ec)
Eshel Yaron [Mon, 17 Mar 2025 10:50:23 +0000 (11:50 +0100)]
; Update lisp/ldefs-boot.el
Eshel Yaron [Mon, 17 Mar 2025 10:49:39 +0000 (11:49 +0100)]
Simplify tempo.el a bit and use it in refactor.el
Eshel Yaron [Mon, 17 Mar 2025 10:00:27 +0000 (11:00 +0100)]
Drop snmp-mode.el
Eshel Yaron [Sun, 16 Mar 2025 18:04:23 +0000 (19:04 +0100)]
Bump electric-pair-mode definition up a bit
Eshel Yaron [Sun, 16 Mar 2025 17:02:35 +0000 (18:02 +0100)]
Fix 'lisp-kill-line' with point before comment
Stefan Kangas [Sat, 15 Mar 2025 12:39:45 +0000 (13:39 +0100)]
Use defvar-keymap for some trivial keymaps
* lisp/bindings.el (mode-line-window-dedicated-keymap)
(mode-line-buffer-identification-keymap):
* lisp/emulation/cua-rect.el (cua--overlay-keymap, cua--overlay-key):
* lisp/mh-e/mh-mime.el (mh-mime-security-button-map):
* lisp/mh-e/mh-utils.el (mh-hidden-header-keymap):
* lisp/net/eudc-bob.el (eudc-bob-generic-keymap, eudc-bob-image-keymap)
(eudc-bob-sound-keymap, eudc-bob-url-keymap, eudc-bob-mail-keymap):
* lisp/progmodes/etags-regen.el (etags-regen-mode-map):
* lisp/progmodes/octave.el (octave-help-mode-map):
* lisp/replace.el (multi-query-replace-map):
* lisp/simple.el (process-menu-mode-map, messages-buffer-mode-map):
* lisp/startup.el (splash-screen-keymap):
* lisp/tab-bar.el (tab-bar-mode-map):
* lisp/textmodes/ispell.el (ispell-minor-keymap):
* lisp/textmodes/tex-mode.el (latex-mode-map, plain-tex-mode-map):
* lisp/tree-widget.el (tree-widget-button-keymap):
* lisp/vc/vc-hooks.el (vc-mode-line-map): Use defvar-keymap.
(cherry picked from commit
d8d524071d78d6499278546cf13ae261c05cadf3)
Po Lu [Sun, 16 Mar 2025 12:14:32 +0000 (20:14 +0800)]
; New `bisect' argument to `ats-execute-tests-batch'
* test/infra/android/test-controller.el
(ats-execute-tests-batch): New argument `bisect'.
(cherry picked from commit
5d02ca181daa2b3833a2b32157388a7b131955e8)
Po Lu [Sun, 16 Mar 2025 12:12:52 +0000 (20:12 +0800)]
Fix clipboard object handle leak on Android 3.1 to 11.0
* src/androidselect.c (extract_fd_offsets): Release retrieved
ParcelFileDescriptor objects on APIs 12 through 30.
(cherry picked from commit
2d5cf228186184b5af6e4e8ee8f5280f67f407bc)