1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-10 08:11:53 -07:00
Commit graph

181648 commits

Author SHA1 Message Date
Helmut Eller
96eacb2c09 Move the attribute field of charsets to a separate vector
This simplifies the GC code, as this was the only field in the charset
struct that referenced the GC heap.  Without it, we no longer need to
trace the charset_table.

* src/charset.h (struct charset.attributes): Removed.
(charset_attributes_getter): New helper.
(CHARSET_ATTRIBUTES): Use it.
* src/charset.c (charset_attributes_table): New.
(Fdefine_charset_internal): Place attrs in charset_attributes_table.
(syms_of_charset): Initialize charset_attributes_table.
(mark_charset): Deleted.
* src/pdumper.c (dump_charset): Skip attributes field.
* src/lisp.h (mark_charset): Deleted.
* src/alloc.c (garbage_collect): mark_charset no longer needed.
2026-03-21 18:20:42 +01:00
Basil L. Contovounesios
fac42338bb Make member-if compiler-macro hygienic
* lisp/subr.el (member-if): Use uninterned symbol in
compiler-macro (bug#80647).
2026-03-21 13:51:27 +01:00
Eli Zaretskii
9adc553ab9 ; * doc/lispintro/emacs-lisp-intro.texi: Fix parens (bug#80646). 2026-03-21 13:27:56 +02:00
Stéphane Marks
48d65afa32 vtable truncate-string-pixelwise, ellipsis can be a string (bug#80026)
Eliminate 'vtable--limit-string' in favor of the more efficient
'truncate-string-pixelwise'.  Remove extraneous pre-measurement
calls to 'string-pixel-width' and ellipsis concatenation as
'truncate-string-pixelwise' does both.
The 'make-vtable' 'ellipsis' keyword can be a string to override
the default returned by 'truncate-string-ellipsis'.

* lisp/emacs-lisp/vtable.el (vtable--ellipsis): New defun.
(vtable-insert-object, vtable--insert): Use 'vtable--ellipsis'.
(vtable--insert-line, vtable--insert-header-line): Call
'truncate-string-pixelwise' instead of 'vtable--limit-string'.
(vtable--limit-string): Remove function.

* test/lisp/emacs-lisp/vtable-tests.el
(test-vtable--limit-string-with-face-remapped-buffer): Remove
test, obsoleted by misc-test-truncate-string-pixelwise.

* doc/misc/vtable.texi: Document that :ellipsis can be a string.
2026-03-21 12:50:04 +02:00
Jeff Valk
eca93f40d1 Ensure correct expansion in 'find-sibling-file-search'
* lisp/files.el (find-sibling-file-search): Following expansion
of each EXPANSION, advance the search start position to reflect
the actual length of the expanded text (the updated string), not
the length of the "\\([&0-9]+\\)" (the string before expansion).
(Bug#80636)

Copyright-paperwork-exempt: yes
2026-03-21 12:31:21 +02:00
Eli Zaretskii
531f45551a ; * src/fns.c (internal_equal_cycle) <use-short-answers>: Doc fix. 2026-03-21 10:12:03 +02:00
Eli Zaretskii
aefa854d01 ; * etc/NEWS: Fix wording. 2026-03-21 09:07:25 +02:00
Eli Zaretskii
4901015055 ; * doc/lispref/variables.texi (Void Variables): Add cross-reference. 2026-03-21 09:05:59 +02:00
Tassilo Horn
8ae0877416 Fix wrong-type-argument error in package-upgrade
* lisp/emacs-lisp/package.el (package-upgrade): Fix wrong-type-argument
error when upgrading a builtin package (bug#80633).
2026-03-21 07:15:35 +01:00
Stefan Monnier
3ed7868f6e simple-tests.el: Use kmacro function
* test/lisp/simple-tests.el (undo-test-kill-c-a-then-undo)
(undo-test-point-after-forward-kill): Use `kmacro` function.
2026-03-20 23:19:43 -04:00
Stefan Monnier
f986e5a897 cursor-sensor.el: Partial fix for bug#80255
This provides limited support for window-specific overlay properties.
To complete it, we still need to add support for it to
`next/previous-single-char-property-change`.

* lisp/emacs-lisp/cursor-sensor.el (cursor-sensor--intangible-p):
Add `window` argument.
(cursor-sensor-tangible-pos, cursor-sensor--detect):
Pass `window` argument to the functions
looking for overlay properties.
2026-03-20 23:18:29 -04:00
Stefan Monnier
378cfb8660 (Fmakunbound): Break aliasing, if present (bug#80538)
* src/data.c (Fmakunbound): Break aliasing, if present.
* doc/lispref/variables.texi (Void Variables): Document it.
2026-03-20 17:21:05 -04:00
Stefan Monnier
89b40650da diff-mode.el: Don't recompute the position of Git preamble/footer
On some profiles (after disabling syntax and refined
fontification), this was taking >90% of the time to fontify a buffer.

* lisp/vc/diff-mode.el (diff--git-preamble-overlay)
(diff--git-footer-overlay): New variables.
(diff--git-preamble-end, diff--git-footer-start): Use them to cache
the result.
2026-03-20 16:53:42 -04:00
Eshel Yaron
a1a76ba06e
; Simplify 'elisp-fontify-symbol'.
* lisp/progmodes/elisp-mode.el (elisp-fontify-symbol):
Simplify.  See also discussion at bug#80593.
2026-03-20 15:10:50 +01:00
Philip Kaludercic
c852297037
; Adjust use-package tests for :vc
See https://lists.gnu.org/archive/html/emacs-devel/2026-03/msg00567.html.

* test/lisp/use-package/use-package-tests.el (use-package-test-normalize/:vc):
Drop or change expected to match change that interprets a string
argument to :vc in the same manner as 'package-vc-install.
2026-03-19 21:38:29 +01:00
Eshel Yaron
72c262d5d1
; Adapt 'elisp-fontify-symbol' to 'cursor-sensor-mode' changes
* lisp/progmodes/elisp-mode.el (elisp-fontify-symbol): Mark
the 'cursor-sensor-functions' property as 'rear-nonsticky',
to adapt to 'cursor-sensor-mode' taking into account
property stickiness since f4a1c00656.  See also bug#80593.
2026-03-19 17:29:27 +01:00
Ihor Radchenko
e4aa9cfbab New option to enable global-whitespace-mode in special-buffers (bug#79230)
* lisp/whitespace.el (whitespace-global-mode-buffers): New custom
option.
(whitespace-enable-predicate): Use it.
(whitespace-global-modes): Refer to the new option.
2026-03-19 17:51:02 +02:00
Eli Zaretskii
0801652979 ; * lisp/ibuffer.el (ibuffer-fontification-alist): Doc fix (bug#80618). 2026-03-19 17:46:57 +02:00
Eli Zaretskii
ee42c392d2 ; Fix documentation of window-dimension functions
* doc/lispref/windows.texi (Window Sizes):
* src/window.c (Fwindow_body_height, Fwindow_total_height)
(Fwindow_total_width, Fwindow_body_width): Clarify that window
dimensions are returned in canonical columns and lines.
(Bug#80620)
2026-03-19 17:40:31 +02:00
Elias Gabriel Perez
5c961f4903 hideshow: Fix 'hs-hide-block-behavior' set to 'after-cursor'.
Bug#80455.

* etc/NEWS: Document changed behavior.

* lisp/progmodes/hideshow.el (hs-get-near-block): Remove
'forward-line'.
(hs-hide-block-behavior): Update docstring.

* doc/emacs/programs.texi (Hideshow): Update.

Suggested-by: Dima Kogan <dima@secretsauce.net>
2026-03-19 17:27:57 +02:00
Eli Zaretskii
687fe594d6 Fix "make install-nt" in parallel builds
* Makefile.in (install-nt): Add order-only dependency on $(NTDIR).
Suggested by Joel Reicher <joel.reicher@gmail.com>.  (Bug#80470)
2026-03-19 17:19:44 +02:00
Elías Gabriel Pérez
c911495fb1 hideshow: New minor mode 'hs-indentation-mode'. (Bug#80179)
This minor mode configures hs-minor-mode to use
indentation-based folding.

* lisp/progmodes/hideshow.el (hs-hideable-block-p): New
function.
(hs-indentation-respect-end-block): New option.
(hs-indentation--store-vars): New variable.
(hs-cycle-filter, hs-get-first-block-on-line, hs-get-near-block)
(hs-find-block-beg-fn--default): Adapt code to use
'hs-hideable-block-p'.
(hs-block-positions): Update.
(hs-indentation-mode): New minor mode.

* doc/emacs/programs.texi (Hideshow): Update documentation.

* etc/NEWS: Announce changes

* test/lisp/progmodes/hideshow-tests.el: Add 'require'.
(hideshow-check-indentation-folding): New test.
2026-03-19 17:11:54 +02:00
Eli Zaretskii
1f04208898 ; * lisp/files.el (find-sibling-rules): Doc fix. 2026-03-19 09:54:07 +02:00
Stefan Monnier
7fae444857 lisp/progmodes/elisp-mode.el (elisp--local-macroenv): Add static-if 2026-03-18 09:33:55 -04:00
Stéphane Marks
7ae5562bd4 Kick the event loop in NS drag and drop (bug#80592)
Eliminate an annoying event-loop delay after dropping into an
Emacs window.

* src/nsterm.m: ([EmacsView performDragOperation:]): Kick the
event loop after posting the DRAG_N_DROP_EVENT.
2026-03-18 10:34:29 +00:00
Michael R. Mauger
6db7ab34a1 Window handling bug fixes.
* lisp/play/zone.el: (zone--build-zone-buffer): select window.
(zone--prepare-frames): Avoid dedicated windows.
2026-03-17 18:32:40 -04:00
Stefan Monnier
dd264fb439 (delete-selection-repeat-replace-region): Partial fix for bug#80216
* lisp/delsel.el (delete-selection-repeat-replace-region): Clarify the
need for `delete-selection-save-to-register`.
2026-03-17 12:40:22 -04:00
Tassilo Horn
fdfe617e73 Further improve blink-matching-paren-highlight-offscreen
* lisp/simple.el (blink-matching-paren-offscreen): Inherit from
show-paren-match face.
(blink-paren-open-paren-line-string): Add blink-matching-paren-offscreen
face properties to opening paren instead of replacing original
fontification.
* lisp/paren.el (show-paren-context-when-offscreen): Mention
blink-matching-paren-highlight-offscreen in docstring.
2026-03-17 06:13:54 +01:00
Dmitry Gutov
f8696367bc Assign bit gravity to window in Lucid and Motif ports too
* src/widget.c (EmacsFrameRealize): Assign bit_gravity, and use
the value of NorthWestGravity which matches the GTK3 behavior,
and the general intuition that window's contents should move
with its top-left corner.  The result is that the frame is not
blinking during resizing (bug#80369).

* src/xfns.c (x_window) [!USE_X_TOOLKIT]: Change bit_gravity from
StaticGravity to NorthWestGravity as well, to match the others.
2026-03-16 23:55:24 +02:00
Philip Kaludercic
4147410852
; Fix handling of string by the use-package keyword :vc
This makes :vc behave more like 'package-vc-install'.

* lisp/use-package/use-package-core.el (use-package-normalize/:vc):
Translate :vc arguments that are just a string into a minimal
package specification containing only a :url field, thus
preventing a type error down the line.
2026-03-16 18:23:37 +01:00
Pip Cet
aa90b0fb4a Count characters correctly in 'str_as_multibyte'
* src/character.c (str_as_multibyte): Increment CHARS for each
character produced, not just once.
2026-03-16 16:28:36 +00:00
Basil L. Contovounesios
88600757ae Remove more regex macros from src/conf_post.h
Further to bug#80428, they are no longer used since commit of
2018-08-05 "Simplify regex-emacs code by assuming Emacs".
Suggested by Pip Cet <pipcet@protonmail.com>.

* src/conf_post.h [emacs] (RE_TRANSLATE_TYPE): Remove;
no longer used except under lib-src.
[emacs] (RE_TRANSLATE): Remove; redefined in src/regex-emacs.c.
2026-03-16 14:29:26 +01:00
Michael Albinus
1bae55cdbf * lisp/emacs-lisp/shortdoc.el (list): Fix `ensure-proper-list' examples. 2026-03-16 09:17:18 +01:00
Michael Albinus
1aed658f3b Use consistent alias name in tramp-compat.el
* lisp/net/tramp-compat.el (tramp-compat-error-type-p):
Rename from `tramp-error-type-p'.
2026-03-16 09:02:03 +01:00
Stefan Monnier
e9e9c7cf8e lisp/startup.el (command-line): Simplify with error-message-string
Suggested by Basil L. Contovounesios <basil@contovou.net>.
2026-03-15 17:29:41 -04:00
Stefan Monnier
e2004eb56f Merge remote-tracking branch 'origin/scratch/error-API' 2026-03-15 17:17:21 -04:00
Sean Whitton
fe9f6a5872 ; Tweak wording of newcomer instructions. 2026-03-15 20:29:08 +00:00
Sean Whitton
e770ddb5e8 ; Tweak documentation for ensure-proper-list. 2026-03-15 20:27:41 +00:00
Sean Whitton
14037f5852 Set frame-inhibit-implied-resize in newcomers-presets
* etc/themes/newcomers-presets-theme.el (newcomers-presets): Set
frame-inhibit-implied-resize as suggested by Martin Rudalics.
2026-03-15 20:22:18 +00:00
Eshel Yaron
3921af5e5e
; Minor doc improvements for 'let-alist'.
* doc/lispref/lists.texi:
* lisp/emacs-lisp/let-alist.el (let-alist): Improve docs.
Namely, clarify that 'let-alist' does not "see" symbols
introduced by macro-expansion in its body, and that the
generated code looks up symbols in the alist whether or not
they are actually used in runtime.

See also bug#79706 for some relevant discussion.
2026-03-15 13:15:36 +01:00
Eli Zaretskii
edeed3fd88 ; * lisp/bindings.el (mode-line-percent-position): Doc fix (bug#80617). 2026-03-15 12:16:40 +02:00
Philip Kaludercic
55f0f2056c
Add new function 'ensure-proper-list' (bug#80598)
* doc/lispref/lists.texi (Building Lists): Document it.
* etc/NEWS: Mention it.
* lisp/emacs-lisp/shortdoc.el (list): Demonstrate it.
* lisp/subr.el (ensure-proper-list): Add it.
2026-03-15 10:52:01 +01:00
Philip Kaludercic
6901173e44
; Ensure hint to close "Newcomers Theme" is visible
* doc/emacs/custom.texi (Newcomers Theme): Move to the beginning
of the node, so as to be visible even when the Emacs frame is
too small and wrap it in a conditional to not print the message
in non-Info outputs.
2026-03-15 10:52:01 +01:00
Michael Albinus
b38aac5439 ; * etc/NEWS: Presentational fixes and improvements. 2026-03-15 09:44:42 +01:00
Eli Zaretskii
6c4b9b2cc3 ; * src/fns.c (Fstring_make_multibyte, Fstring_as_unibyte): Doc fixes. 2026-03-15 09:55:23 +02:00
Eli Zaretskii
bb0b9635f9 Avoid segfaults in TTY menu-item selection
* src/term.c (tty_menu_show): Don't allow "selection" of items in
a bogus menu.  (Bug#80603)
2026-03-15 08:40:50 +02:00
Eli Zaretskii
f59181008f Avoid another assertion violation in TTY menus
* src/term.c (tty_menu_show): Reject bogus menus whose 'menu_items'
is nil.  (Bug#80603)
2026-03-14 19:00:31 +02:00
Philip Kaludercic
9b97d84318
Add references to "User Lisp" Info node where applicable
* etc/NEWS: Update 'package-vc-install-from-checkout'
obsoletion notice.
* lisp/emacs-lisp/package-vc.el (package-vc-install-from-checkout):
Update obsoletion declaration.
2026-03-14 16:17:51 +01:00
Philip Kaludercic
18dfb0db0e
Remove references to 'package-vc-install-from-checkout' in docs
* lisp/emacs-lisp/package-vc.el: Remove mention in Commentary section.
(package-vc-checkout): Remove suggestion in docstring.
2026-03-14 16:17:51 +01:00
Basil L. Contovounesios
7077633e67 Rename emacs-module.h.in -> emacs-module.in.h
* src/emacs-module.h.in: Rename...
* src/emacs-module.in.h: ...to this, for consistency with all other
lib/*.in.h files (bug#80428).
* Makefile.in (CONFIG_STATUS_FILES_IN):
* admin/release-branch.txt:
* src/emacs-module.c: All uses updated.
* admin/authors.el (authors-renamed-files-alist): Register rename.
* configure.ac: Specify non-default AC_CONFIG_FILES input file.
2026-03-14 15:08:15 +01:00