1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-04 06:31:13 -08:00
Commit graph

48172 commits

Author SHA1 Message Date
Basil L. Contovounesios
8ffe8422c5 Minor tree-sitter cleanups
* lisp/treesit.el (treesit-fontify-with-override): Fix docstring
grammar.  Remove redundant precondition (bug#64052).
* src/treesit.c (Ftreesit_parser_set_included_ranges): Fix typo in
commentary.
(treesit_predicate_equal, treesit_predicate_match)
(treesit_predicate_pred): Avoid fixnum roundtrip by using
list_length in place of Flength.  Make error messages more accurate.
(treesit_eval_predicates): Quote predicate names in error message.
2023-07-08 17:05:05 +01:00
Basil L. Contovounesios
ac57358762 Minor search_buffer cleanup
* src/search.c: Move commentary that used to precede search_buffer
to that location once more.  Update it for the current arglist.
(search_command, search_buffer_non_re, search_buffer):
* src/lisp.h (search_buffer): Turn RE flag/argument from an int into
a bool.  All callers changed (bug#64049).
2023-07-08 16:35:09 +01:00
Eli Zaretskii
375dac936f Merge from origin/emacs-29
600b90ed56 Mark failing icalendar test as unstable (bug#56241)
f8a918c977 ; * src/coding.c (Fcoding_system_put): Improve doc string.
40f84e906f ; * doc/lispref/keymaps.texi (Key Binding Commands): Fix ...
502a780031 ; Improve documentation of 'vertical-motion' in ELisp manual
0d90873fa4 ; * src/indent.c (Fvertical_motion): Doc fix.
9b38773a20 ; * lisp/dired.el (dired-no-confirm): Doc fix.  (Bug#64493)
a30ebe7a55 ; Improve documentation of key-binding commands
c3fefb2b3a Improve natnump shortdoc
244d4c837a correct info documentation of benchmark-call
67def1f550 * lisp/progmodes/grep.el (rgrep): Fix docstring.
8da2091362 ; Fix documentation of minibuffer-completion commands
aa030698ce ; Fix typos in documented names of keymap-* functions
a9b46bb25d Include a help-echo for flymake's modeline counters
37ed3d15f3 Avoid errors in completion due to 'completion-regexp-list'
15ff876177 ; * lisp/register.el (register-val-describe): Doc fix.
fe7b909c16 ; Fix two typos in recent changes in the manual
7a74b8c327 C Mode: Don't fontify foo globally as type due to "struct...
823bf6bdb1 * lisp/rect.el (rectangle--duplicate-right): Fix rectangl...
e339d0080d ; * test/lisp/misc-tests.el (ert): require misc to avoid ...

# Conflicts:
#	lisp/rect.el
2023-07-08 05:46:10 -04:00
Stefan Monnier
a9420c89da Avoid aborts when trying to 'read' sub-char-tables
* src/data.c (Ftype_of): Support 'sub-char-table'.  (Bug#64450)
* src/lisp.h: Fix commentary of char-table.
2023-07-08 11:12:54 +03:00
Eli Zaretskii
f8a918c977 ; * src/coding.c (Fcoding_system_put): Improve doc string. 2023-07-07 10:29:55 +03:00
Eli Zaretskii
0d90873fa4 ; * src/indent.c (Fvertical_motion): Doc fix. 2023-07-07 09:16:12 +03:00
Po Lu
d679f9e388 Fix leak when quit arrives during incremental selection transfer
* src/xselect.c (x_free_selection_data): New function.
(x_get_window_property_as_lisp_data): Free `data' reliably
if receive_incremental_selection quits.
2023-07-03 11:45:04 +08:00
Po Lu
30f83e3093 Provide move-toolbar in a more appropriate place
* src/frame.c (syms_of_frame): Provide `move-toolbar' here...
* src/keyboard.c (syms_of_keyboard): ..instead of here.
2023-07-03 08:56:21 +08:00
Po Lu
3a07511f1b ; * src/keyboard.c (syms_of_keyboard): Fix typo. 2023-07-03 08:42:39 +08:00
Po Lu
d0c1e97397 Always provide `move-toolbar' when its position can be changed
* src/keyboard.c (syms_of_keyboard): Make `move-toolbar' a
defsym.  Provide that feature if Emacs uses its internal tool
bars or GTK+.
* src/xfns.c (syms_of_xfns): Stop provide `move-toolbar' here.
2023-07-03 08:42:24 +08:00
Eli Zaretskii
f893ace835 Fix display of wide characters on TTY frame's mode line
* src/xdisp.c (pad_mode_line): New function.
(display_string): Use it instead of 'produce_special_glyphs' to
replace a character that's too wide to fit on the mode/header/tab
line, but which occupies some columns that do fit.  (Bug#64395)
2023-07-02 11:10:59 +03:00
Eli Zaretskii
37ed3d15f3 Avoid errors in completion due to 'completion-regexp-list'
* doc/lispref/minibuf.texi (Basic Completion):
* src/minibuf.c (syms_of_minibuf) <completion-regexp-list>:
Document that global non-nil settings of 'completion-regexp-list'
are not safe.

* lisp/minibuffer.el (completion-pcm--merge-completions): Avoid
errors in 'try-completion' when PREFIX is nil.  (Bug#64351)
2023-07-02 09:16:58 +03:00
Eli Zaretskii
fbdc85b8f8 Merge from origin/emacs-29
a722e7dd15 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
65f146cf1c ; * lisp/calculator.el (calculator-need-3-lines): Fix las...
9e8386bdac Support cons cell as value of ':line-width' box attribute
1d2ba6b363 ; * admin/notes/tree-sitter/treesit_record_change: Update.
02b6be892f Add missing calls to treesit_record_change in editfns.c
e982192e93 Call treesit_record_change in subst-char-in-region (bug#6...
ddbb11f565 ; * lisp/misc.el (duplicate-line-final-position): Fix las...
cecbe92d5d ; * lisp/misc.el (duplicate-line-final-position): doc pre...
042f0d6a14 ; Fix documentation of ':box' face attribute

# Conflicts:
#	etc/NEWS
2023-07-01 06:29:52 -04:00
Yuan Fu
02b6be892f
Add missing calls to treesit_record_change in editfns.c
These should be all that are missing.  See the next commit for detail.

* src/editfns.c (Ftranslate_region_internal):
(Ftranspose_regions): Call treesit_record_change.
2023-06-29 11:15:29 -07:00
Yuan Fu
e982192e93
Call treesit_record_change in subst-char-in-region (bug#64329)
* src/editfns.c (Fsubst_char_in_region): Call treesit_record_change in
the else branch.
2023-06-29 11:15:29 -07:00
Eli Zaretskii
8e8667246a Merge from origin/emacs-29
d0147ff9e5 * lisp/emacs-lisp/shortdoc.el: More and better `substring...
fa06249a9f Fix "C-x RET r" when the new encoding is UTF
679e9d7c56 ; Mention MinGW64 GCC 13.1 problems in PROBLEMS
fdc1a12ed1 Fix "vc-print-log does not erase buffer" and associated p...
d507aa7336 Add selector_expression indentation rule
1f664a0af7 Add "nixd" LSP server to Eglot
e962cf4ba7 Fix building --with-native-compilation=aot from release t...
4ca371e9cc Fix bug#64152 (Minibuffer sometimes goes "modal")
a0ccf1859c Disable target-async by default in gdb-mi.el
2bad5829ff Revert "Fix parsing of dn line if WITHDN is non-nil"
7637e361d3 Don't truncate filenames with "emacs.el" in them
2591eb1190 Improve documentation of 'minibuffer-message'
6f211bc57b Eglot: again fix positions of coinciding inlay hint overl...
a24e9e3fee ; Update ChangeLog.4 and etc/AUTHORS.
2023-06-24 07:13:42 -04:00
Eli Zaretskii
fa06249a9f Fix "C-x RET r" when the new encoding is UTF
* src/fileio.c (Finsert_file_contents): Update point of
'conversion_buffer' before decoding the last block.  (Bug#64253)
2023-06-24 11:49:14 +03:00
Eli Zaretskii
01ce70cea9 Revert "Avoid header line with some empty non-nil formats"
This reverts commit 4f66cbbfe5.
This is part of removing the recently-added feature whereby
certain non-nil values of 'header-line-format' could signal
that the header line shall not be displayed.  The feature is
being reverted because its advantages are very minor, whereas
the complications it causes are serious.
2023-06-23 13:50:15 +03:00
Eli Zaretskii
accff13e64 Revert "; Fix last change"
This reverts commit 05c2be28a3.
This is part of removing the recently-added feature whereby
certain non-nil values of 'header-line-format' could signal
that the header line shall not be displayed.  The feature is
being reverted because its advantages are very minor, whereas
the complications it causes are serious.
2023-06-23 13:47:53 +03:00
Eli Zaretskii
ddf508e8ac Revert "; Fix coding style in just installed change"
This reverts commit 229f0b8dd3.
This is part of removing the recently-added feature whereby
certain non-nil values of 'header-line-format' could signal
that the header line shall not be displayed.  The feature is
being reverted because its advantages are very minor, whereas
the complications it causes are serious.
2023-06-23 13:47:33 +03:00
Eli Zaretskii
7c41dcde1c Revert "; * src/window.c (window_wants_header_line): Shut up bogus GCC warning."
This reverts commit ef8485ad05.
This is part of removing the recently-added feature whereby
certain non-nil values of 'header-line-format' could signal
that the header line shall not be displayed.  The feature is
being reverted because its advantages are very minor, whereas
the complications it causes are serious.
2023-06-23 13:47:05 +03:00
Eli Zaretskii
c964dd0820 Revert "Avoid infinite recursion in 'window_wants_header_line'"
This reverts commit 3de8ed09ab.
This is part of removing the recently-added feature whereby
certain non-nil values of 'header-line-format' could signal
that the header line shall not be displayed.  The feature is
being reverted because its advantages are very minor, whereas
the complications it causes are serious.
2023-06-23 13:44:59 +03:00
Eli Zaretskii
e962cf4ba7 Fix building --with-native-compilation=aot from release tarball
* lisp/Makefile.in (%.eln): Pattern rule for AOT native
compilation.
(compile-eln-targets, compile-eln-aot): New targets for AOT native
compilation.

* src/Makefile.in (../native-lisp): If NATIVE_COMPILATION_AOT is
set, also native-compile all the other Lisp files.
(Bug#64167)
2023-06-22 14:03:17 +03:00
Michael Albinus
8ca8fb4841 Merge from origin/emacs-29
0154f5885e Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs ...
111efb0dd7 Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs ...
948b471756 Require ls-lisp in Tramp only when needed
90c03ffcd4 After minibuffer action, don't make the minibuffer current
2023-06-22 11:01:23 +02:00
Mattias Engdegård
be91192ecb Straighten regexp postfix operator after zero-width assertion parse
The zero-width assertions \` \' \b \B were parsed in a sloppy way so
that a following postfix repetition operator could yield surprising
results.  For instance, "\\b*" would act as "\\b\\*", and "xy\\b*"
would act as "\\(?:xy\\b\\)*".

Except for \` and ^, any following postfix operator now applies to the
zero-width assertion itself only, which is predictable and consistent
with other assertions, if useless in practice.
For historical compatibility, an operator character following \` and ^
always becomes a literal. (Bug#64128)

* src/regex-emacs.c (regex_compile):
Set `laststart` appropriately for each zero-width assertion instead
of leaving it with whatever value it had before.
Remove a redundant condition.
* test/src/regex-emacs-tests.el
(regexp-tests-zero-width-assertion-repetition): New test.
* doc/lispref/searching.texi (Regexp Special):
Say that repetition operators are not special after \`,
and that they work as expected after other backslash escapes.
* etc/NEWS: Announce.
2023-06-21 18:00:26 +02:00
Alan Mackenzie
4ca371e9cc Fix bug#64152 (Minibuffer sometimes goes "modal")
In particular, when a frame has no minibuffer and is using that
of a different "normal" frame, C-x 5 o, etc., and GUI
operations fail.

Fix by partially reverting the commit from 2022-07-07 15:38:09
+0000 "Remove obscure, obsolete code from do_switch_frame".  As
a consequent change, also revert the commit from 2022-07-08
20:19:03 +0000 "Remove now unused parameter TRACK from
do_switch_frame".

* src/frame.c (do_switch_frame): Restore the TRACK parameter.
Restore the code which redirects the frame focus when a new
frame gets selected.

* src/frame.c (Fselect_frame, Fhandle_switch_frame)
(delete_frame)
* src/keyboard.c (quit_throw_to_read_char)
* src/lisp.h (do_switch_frame prototype)
* src/minibuf.c (read_minibuf_unwind)
* src/window.c (Fset_window_configuration): Restore the TRACK
argument to do_switch_frame.

* src/xterm.c (x_try_restore_frame): Add a zero TRACK argument
to do_switch_frame.
2023-06-21 14:23:14 +00:00
Daniel Martín
a5c71cc232 Prevent crashes on macOS when fullscreen frame is deleted
* src/nsterm.m (ns_free_frame_resources): Remove the frame's
window from the hierarchy.  (Bug#64147)
2023-06-21 16:35:27 +03:00
Po Lu
0273cb5e6d ; * src/pgtkfns.c (frame_geometry): Fix typo in last change. 2023-06-21 11:32:41 +08:00
Po Lu
db6de49f23 Allow displaying tool bar on the bottom of the frame
* src/xterm.c (x_clear_under_internal_border): Subtract bottom
margins before clearing bottom border.
(XTflash): Subtract bottom margins before flashing mini window.

* src/xfns.c (x_set_tool_bar_position): Allow setting different
values outside of GTK+.
(frame_geometry): Adjust inner width and height for tool bars
placed on the bottom.

* src/xdisp.c (init_xdisp): Calculate using top margins only.

* src/window.c (resize_frame_windows): Fix commentary.

* src/w32fns.c (Fw32_frame_geometry): Report tool bar position
correctly.
(w32_clear_under_internal_border): Subtract bottom margins
prior to clearing bottom border.
(w32_set_tool_bar_position): New function.
(Fw32_frame_edges): Subtract bottom tool bar from inner width and
height.
(w32_frame_parm_handlers): Add `set_tool_bar_position' parameter
handler.

* src/pgtkterm.c (pgtk_flash): Subtract bottom
margins before clearing bottom border.
(XTflash): Subtract bottom margins before flashing mini window.

* src/pgtkfns.c (frame_geometry): Set `inner_top' correctly.
(Fpgtk_set_mouse_absolute_pixel_position):
(Fpgtk_mouse_absolute_pixel_position):
(Fpgtk_page_setup_dialog):
(Fpgtk_get_page_setup): Wrap lines which cause C Mode to hang.

* src/nsterm.m (ns_clear_under_internal_border): Subtract bottom
margins before clearing bottom border.

* src/nsfns.m (ns_set_tool_bar_position): New function.  Error if
arg is not top.
(ns_frame_parm_handlers): Add that as the handler for
`tool-bar-position', to prevent it from being set to an invalid
value.

* src/haikuterm.c (haiku_flash): Subtract bottom margins before
flashing mini window.
(haiku_clear_under_internal_border): Subtract bottom margins
before clearing bottom border.

* src/haikufns.c (haiku_set_tool_bar_position): Allow setting
values other than `top'.
(frame_geometry): Take bottom margin into account when calculating
inner dimensions.

* src/frame.h (struct frame): Always define `tool_bar_position'.
(fset_tool_bar_position): Define function everywhere.
(FRAME_TOOL_BAR_POSITION): Define correctly on all toolkits.
(FRAME_TOOL_BAR_TOP_HEIGHT):
(FRAME_TOOL_BAR_TOP_LINES):
(FRAME_TOOL_BAR_BOTTOM_HEIGHT):
(FRAME_TOOL_BAR_BOTTOM_LINES): New macros.  Each pair returns the
tool bar dimensions only if the tool bar position is set
appropriately.
(FRAME_TOP_MARGIN, FRAME_TOP_MARGIN_HEIGHT): Only add tool bar
height if it is placed at the top of the frame.
(FRAME_BOTTOM_MARGIN, FRAME_BOTTOM_MARGIN_HEIGHT): Add ``bottom
margins''.
(FRAME_MARGINS, FRAME_MARGIN_HEIGHT): Move original margin macro
here.
(FRAME_PIXEL_HEIGHT_TO_TEXT_LINES):
(FRAME_TEXT_TO_PIXEL_HEIGHT):
(FRAME_PIXEL_TO_TEXT_HEIGHT):
(FRAME_INNER_HEIGHT): Subtract both vertical margins.

* src/frame.c (adjust_frame_size): Subtract both top and bottom
margins to determine the inner height.
(make_frame): Initialize `f->tool_bar_position' unconditionally.

* src/dispnew.c (adjust_frame_glyphs_for_window_redisplay): Place
internal tool bar on bottom if requested.

* doc/lispref/frames.texi (Frame Layout): Describe the possibility
of the tool bar being placed below the inner area of the frame.
(Layout Parameters): Describe that `tool-bar-position' is now
supported almost everywhere.
2023-06-21 10:06:34 +08:00
Po Lu
8806bbbf2c Signal error upon setting unsupported tool bar position
* src/haikufns.c (haiku_set_tool_bar_position): New function.
Port non-GTK code from X.
(haiku_frame_parm_handlers): Add new function.
2023-06-20 02:13:41 +00:00
Mattias Engdegård
075e77ac44 * src/regex-emacs.c (regex_compile): Remove useless condition
This condition didn't have any visible effect (as ^ is not a
repetition operator); all it did was to generate slightly worse regexp
bytecode for out-of-place (literal) ^ in the midst of literal
characters (bug#64128).
2023-06-19 10:37:22 +02:00
Alan Mackenzie
90c03ffcd4 After minibuffer action, don't make the minibuffer current
This fixes bug#63967.

* src/minibuf.c (minibuffer_unwind): After restoring the next
minibuffer outwards to the mini window (when
enable-recursive-minibuffers is non-nil), don't call
Fset_frame_selected_window, which used to set the current
window to be the mini window.
2023-06-17 16:14:14 +00:00
Mattias Engdegård
c279369a7a ; * src/treesit.c (treesit_query_string_string): fix last change
Escape the backslash character itself.
2023-06-17 11:56:22 +02:00
Eli Zaretskii
d1ddd1d5d9 Merge from origin/emacs-29
84d2da003e ; Fix example in the Flymake manual
0a1459f1d9 * doc/misc/calc.texi (Advanced Math Functions): Correct c...
92faf1f564 Consider 'dired-kill-when-opening-new-dired-buffer' in mo...
bafe71a69f ; Fix use-package.texi markup
018e4ca6c5 ; * doc/misc/calc.texi (Advanced Math Functions): Fix las...
1952dbd4c5 Fix Gamma function definition in calc.texi
f73f82d7e8 Fix subscripts in the Calc manual
70fc7c41ef Improve documentation of 'declare' forms
c835758238 ; * src/lread.c (bytecode_from_rev_list): Avoid C++ comment.
2847857496 Improve tree-sitter docs
0e9307eb2b Fix some Texinfo markup in manuals
8dc08333ee Fix bol/bos anchors in tree-sitter :match regexps
8225ade615 ; * src/xdisp.c (syms_of_xdisp) <display-line-numbers>: F...
1f0527a312 ; Fix last change in tex-mode.el
4da479920e * lisp/subr.el (with-restriction): Tweak indent rule
36aa9bd818 ; Fix previous change
aaeaf608d8 Fix setting region in the minibuffer
1383efe01d Fix setting $DBUS_SESSION_BUS_ADDRESS after Emacs has sta...
bdb0bc2b4e Fix tex-mode display-buffer issues
90047c38ce Add test for when 'completion-auto-help' is 'visible'
2c623e4feb Avoid errors in 'apropos-documentation' after 'eval-buffer'
dd3b98121c ; * doc/emacs/indent.texi (Indentation Commands): Fix las...
904edf1f07 Mention indent-rigidly in the Emacs manual
2023-06-17 05:02:55 -04:00
Mattias Engdegård
8657afac77 Correct conversion of strings to tree-sitter query syntax
The treesitter query syntax for string literals differs from that of
Elisp so we cannot just use the Lisp printer (bug#64017).

* src/treesit.c (treesit_query_string_string): New function.
(Ftreesit_pattern_expand): Use it.
* test/src/treesit-tests.el (treesit-query-api): Add test case.
2023-06-16 12:58:57 +02:00
Po Lu
c835758238 ; * src/lread.c (bytecode_from_rev_list): Avoid C++ comment. 2023-06-14 13:54:53 +08:00
Gregory Heytings
8225ade615 ; * src/xdisp.c (syms_of_xdisp) <display-line-numbers>: Fix typo 2023-06-13 13:12:55 +00:00
Michael Albinus
1383efe01d Fix setting $DBUS_SESSION_BUS_ADDRESS after Emacs has started
* doc/misc/dbus.texi (Alternative Buses): Explain using
$DBUS_SESSION_BUS_ADDRESS after Emacs has started.

* src/dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Use egetenv.
2023-06-12 12:45:38 +02:00
Eli Zaretskii
acfd261a61 Merge from origin/emacs-29
0d8b69e0ad Don't ding when completion succeeded
f11e2d3699 ; * admin/git-bisect-start: Update failing commits
9855a3ea74 ; * src/xdisp.c (redisplay_tool_bar): Fix a typo in a com...
f4ee696b88 Improve documentation of color-related functions
90eadc3e23 Revert "* package.el (package--get-activatable-pkg): Pref...
65f355ea0a ; Update my mail address
a3a69ec234 Fix connection-local user options handling (bug#63300)
240803cc3e Document 'startup-redirect-eln-cache'
026afb2298 ; * etc/PROBLEMS: Entry about crashes due to anti-virus (...
bcc222251e Fix `emacs-lisp-native-compile-and-load' for C-h f (bug#5...
07c8211ca3 Add 'infer' as a keyword to typescript-ts-mode (bug#63880)
dd2d8ff2f5 ; * etc/NEWS: Mention the issue with PGTK on WSL (bug#633...
fa8135f891 Revert changes to the order in which package descs are lo...
27fcfa2c0a ; * etc/NEWS: Improve instructions for grammar libraries.
2a84ab905c Handle point in last file-name component in minibuffer co...
05f25238b7 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
4bc043ff45 Avoid asking redundant question in emacsbug.el
2eadf328d0 * test/infra/Dockerfile.emba (emacs-base): Don't install ...
583ba1db7e typescript-ts-mode: Add a rule for function_signature

# Conflicts:
#	etc/NEWS
#	lisp/minibuffer.el
2023-06-10 06:42:43 -04:00
Eli Zaretskii
3de8ed09ab Avoid infinite recursion in 'window_wants_header_line'
* src/window.c (null_header_line_format): Avoid infinite
recursion by disallowing :eval on recursive calls.
(Bug#63988)
2023-06-10 11:48:37 +03:00
Eli Zaretskii
9855a3ea74 ; * src/xdisp.c (redisplay_tool_bar): Fix a typo in a comment. 2023-06-09 19:19:07 +03:00
Amritpal Singh
46b6d17505 Support files compressed by 'pigz'
* src/decompress.c (md5_gz_stream): Check 'stream.avail_in' as
well.  (Bug#63832)

Copyright-paperwork-exempt: yes
2023-06-08 12:40:44 +03:00
Andrea Corallo
65f355ea0a ; Update my mail address
* lisp/emacs-lisp/comp-cstr.el: Update author mail.
* lisp/emacs-lisp/comp.el: Likewise.
* src/comp.c: Likewise.
* test/lisp/emacs-lisp/comp-cstr-tests.el: Likewise.
* test/src/comp-resources/comp-test-funcs-dyn.el: Likewise.
* test/src/comp-resources/comp-test-funcs.el: Likewise.
* test/src/comp-resources/comp-test-pure.el: Likewise.
* test/src/comp-tests.el: Likewise.
2023-06-08 11:04:10 +02:00
Eli Zaretskii
ef8485ad05 ; * src/window.c (window_wants_header_line): Shut up bogus GCC warning. 2023-06-06 21:27:27 +03:00
Po Lu
229f0b8dd3 ; Fix coding style in just installed change
* src/window.c (window_wants_header_line): Fix whitespace.
2023-06-06 21:05:13 +08:00
Eli Zaretskii
05c2be28a3 ; Fix last change
* src/window.c (window_wants_header_line): Fix whitespace and
commentary in last change.  (Bug#63825)
2023-06-06 15:15:34 +03:00
Eshel Yaron
4f66cbbfe5 Avoid header line with some empty non-nil formats
Allow the value of 'header-line-format' to indicate that no header
line should be displayed when it trivially yields 'nil', even if it is
not plain 'nil'.  Previously, any non-nil 'header-line-format'
resulted in a (possibly empty) header line.  This change adds some
flexibility by also taking a non-nil value of 'header-line-format' to
mean that no header line should be displayed if it's a list whose
'car' is a symbol and either that symbol is ':eval' and the second
list element evaluates to 'nil', or the symbol's value as a variable
is 'nil' or void.
(Bug#63825)

* src/xdisp.c (safe_eval_inhibit_quit): New function.
* src/lisp.h (safe_eval_inhibit_quit): Declare it.
* src/window.c (null_header_line_format): New function.
(window_wants_header_line): Use it.

* doc/lispref/modes.texi (Header Line): Update to reflect new
conditions for displaying a window's header line.

* etc/NEWS: Announce updated treatment of 'header-line-format'.
2023-06-06 15:08:31 +03:00
Eli Zaretskii
9a28600a97 Fix bug with point-adjustment after M-x COMMAND
* src/keyboard.c (command_loop_1): Preserve 'last_point_position'
across command execution, to avoid bugs in
'adjust_point_for_property' if the command invokes
'recursive-edit'.  Reported by Mats Lidell <matsl@gnu.org>.
2023-06-05 15:57:05 +03:00
Eli Zaretskii
919f3a7aae Merge from origin/emacs-29
95ee5477e1 ; * src/lread.c (read0, skip_lazy_string): Fix commentary...
2023-06-03 05:47:29 -04:00
Eli Zaretskii
95ee5477e1 ; * src/lread.c (read0, skip_lazy_string): Fix commentary again. 2023-05-26 15:11:35 +03:00