aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* | Fix vertical-motion when an image is at EOL under word-wrapJD Smith2025-06-071-4/+15
| | | | | | | | | | | | * src/xdisp.c (move_it_in_display_line_to): Fix return value under word-wrap when a screen line ends with an image that "just fits". (Bug#67604)
* | Improve documentation of treesit "thing"Eli Zaretskii2025-06-051-9/+13
| | | | | | | | | | | | | | | | | | | | * src/treesit.c (syms_of_treesit): * lisp/treesit.el (treesit-cycle-sexp-type): (treesit-thing-at, treesit-thing-at-point): Doc fixes. * doc/lispref/parsing.texi (User-defined Things): Improve documentation of treesit "thing" and related functions; add cross-references and indexing.
* | ; * src/nsterm.m (ns_draw_stretch_glyph_string): Fix a thinko (bug#78654).Eli Zaretskii2025-06-041-1/+1
| |
* | Fix NS port screen geometry report (bug#76051)Alan Third2025-06-021-22/+9
| | | | | | | | | | * src/nsfns.m (Fns_display_monitor_attributes_list): Fix the arithmetic to calculate the origin of the visible frame.
* | Fix ns_make_monitor_attribute_list (bug#76691)shipmints2025-06-021-95/+19
| | | | | | | | | | | | | | | | | | | | | | This is the NS implementation for 'display-monitor-attributes-list'. Change implementation from IORegistry to direct introspection of NSScreen. * src/nsfns.m (ns_make_monitor_attribute_list): Use localizedName selector on NSScreen. For anonymous displays, synthesize names of the form ("%dx%d@%d,%d" width height x y). (ns_get_name_from_ioreg) (ns_screen_name): Removed.
* | ; Avoid compiler warnings in MinGW buildsEli Zaretskii2025-06-0112-101/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/w32proc.c (child_proc_count, child_procs) (Vw32_valid_locale_ids, Vw32_valid_codepages): Declare 'static'. * src/w32inevt.c (faked_key): Declare. * src/w32heap.c (data_region_base, data_region_end, heap): Declare. * src/w32console.c (keyboard_handle, current_tty, cost): Declare. * src/w32.c: Declare function pointers 'static'. (excptr, excprec, ctxrec, g_b_init_compare_string_w) (g_b_init_debug_break_process, LookupAccountSid_Name, dir_static) (winsock_lib, _wsa_errlist): Declare. * src/w32uniscribe.c: Declare function pointers 'static'. (uniscribe_available, harfbuzz_available): Declare. * src/w32term.c: Declare function pointers 'static'. (vertical_scroll_bar_min_handle, horizontal_scroll_bar_min_handle) (vertical_scroll_bar_top_border) (vertical_scroll_bar_bottom_border) (horizontal_scroll_bar_left_border) (horizontal_scroll_bar_right_border, last_scroll_bar_drag_pos): Declare 'static'. * src/w32xfns.c (input_available, interrupt_handle, lpHead) (lpTail, nQueue): Declare. * src/w32menu.c: Declare function pointers 'static'. * src/w32term.h (w32_frame_parm_handlers): Declare. * src/w32fns.c: Declare function pointers 'static'. (w32_darkmode, w32_color_map, deferred_msg_head, tip_frame) (tip_timer, tip_last_string, tip_last_frame, tip_last_parms): * src/lisp.h (daemon_type): Declare for WINDOWSNT as well. * nt/cmdproxy.c (escape_char, child, interactive): Declare 'static'. (Bug#78193)
* | ; * src/fns.c (fixnum_float_cmp): Don't use non-ASCII characters.Eli Zaretskii2025-05-311-1/+1
| |
* | Have 'delete-frame' delete initial daemon frame only if FORCE is non-nilMartin Rudalics2025-05-291-4/+7
| | | | | | | | | | | | | | | | | | | | | | * 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.
* | Fix unsafe SDATA usage in print.c (bug#78590)Pip Cet2025-05-281-4/+10
| | | | | | | | | | | | | | * 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'.
* | Do child frame shortcut only on Cocoa (bug#78616)Gerd Möllmann2025-05-281-1/+1
| | | | | | | | | | * src/nsterm.m ([EmacsWindow constrainFrameRect:toScreen:]): Return early for child frames only on Cocoa.
* | Fix DST time calculations on MS-WindowsEli Zaretskii2025-05-263-0/+30
| | | | | | | | | | | | | | * 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)
* | Speed up loading modulesLin Sun2025-05-241-1/+17
| | | | | | | | | | | | | | * 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.)
* | ; Fix documentation of a recent commitEli Zaretskii2025-05-241-6/+7
| | | | | | | | | | | | | | | | | | | | * 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.
* | Add load-path-filter-function and use it to optimize loadingSpencer Baugh2025-05-231-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Improve reporting of language-grammar library ABI version mismatchEli Zaretskii2025-05-181-4/+14
| | | | | | | | | | | | | | | | | | * 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>.
* | Prevent double frees in closing fonts provided by the Haiku font driverPo Lu2025-05-181-11/+18
| | | | | | | | | | | | * 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)
* | * src/lread.c (read0): Don't allow radix 0 or 1.Mattias Engdegård2025-05-171-1/+1
| | | | | | | | This was just a silly mistake introduced in Emacs 29. Found by Pip Cet.
* | ; Fix wording of recently-added documentationEli Zaretskii2025-05-151-3/+3
| | | | | | | | | | | | | | * src/eval.c (Fset_buffer_local_toplevel_value) (Fbuffer_local_toplevel_value): * doc/lispref/variables.texi (Default Value): Fix wording of documentation.
* | default_toplevel_binding, local_toplevel_binding: Loop upwardsSean Whitton2025-05-151-12/+8
| | | | | | | | | | | | * 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.
* | New top-level buffer-local value functionsSean Whitton2025-05-152-1/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | ; * src/buffer.c (Fgenerate_new_buffer_name): Fix typo.Sean Whitton2025-05-131-2/+2
| |
* | Avoid unnecessary calls to GetFileAttributes on MS-WindowsEli Zaretskii2025-05-111-51/+75
| | | | | | | | | | | | | | | | | | * 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)
* | Support sub-second file time-stamps on MS-WindowsEli Zaretskii2025-05-111-12/+32
| | | | | | | | | | | | | | | | | | | | * 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.
* | Fix infinite looping in 'next-frame' and associates (Bug#77985)Martin Rudalics2025-05-091-30/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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'.
* | ; * src/pdumper.c (dump_buffer): Update hash.Yuan Fu2025-05-071-1/+1
| |
* | Fix compilation on Android 35 and on TermuxPo Lu2025-05-061-0/+11
| | | | | | | | | | | | | | | | | | * 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.
* | Synchronize Android and Haiku terminal frontends with XPo Lu2025-05-053-8/+7
| | | | | | | | | | | | | | * src/androidterm.c (handle_one_android_event): * src/haikuterm.c (haiku_read_socket): Port recent changes to handle_one_xevent.
* | Fix support of 'mouse-highlight' on X (bug#78218)Gerd Möllmann2025-05-041-5/+6
| | | | | | | | | | * src/xterm.c (handle_one_xevent): Fix comparison with tool-bar and tab-bar window.
* | Add line-column tracking for tree-sitterYuan Fu2025-05-039-68/+965
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Fix support of 'mouse-highlight' on NS (bug#78218)Gerd Möllmann2025-05-041-2/+4
| | | | | | | | | | * src/nsterm.m: ([EmacsView keyDown:]): Add missing '!' in if-condition. Check tab_bar_window as other window systems do.
* | Avoid warnings about 'lexical-binding' in 'eval-buffer'Eli Zaretskii2025-05-031-5/+11
| | | | | | | | | | | | * 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)
* | Fix support of 'mouse-highlight' on MS-Windows consoleEli Zaretskii2025-05-031-1/+10
| | | | | | | | | | * src/w32inevt.c (w32_console_read_socket): Support numerical value of 'mouse-highlight'. (Bug#78218)
* | (decode_coding): Avoid nested *-change-functions (bug#78042)Stefan Monnier2025-05-021-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | * 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).
* | Update tree-sitter subroutine in Fsubst_char_in_regionYuan Fu2025-04-281-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Don't escape "." in `prin1' when followed by a letterSpencer Baugh2025-04-281-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 637dde4aba921435f78d0de769ad74c4f3230aa6, which removed some unnecessary escaping of "." and "?" when printing symbols in prin1. (Actually, if we always escaped "?" (which was the case before 637dde4aba92) then "." only ever needs to be escaped when string_to_number returns non-nil. So 637dde4aba92 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.
* | ; * src/w32dwrite.c: Minor coding style adjustments.Po Lu2025-04-241-11/+11
| |
* | ; * src/w32dwrite.c (text_extents_internal): Fix typos in comments.Eli Zaretskii2025-04-231-2/+2
| |
* | w32: change the way text is measured when using DirectWriteCecilio Pardo2025-04-231-6/+253
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* | * src/androidfns.c (Fx_display_grayscale_p): Fix value on color displays.Po Lu2025-04-221-2/+1
| |
* | Realloc less often in adjust_glyph_matrix (bug#77961)Gerd Möllmann2025-04-221-7/+11
| | | | | | | | | | * src/dispnew.c (adjust_glyph_matrix): Only xnrealloc when the glyph matrix got wider or taller.
* | ; Fix thinko in recent commitStefan Kangas2025-04-221-1/+1
| |
* | Pacify GCC 15 -Wunterminated-string-initializationPaul Eggert2025-04-192-2/+2
| | | | | | | | | | | | * src/fns.c (hexbuf_digest): * src/json.c (json_out_string): Add ATTRIBUTE_NONSTRING to character arrays that are not strings.
* | Pacify GCC 15 -Wanalyzer-null-dereferencePaul Eggert2025-04-191-0/+2
| | | | | | | | | | | | * 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).
* | Avoid name clashes with static GnuTLSPaul Eggert2025-04-1915-45/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Pacify "statement not reached" in value_cmpPaul Eggert2025-04-191-3/+1
| | | | | | | | | | Problem found by Oracle Developer Studio 12.6. * src/fns.c (value_cmp): Omit unnecessary goto.
* | Fix libsrc assumption in src/Makefile.inPaul Eggert2025-04-191-1/+1
| | | | | | | | * src/Makefile.in (ETAGS): Don’t assume $(libsrc) = ../lib-src.
* | ; Delete superfluous comments explaining config.hStefan Kangas2025-04-197-16/+0
| | | | | | | | | | | | | | | | | | | | * 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.
* | xterm.c: Move GTK3-specific variables into narrower scopesStefan Kangas2025-04-191-44/+15
| | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge from savannah/emacs-30Yuan Fu2025-04-181-4/+9
|\ \ | |/ | | | | | | | | | | | | | | | | | | 01d4eb3dd42 ; Improve doc string of 'insert-char' 93ad8407ed8 * admin/notes/emba: Fix docker build instruction. b901290ae7f * doc/lispref/text.texi (Margins): Grammar fix. 16855c89dde Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/... 8792d3431b1 Backport: Fix tree-sitter tests on Emba # Conflicts: # test/infra/Dockerfile.emba
| * ; Improve doc string of 'insert-char'Eli Zaretskii2025-04-181-4/+9
| | | | | | | | | | * src/editfns.c (Finsert_char): Doc fix. Suggested by Lactose ‎ <lactose@allthingslinux.org> (bug#77889).