Commit graph

50529 commits

Author SHA1 Message Date
Martin Rudalics
433a031d24 Have 'delete-frame' delete initial daemon frame only if FORCE is non-nil
* src/frame.c (delete_frame): Delete initial daemon frame only
if FORCE is non-nil (Bug#78583).
(Fdelete_frame): Rewrite doc-string to mention that it can
delete an initial daemon frame if and only if FORCE is non-nil.
* etc/NEWS:
* doc/lispref/frames.texi (Deleting Frames): Mention that
'delete-frame' can delete an initial daemon frame if and only if
FORCE is non-nil.
2025-05-29 11:33:28 +02:00
Pip Cet
d14fc6b75f Fix unsafe SDATA usage in print.c (bug#78590)
* src/print.c (print_string_1): Renamed from 'print_string', with an
extra argument to disable nonascii escaping.
(print_string): New function.
(print_object): Use 'print_string_1', not 'strout'.
2025-05-28 19:22:57 +00:00
Gerd Möllmann
6279a9e8ef Do child frame shortcut only on Cocoa (bug#78616)
* src/nsterm.m ([EmacsWindow constrainFrameRect:toScreen:]):
Return early for child frames only on Cocoa.
2025-05-28 12:59:50 +02:00
Eli Zaretskii
3b5226af3f Fix DST time calculations on MS-Windows
* src/w32.c (w32_fix_tzset): New function.
* src/timefns.c (emacs_localtime_rz, tzlookup):
* src/w32.c (sys_localtime): Call 'w32_fix_tzset'.
(Bug#11281)
2025-05-26 19:53:21 +03:00
Lin Sun
9f1cec6297 Speed up loading modules
* src/lread.c (get-load-suffixes): Don't try loading modules with
suffixes from 'jka-compr-load-suffixes', since loading of
compressed shared libraries is not supported (so attempt to look
for them is just waste of cycles).  (Bug#78416.)
2025-05-24 12:43:25 +03:00
Eli Zaretskii
da174e4a15 ; Fix documentation of a recent commit
* etc/NEWS:
* doc/lispref/loading.texi (How Programs Do Loading): Document the
new variable and function.

* src/lread.c (load-path-filter-function):
* lisp/startup.el (load-path-filter-cache-directory-files)
(load-path-filter--cache): Doc fixes.
2025-05-24 10:23:11 +03:00
Spencer Baugh
e5218df144 Add load-path-filter-function and use it to optimize loading
When there are many directories on load-path, the part of load which
searches load-path can become very slow.  By filtering load-path up
front to only contain directories which are likely to contain the
searched-for file, load becomes much faster.

This can be set in early-init.el for maximum effect.

* lisp/startup.el (load-path-filter--cache)
(load-path-filter-cache-directory-files): Add.
* src/lread.c (Fload): Call load-path-filter-function.
(syms_of_lread): Add load-path-filter-function.
2025-05-23 21:41:14 -04:00
Eli Zaretskii
38789e9a28 Improve reporting of language-grammar library ABI version mismatch
* lisp/treesit.el (treesit-ready-p): More accurate wording of
message when grammar library fails to load.

* src/treesit.c (treesit_load_language): Improve message when
reporting library ABI version mismatch.  Suggested by Soham
Gumaste <sohamg2@gmail.com>.
2025-05-18 09:05:07 +03:00
Po Lu
b9b52f0092 Prevent double frees in closing fonts provided by the Haiku font driver
* src/haikufont.c (haikufont_close): Clear INFO->metrics,
glyphs, be_font after they are released and do not attempt to
access them if NULL.  (bug#77478)
2025-05-18 08:46:36 +08:00
Mattias Engdegård
e888bd990d * src/lread.c (read0): Don't allow radix 0 or 1.
This was just a silly mistake introduced in Emacs 29.  Found by Pip Cet.
2025-05-17 14:20:51 +02:00
Eli Zaretskii
db198e0e59 ; Fix wording of recently-added documentation
* src/eval.c (Fset_buffer_local_toplevel_value)
(Fbuffer_local_toplevel_value):
* doc/lispref/variables.texi (Default Value): Fix wording of
documentation.
2025-05-15 16:29:27 +03:00
Sean Whitton
f70bb4d767 default_toplevel_binding, local_toplevel_binding: Loop upwards
* src/eval.c (default_toplevel_binding, local_toplevel_binding):
Loop upwards, not downwards, given that we want the earliest
relevant binding present in the stack.
2025-05-15 13:40:04 +01:00
Sean Whitton
45627ca7cc New top-level buffer-local value functions
* src/eval.c (local_toplevel_binding)
(Fbuffer_local_toplevel_value, Fset_buffer_local_toplevel_value)
(syms_of_eval): New functions.
* doc/lispref/variables.texi (Default Value):
* lisp/subr.el (setq-local):
* etc/NEWS: Document them.
* test/lisp/emacs-lisp/lisp-tests.el
(core-elisp-tests-4-toplevel-values): New test.
* lisp/progmodes/xref.el (xref--show-xref-buffer)
(xref-show-definitions-buffer-at-bottom):
* lisp/vc/vc-dispatcher.el (vc-setup-buffer):
Use set-buffer-local-toplevel-value.
2025-05-15 13:40:04 +01:00
Sean Whitton
e17001b2e1 ; * src/buffer.c (Fgenerate_new_buffer_name): Fix typo. 2025-05-13 10:13:26 +01:00
Eli Zaretskii
882c849034 Avoid unnecessary calls to GetFileAttributes on MS-Windows
* src/w32.c (access_attrs): New function, refactored from
'faccessat'.
(faccessat): Call 'access_attrs' early to determine whether the
file doesn't exist, and if so, avoid calling 'chase_symlinks'.
Also avoid calling 'chase_symlinks' if it is known that the file
cannot be a symlink, given its attributes.  (Bug#78341)
2025-05-11 19:27:13 +03:00
Eli Zaretskii
3975094f1d Support sub-second file time-stamps on MS-Windows
* nt/inc/sys/stat.h (struct stat): New members for nsec part of
file times.

* lib-src/ntlib.c (convert_time):
* src/w32.c (convert_time): Accept an additional argument
TIME_NSEC and set it to the sub-second part of time.  All callers
changed.
2025-05-11 13:33:24 +03:00
Martin Rudalics
0041873502 Fix infinite looping in 'next-frame' and associates (Bug#77985)
* src/frame.c (next_frame): Rewrite to avoid infinite looping if
FRAME itself does not qualify as candidate frame (Bug#77985).
(Fnext_frame, Fprevious_frame): Adjust do-strings.
* lisp/frame.el (other-frame): Adjust doc-string.
(frame-list-1): New function.
(make-frame-names-alist): Rewrite using 'frame-list-1' instead
of 'next-frame' (Bug#77985).
(delete-other-frames): Rewrite using 'frame-list' instead of
'next-frame'.
* doc/lispref/frames.texi (Finding All Frames): Minor
clarifications for 'frame-list' and 'next-frame'.
2025-05-09 09:36:00 +02:00
Yuan Fu
a918f9e640
; * src/pdumper.c (dump_buffer): Update hash. 2025-05-07 20:14:21 -07:00
Po Lu
fa05cfd445 Fix compilation on Android 35 and on Termux
* configure.ac (gl_cv_onwards_func_tzalloc): Define to "future
OS version" on Android API 35 and later.
Detect posix_spawn* by means of gl_CHECK_FUNCS_ANDROID.

* src/conf_post.h (tzalloc, tzfree): Define to non-conflicting
names on Android 35 and later.
2025-05-06 22:29:46 +08:00
Po Lu
b97b3b057c Synchronize Android and Haiku terminal frontends with X
* src/androidterm.c (handle_one_android_event):

* src/haikuterm.c (haiku_read_socket): Port recent changes to
handle_one_xevent.
2025-05-05 08:51:48 +08:00
Gerd Möllmann
6ccfc89778 Fix support of 'mouse-highlight' on X (bug#78218)
* src/xterm.c (handle_one_xevent): Fix comparison with tool-bar
and tab-bar window.
2025-05-04 08:18:49 +02:00
Yuan Fu
1897da0b59
Add line-column tracking for tree-sitter
Add line-column tracking for tree-sitter parsers.  Copied from
comments in treesit.c:

   Technically we had to send tree-sitter the line and column
   position of each edit.  But in practice we just send it dummy
   values, because tree-sitter doesn't use it for parsing and
   mostly just carries the line and column positions around and
   return it when e.g. reporting node positions[1].  This has
   been working fine until we encountered grammars that actually
   utilizes the line and column information for
   parsing (Haskell)[2].

   [1] https://github.com/tree-sitter/tree-sitter/issues/445
   [2] https://github.com/tree-sitter/tree-sitter/issues/4001

   So now we have to keep track of line and column positions and
   pass valid values to tree-sitter.  (It adds quite some
   complexity, but only linearly; one can ignore all the linecol
   stuff when trying to understand treesit code and then come
   back to it later.)  Eli convinced me to disable tracking by
   default, and only enable it for languages that needs it.  So
   the buffer starts out not tracking linecol.  And when a
   parser is created, if the language is in
   treesit-languages-require-line-column-tracking, we enable
   tracking in the buffer, and enable tracking for the parser.
   To simplify things, once a buffer starts tracking linecol, it
   never disables tracking, even if parsers that need tracking
   are all deleted; and for parsers, tracking is determined at
   creation time, if it starts out tracking/non-tracking, it
   stays that way, regardless of later changes to
   treesit-languages-require-line-column-tracking.

   To make calculating line/column positons fast, we store
   linecol caches for begv, point, and zv in the
   buffer (buf->ts_linecol_cache_xxx); and in the parser object,
   we store linecol cache for visible beg/end of that parser.

   In buffer editing functions, we need the linecol for
   start/old_end/new_end, those can be calculated by scanning
   newlines (treesit_linecol_of_pos) from the buffer point
   cache, which should be always near the point.  And we usually
   set the calculated linecol of new_end back to the buffer
   point cache.

   We also need to calculate linecol for the visible_beg/end for
   each parser, and linecol for the buffer's begv/zv, these
   positions are usually far from point, so we have caches for
   all of them (in either the parser object or the buffer).
   These positions are far from point, so it's inefficient to
   scan newlines from point to there to get up-to-date linecol
   for them; but in the same time, because they're far and
   outside the changed region, we can calculate their change in
   line and column number by simply counting how much newlines
   are added/removed in the changed
   region (compute_new_linecol_by_change).

* doc/lispref/parsing.texi (Using Parser): Mention line-column
tracking in manual.
* etc/NEWS: Add news.
* lisp/treesit.el:
(treesit-languages-need-line-column-tracking): New variable.
* src/buffer.c: Include treesit.h (for TREESIT_EMPTY_LINECOL).
(Fget_buffer_create):
(Fmake_indirect_buffer): Initialize new buffer fields.
(Fbuffer_swap_text): Add new buffer fields.
* src/buffer.h (ts_linecol): New struct.
(buffer): New buffer fields.
(BUF_TS_LINECOL_BEGV):
(BUF_TS_LINECOL_POINT):
(BUF_TS_LINECOL_ZV):
(SET_BUF_TS_LINECOL_BEGV):
(SET_BUF_TS_LINECOL_POINT):
(SET_BUF_TS_LINECOL_ZV): New inline functions.
* src/casefiddle.c (casify_region): Record linecol info.
* src/editfns.c (Fsubst_char_in_region):
(Ftranslate_region_internal):
(Ftranspose_regions): Record linecol info.
* src/insdel.c (insert_1_both):
(insert_from_string_1):
(insert_from_gap_1):
(insert_from_buffer):
(replace_range):
(del_range_2): Record linecol info.
* src/treesit.c (TREESIT_BOB_LINECOL):
(TREESIT_EMPTY_LINECOL):
(TREESIT_TS_POINT_1_0): New constants.
(treesit_debug_print_linecol):
(treesit_buf_tracks_linecol_p):
(restore_restriction_and_selective_display):
(treesit_count_lines):
(treesit_debug_validate_linecol):
(treesit_linecol_of_pos):
(treesit_make_ts_point):
(Ftreesit_tracking_line_column_p):
(Ftreesit_parser_tracking_line_column_p): New functions.
(treesit_tree_edit_1): Accept real TSPoint and pass to
tree-sitter.
(compute_new_linecol_by_change): New function.
(treesit_record_change_1): Rename from treesit_record_change,
handle linecol if tracking is enabled.
(treesit_linecol_maybe): New function.
(treesit_record_change): New wrapper around
treesit_record_change_1 that handles some boilerplate and sets
buffer state.
(treesit_sync_visible_region): Handle linecol if tracking is
enabled.
(make_treesit_parser): Setup parser's linecol cache if tracking
is enabled.
(Ftreesit_parser_create): Enable tracking if the parser's
language requires it.
(Ftreesit__linecol_at):
(Ftreesit__linecol_cache_set):
(Ftreesit__linecol_cache): New functions for debugging and
testing.
(syms_of_treesit): New variable
Vtreesit_languages_require_line_column_tracking.
* src/treesit.h (Lisp_TS_Parser): New fields.
(TREESIT_BOB_LINECOL):
(TREESIT_EMPTY_LINECOL): New constants.
* test/src/treesit-tests.el (treesit-linecol-basic):
(treesit-linecol-search-back-across-newline):
(treesit-linecol-col-same-line):
(treesit-linecol-enable-disable): New tests.
* src/lisp.h: Declare display_count_lines.
* src/xdisp.c (display_count_lines): Remove static keyword.
2025-05-03 22:14:03 -07:00
Gerd Möllmann
159e3a981e Fix support of 'mouse-highlight' on NS (bug#78218)
* src/nsterm.m: ([EmacsView keyDown:]): Add missing '!' in
if-condition.  Check tab_bar_window as other window systems do.
2025-05-04 06:39:22 +02:00
Eli Zaretskii
8a097aede5 Avoid warnings about 'lexical-binding' in 'eval-buffer'
* src/lread.c (Feval_buffer): Don't emit a lexbind warning if the
buffer already has a local value of 'lexical-binding'.  Doc fix.
(Bug#77883)
2025-05-03 16:26:44 +03:00
Eli Zaretskii
c31f23016c Fix support of 'mouse-highlight' on MS-Windows console
* src/w32inevt.c (w32_console_read_socket): Support numerical
value of 'mouse-highlight'.  (Bug#78218)
2025-05-03 14:07:27 +03:00
Stefan Monnier
9048fcf22c (decode_coding): Avoid nested *-change-functions (bug#78042)
* src/coding.c (decode_coding): Avoid nested *-change-functions (bug#78042).

* test/src/editfns-tests.el (sanity-check-change-functions-before)
(sanity-check-change-functions-after): Record notifications in
`sanity-check-change-functions-op`.
(sanity-check-change-functions-with-op): Don't rely on
`sanity-check-change-functions-op` always holding only the `op`.
(sanity-check-change-functions-errors): Include the sequence of
notifications in the error info.
(editfns-tests--before/after-change-functions): Add tests for (bug#78042).
2025-05-02 17:06:09 -04:00
Yuan Fu
3c47139b8f
Update tree-sitter subroutine in Fsubst_char_in_region
Some explanation: Fsubst_char_in_region used to have a branch,
one branch path calls replace_range, one branch path modifies
the buffer directly.  replace_range already calls
treesit_record_change within it, so we needed to make sure we
only call treesit_record_change in the other branch path.

After I added the call to treesit_record_change, some changes
are made to Fsubst_char_in_region, and the branch was removed.
So no wonder Stefan had the confusion and wrote the FIXME note.

Now that the branch is gone, we can indeed call
treesit_record_change in the end like signal_after_change.

* src/editfns.c (Fsubst_char_in_region): Move to end.
2025-04-28 23:21:36 -07:00
Spencer Baugh
21e340494a Don't escape "." in `prin1' when followed by a letter
Among other users, let-alist widely uses symbols which start with a ".".
Make those symbols print more nicely by tweaking the escaping rules in
print_object to not escape a leading "." followed by a letter.  This is
a conservative change to avoid constraining future lexer changes.

This is a followup to 637dde4aba, which
removed some unnecessary escaping of "." and "?" when printing symbols
in prin1.  (Actually, if we always escaped "?" (which was the case
before 637dde4aba) then "." only ever needs to be escaped when
string_to_number returns non-nil.  So 637dde4aba could have just
dropped the escaping of "." with no other changes, if it didn't also
remove escaping of "?")

* src/print.c (print_object): Don't escape "." as the first
character in a symbol if followed by a letter. (bug#77656).
* test/src/print-tests.el (test-dots): Update for new behavior.
2025-04-28 13:46:40 -04:00
Po Lu
4b7816fc80 ; * src/w32dwrite.c: Minor coding style adjustments. 2025-04-24 09:04:33 +08:00
Eli Zaretskii
d3f1f4923f ; * src/w32dwrite.c (text_extents_internal): Fix typos in comments. 2025-04-23 17:29:20 +03:00
Cecilio Pardo
0548059289 w32: change the way text is measured when using DirectWrite
Now the glyph outline is inspected directly to get its real size,
as the direct measuring functions give generic values for some
fonts.
* src/w32dwrite.c (data structures): Added data structures from
header files that are not present in the 32bit MinGW build
environment.
(text_extents_internal): Call GetGlyphRunOutline to get exact
glyph vertical bounds.  Add new parameter to make this optional
if case that information is not required.
(w32_dwrite_text_extents, w32_initialize_direct_write)
(w32_dwrite_draw): New parameter for 'text_extents_internal'.
(Bug#77171)
2025-04-23 17:22:14 +03:00
Po Lu
057e990fba * src/androidfns.c (Fx_display_grayscale_p): Fix value on color displays. 2025-04-22 20:56:48 +08:00
Gerd Möllmann
871ec9615a Realloc less often in adjust_glyph_matrix (bug#77961)
* src/dispnew.c (adjust_glyph_matrix): Only xnrealloc when the
glyph matrix got wider or taller.
2025-04-22 11:38:04 +02:00
Stefan Kangas
45e849bddc ; Fix thinko in recent commit 2025-04-22 05:53:35 +02:00
Paul Eggert
e2fb12a40c Pacify GCC 15 -Wunterminated-string-initialization
* src/fns.c (hexbuf_digest):
* src/json.c (json_out_string):
Add ATTRIBUTE_NONSTRING to character arrays that are not strings.
2025-04-19 19:31:26 -07:00
Paul Eggert
67ae179008 Pacify GCC 15 -Wanalyzer-null-dereference
* src/emacs.c (find_emacs_executable): Add an eassume.
This pacifies -Wanalyzer-null-dereference with gcc (GCC) 15.0.1
20250329 (Red Hat 15.0.1-0).
2025-04-19 19:31:26 -07:00
Paul Eggert
c8eed90eb4 Avoid name clashes with static GnuTLS
Work around a bug in GnuTLS 3.7.11 and earlier: when built
statically, its mistakenly exports symbols hash_lookup and
hash_string, which collide with Emacs symbols of the same name,
preventing temacs from linking statically.  Problem reported by
Greg A. Woods (Bug#77476).

Because GnuTLS never uses hash_lookup or hash_string this issue
ordinarily doesn’t seem to prevent temacs from linking to GnuTLS
on GNU/Linux, as it’s linked dynamically and the dynamic linker
never needs to resolve references to either symbol.  However, I
suppose a clash or bug could occur even with dynamic linking if
Emacs later loads a module that uses either symbol.

Although GnuTLS should be fixed, Emacs should link statically to
current and older GnuTLS versions in the meantime, and it should
avoid potential problems with dynamic linking.  Renaming the two
clashing names is an easy way to do this.  For consistency with
the new name for hash_lookup, also rename hash_lookup_with_hash
and hash_lookup_get_hash.

* src/fns.c (hash_find_with_hash): Rename from hash_lookup_with_hash.
(hash_find): Rename from hash_lookup.
(hash_find_get_hash): Rename from hash_lookup_get_hash.
(hash_char_array): Rename from hash_string.
All uses changed.
2025-04-19 19:31:26 -07:00
Paul Eggert
4fa10b5760 Pacify "statement not reached" in value_cmp
Problem found by Oracle Developer Studio 12.6.
* src/fns.c (value_cmp): Omit unnecessary goto.
2025-04-19 19:31:24 -07:00
Paul Eggert
03a1df3799 Fix libsrc assumption in src/Makefile.in
* src/Makefile.in (ETAGS): Don’t assume $(libsrc) = ../lib-src.
2025-04-19 19:31:24 -07:00
Stefan Kangas
fa4e686148 ; Delete superfluous comments explaining config.h
* src/pgtkfns.c:
* src/pgtkim.c:
* src/pgtkmenu.c:
* src/pgtkselect.c:
* src/pgtkterm.c:
* src/termcap.c:
* src/tparam.c: Delete superfluous comments explaining config.h.
2025-04-19 10:39:05 +02:00
Stefan Kangas
177accc53d xterm.c: Move GTK3-specific variables into narrower scopes
Avoid declaring GTK3-specific variables in larger-than-necessary scopes,
especially under #ifdefs.  Instead, declare them where used.  This improves
readability and reduces #ifdef clutter without changing behavior.

* src/xterm.c: [HAVE_GTK3] (x_update_opaque_region):
(XTframe_up_to_date, x_new_focus_frame, handle_one_xevent)
(x_ignore_errors_for_next_request, x_stop_ignoring_errors): Clean up
variable declarations.
2025-04-19 10:39:05 +02:00
Yuan Fu
e7ca83a2f4
Merge from savannah/emacs-30
01d4eb3dd4 ; Improve doc string of 'insert-char'
93ad8407ed * admin/notes/emba: Fix docker build instruction.
b901290ae7 * doc/lispref/text.texi (Margins): Grammar fix.
16855c89dd Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/...
8792d3431b Backport: Fix tree-sitter tests on Emba

# Conflicts:
#	test/infra/Dockerfile.emba
2025-04-18 16:30:39 -07:00
Eli Zaretskii
01d4eb3dd4 ; Improve doc string of 'insert-char'
* src/editfns.c (Finsert_char): Doc fix.  Suggested by Lactose ‎
<lactose@allthingslinux.org> (bug#77889).
2025-04-18 14:10:19 +03:00
Stefan Kangas
6702a448c1 pgtk: Make x-display-grayscale-p return Qt
We already unconditionally claim that `xw-display-color-p`, which,
according to the docstring of this function, implies that we handle
grayscale too.

* src/pgtkfns.c (Fx_display_grayscale_p): Return Qt unconditionally.
2025-04-18 00:44:18 +02:00
Stefan Kangas
b05da1c3fc * src/pgtkfns.c (Fx_gtk_launch_uri): Improve docstring. 2025-04-17 23:54:23 +02:00
Stefan Kangas
4fcba8456e Delete duplicate docstrings in PGTK build
* src/pgtkfns.c (Fx_export_frames, Fx_create_frame)
(Fx_server_max_request_size, Fx_display_screens, Fx_display_mm_height)
(Fx_display_mm_width, Fx_display_backing_store, Fx_display_visual_class)
(Fx_display_save_under, Fx_open_connection, Fx_close_connection)
(Fx_display_list, Fxw_color_defined_p, Fxw_color_values)
(Fxw_display_color_p, Fx_display_grayscale_p, Fx_display_pixel_width)
(Fx_display_pixel_height, Fx_display_planes, Fx_display_color_cells)
(Fx_show_tip, Fx_hide_tip, Fx_file_dialog, Fx_select_font): Replace
duplicate docstrings with "SKIP" marker.  See the comment in doc.c.
* src/xfns.c (Fx_server_max_request_size, Fx_display_screens)
(Fx_display_backing_store, Fx_display_visual_class, Fx_file_dialog):
Update docstrings with details about the PGTK build.
2025-04-17 07:57:53 +02:00
Po Lu
0fc2fc9a4d Prevent unrelocated symbols with position from being dumped
* src/pdumper.c (dump_builtin_symbol_p): Test BARE_SYMBOL_P
\(object) rather than SYMBOLP to avoid depending on the value of
symbols_with_pos_enabled or depositing non-relocated references
to vectorlikes in the dump file.  Clarify commentary.
2025-04-17 09:33:38 +08:00
Stefan Monnier
4532fbefec (Freplace_region_contents): Treat point as insert-before marker
Experience suggests that it's more often useful to keep point
at the end of the replacement than it is to keep point at the
beginning of the replacement.
This also aligns the behavior of `replace-region-contents` with
that of `insert`.

* src/insdel.c (replace_range): Treat PT like an insert-before marker.
* src/editfns.c (Freplace_region_contents): Adjust docstring accordingly.
2025-04-16 10:15:16 -04:00
Jared Finder
8528249ee2 Show drag cursor on all window lines (mode, tab, header)
* lisp/ruler-mode.el (ruler-mode-map): Remove down-mouse-1
binding that conflicts with dragging header line.
* src/xdisp.c (note_mode_line_or_margin_highlight): Renamed
to...
(note_line_or_margin_highlight): ...new name since it applies to
any window line (mode, tab, header).  Set drag cursor for window
top lines.
(note_mouse_highlight): Update call to new name (bug#76084).
2025-04-15 21:52:47 +03:00
Po Lu
b455133450 Avoid performance regressions in unoptimized builds
* src/alloc.c (lisp_malloc): Declare val register.
2025-04-15 09:53:32 +08:00