summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Do not redundantly dump constant forwarding objectsPo Lu2025-03-291-66/+52
| | | | | | | | | | | | | | | | | | | | * src/pdumper.c (dump_fwd_int, dump_fwd_bool, dump_fwd_obj): Do not redundantly dump constant forwarding descriptors; restrict to dumping the objects being forwarded to. (dump_fwd_buffer_obj): Copy from the dump file into bss rather than load buffer forwarding descriptors from the dump file itself. (dump_fwd_kboard_obj): Delete function. (dump_fwd): Don't return offset of dumped objects. (dump_blv): Adjust correspondingly. (dump_pre_dump_symbol): Improve documentation. Record offset of forwarding objects in relation to `emacs_basis' rather than the dump file. (dump_symbol): Restore forwarding descriptors to their original values as static variables in Emacs. This reduces the size of dump files by an insignificant 2kb but facilitates certain kinds of watchpoints on platforms where ASLR cannot be disabled, e.g., Android.
* Miscellaneous correctionsPo Lu2025-03-282-3/+3
| | | | | | * src/buffer.h (BUF_PTR_BYTE_POS): Fix comment. * src/profiler.c (add_sample): Use BASE_EQ.
* ; Reorder initialization of module environment functions.Philipp Stephani2025-03-271-2/+2
| | | | | * src/emacs-module.c (initialize_environment): Reorder assignments to match declaration order in emacs-module.h.
* w32: fail gracefully when using invalid glyphs on DWriteCecilio Pardo2025-03-271-0/+8
| | | | | * src/w32dwrite.c (text_extents_internal): Return false instead of crashing with bad glyph indexes. (Bug#77196)
* Don't write to bottom-right cell on ttys with AutoWrap (bug#77233)Gerd Möllmann2025-03-271-2/+12
| | | | | * src/term.c (tty_write_glyphs): Handle case of writing only one character in the last column.
* Fix vertical cursor motion with wide images and line numbersEli Zaretskii2025-03-261-3/+5
| | | | | | * src/xdisp.c (produce_image_glyph): When cropping an image that exceeds the window's right edge, account for the screen estate taken by line-number display. (Bug#77217)
* Further amendments of child frame handling and documentationMartin Rudalics2025-03-261-9/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/frame.c (frame_subsumes_p): New static function (delete_frame): On ttys refuse to delete a frame that could be used as surrogate minibuffer frame by surviving frames. (store_frame_param): Make sure 'minibuffer' parameter does not reference a deleted window. If on a tty it references a live window, make sure its frame has the same root frame as the frame where the parameter shall be installed. Also on ttys make sure that storing the 'parent-frame' parameter does not assign a surrogate minibuffer frame a different root frame than that of any of its client frames. Further on ttys assert that making a child a new root frame gives it the dimensions of the terminal. (Fmouse_position_in_root_frame): Don't use XFRAME before it's clear that FRAME is a frame. * doc/lispref/elisp.texi (Top): Add menu for Child Frames section. * doc/lispref/frames.texi (Buffer Parameters): Mention that value 'child-frame' is not special for 'minibuffer' parameter on text terminals. (Visibility of Frames): Fix description of 'iconify-frame'. (Raising and Lowering): 'minibuffer-auto-raise' is an option. (Child Frames): Major rewrite using subsections. Explain new and deviant features on text terminals - menu bar access, reparenting, deleting, visibility and minibuffer-only child frames. * etc/NEWS: Remove remark that child frames cannot be arbitrarily reparented on ttys.
* Rename 'buffer-too-small' to 'memory-buffer-too-small'.Philipp Stephani2025-03-251-10/+10
| | | | | | | | | | | This clarifies that the error isn't talking about an editing buffer. * src/emacs-module.c (module_memory_buffer_too_small): Rename from 'module_buffer_too_small'. (module_copy_string_contents, module_extract_big_integer): Adapt callers. (syms_of_module): Rename symbol 'buffer-too-small' to 'memory-buffer-too-small'.
* Fix the DJGPP buildPo Lu2025-03-251-0/+4
| | | | | | | | | | | * msdos/emacs.djl (.bss): Guarantee that lread.o is 8-byte aligned. * msdos/sed2v2.inp (ALIGNOF_INT, ALIGNOF_LONG) (ALIGNOF_LONG_LONG): Correct typos. * src/term.c (tty_free_frame_resources): Synchronize with non-DOS variant.
* Mimic behavior of 'aref' when signalling out-of-range errors.Philipp Stephani2025-03-251-2/+1
| | | | | | | | | The convention used by 'aref' and friends is that for 'args-out-of-range', the error data is a list (SEQ INDEX). Use the same convention for the vector-related module functions. * src/emacs-module.c (check_vec_index): Use vector and index as error data.
* Don't use 'args-out-of-range' error for too-small buffers.Philipp Stephani2025-03-251-9/+18
| | | | | | | | | | | | 'args-out-of-range' means that some index argument isn't valid for a given sequence/range, which isn't the case here. Instead, define a new error symbol to mean "user-supplied buffer is too small." Since we never specified nor tested which error symbol was signalled in this case, changing it shouldn't cause severe breakages. * src/emacs-module.c (module_buffer_too_small): New helper function. (module_copy_string_contents, module_extract_big_integer): Use it. (syms_of_module): Define 'buffer-too-small' error symbol.
* Patch bug#77128Po Lu2025-03-231-0/+5
| | | | | * src/pgtkterm.c (pgtk_flash): Destroy `cr_surface_visible_bell' if still present. (bug#77128)
* Avoid rare crashes due to "C-g C-g" on TTY framesEli Zaretskii2025-03-231-2/+8
| | | | | * src/term.c (tty_send_additional_strings): Don't use SBYTES, as this function could be called in the middle of GC. (Bug#77205)
* ; * src/dispnew.c (check_window_matrix_pointers): Fix last change.Eli Zaretskii2025-03-231-0/+2
|
* Avoid rare segfaults in 'check_matrix_pointers'Eli Zaretskii2025-03-231-9/+13
| | | | | * src/dispnew.c (check_window_matrix_pointers): No-op if the window's frame not ready yet. (Bug#77200)
* Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacsEli Zaretskii2025-03-233-12/+14
|\
| * Reduce code duplication in ns_set_appearanceStefan Kangas2025-03-223-12/+14
| | | | | | | | | | | | | | * 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.
* | Avoid rare segfaults due to crazy creation of new child framesEli Zaretskii2025-03-221-2/+7
|/ | | | | | * src/dispnew.c (combine_updates, combine_updates_for_frame): Skip frames and child frames that were not yet completely made. (Bug#77046)
* Remove ctags programPaul Eggert2025-03-221-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Fix usage of string data pointers in xfaces.cEli Zaretskii2025-03-221-7/+11
| | | | | * src/xfaces.c (tty_defined_color): Don't use SSDATA pointers across calls to Lisp. (Bug#77046)
* Delete now unused constants in nsterm.hStefan Kangas2025-03-221-7/+0
| | | | | | * src/nsterm.h (NS_DUMPGLYPH_NORMAL, NS_DUMPGLYPH_CURSOR) (NS_DUMPGLYPH_FOREGROUND, NS_DUMPGLYPH_MOUSEFACE): Delete now unused constants.
* ; Clean up comments in nsterm.hStefan Kangas2025-03-221-27/+27
|
* Fix and document frame parameters for text terminals and child framesMartin Rudalics2025-03-222-29/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* Avoid infinite loop with images under 'display-line-numbers-mode'Eli Zaretskii2025-03-211-5/+5
| | | | | | | * 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)
* On tty frames restrict number of menu bar lines (Bug#77015)Martin Rudalics2025-03-191-10/+22
| | | | | * src/frame.c (set_menu_bar_lines): Make sure tty frames get only 0 or 1 menu bar line (Bug#77015).
* Ensure redisplay after re-parenting a tty child frame (Bug#77079)Martin Rudalics2025-03-181-0/+3
| | | | | | * 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).
* Fix generation of mouse position lists on the tool and tab barsPo Lu2025-03-181-6/+11
| | | | | | | | | * 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.
* ; * src/dispnew.c (adjust_glyph_matrix): Restore lost comment.Eli Zaretskii2025-03-171-0/+2
|
* ; * src/dispnew.c (adjust_glyph_matrix): Add comment (bug#77039).Eli Zaretskii2025-03-171-0/+2
|
* ; * etc/NEWS: Fix last change.Eli Zaretskii2025-03-171-3/+3
|
* Implement dragging and resizing of tty child framesMartin Rudalics2025-03-175-27/+215
| | | | | | | | | | | | | | | | | | | | | | | | | | * 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).
* Implement surrogate menu bars for tty child framesMartin Rudalics2025-03-172-26/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* Make sure to initialize glyph::frame to NULL (bug#77039)Gerd Möllmann2025-03-161-1/+2
| | | | | * src/dispnew.c (adjust_glyph_matrix): Clear glyph memory when enlarging window-system window glyph matrices.
* Correctly unload variable aliases.Jens Schmidt2025-03-161-0/+19
| | | | | | | | | | | * 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)
* Merge from savannah/emacs-30Po Lu2025-03-161-1/+7
|\ | | | | | | | | 2d5cf228186 Fix clipboard object handle leak on Android 3.1 to 11.0 b6b4a080a3a Only disable 'completion-preview-active-mode' when it is on
| * Fix clipboard object handle leak on Android 3.1 to 11.0Po Lu2025-03-161-1/+7
| | | | | | | | | | * src/androidselect.c (extract_fd_offsets): Release retrieved ParcelFileDescriptor objects on APIs 12 through 30.
| * Fix treesit-parser-create behavior regarding indirect buffersYuan Fu2025-03-131-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous fix fixed the problem that treesit-parser-create always use the current buffer, but that introduce another subtle problem: if an indirect buffer creates a parser, the parser saves the base buffer rather than the indirect buffer. In Emacs 29, if you create a parser in an indirect buffer, the parser saves the indirect buffer. This change of behavior breaks some existing use-cases for people using indirect buffer with tree-sitter. In Emacs 31, indirect buffers and base buffer get their own parser list, so this problem doesn't exist anymore. The fix is only for Emacs 30. * src/treesit.c (Ftreesit_parser_create): Use the buffer that's given to treesit-parser-create, even if it's an indirect buffer.
* | Avoid rare segfaults in 'combine_updates_for_frame'Eli Zaretskii2025-03-161-1/+4
| | | | | | | | | | * src/xdisp.c (redisplay_internal): Don't add to 'tty_root_frames' frames that are not yet completely made. (Bug#77046)
* | ; * src/w32.c (term_ntproc): Fix capitalization of commentary.Po Lu2025-03-151-2/+2
| |
* | ; Fix punctuation and typos in w32proc.cPo Lu2025-03-151-68/+69
| | | | | | | | | | | | | | | | * src/w32proc.c (WFO_MAX_WAIT, wait_objects_context) (start_wait_objects, stop_wait_objects, end_wait_and_return) (shrink_wait_pool, free_wait_pool, wait_for_objects) (msg_wait_for_objects, delete_child, WINAPI, create_child) (waitpid): Repunctuate sentences and correct typos.
* | ; * src/w32.h (free_wait_pool): Move prototype from w32.c.Eli Zaretskii2025-03-142-2/+3
| |
* | Increase FD_SETSIZE on Windows to support more subprocessesYue Yi2025-03-143-30/+812
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Earlier versions of Emacs were limited to at most 32 subprocesses or network connections on Windows due to the 64-object limit imposed by WaitForMultipleObjects. To overcome this, a simple waiting thread pool is implemented, allowing Emacs to efficiently wait on up to 2048 objects. Each thread in the pool can wait on up to 63 objects, and a total of 32 threads are used, together with the main thread, to expand the waiting capability. This enables Emacs to support approximately 1024 subprocesses, which is comparable to the 'pty' method on GNU/Linux when using the default FD_SETSIZE of 1024. To minimize overhead, the threads remain active instead of being frequently created and destroyed, reducing unnecessary system resource consumption. Idle threads can be terminated after a period of inactivity to free up memory. * src/w32.h (FD_SETSIZE): Change from 64 to 2048. * src/w32.c (term_ntproc): Call 'free_wait_pool' to free waiting threads. * src/w32proc.c (WFO_ABANDONED, WFO_TIMEOUT, WFO_FAILED) (WFO_MAX_WAIT): New macros. (wait_objects_context, wait_objects_pool, wait_objects_info): New structures for managing the thread pool. (wait_objects_pool, wait_objects_info): New static variables for managing the thread pool. (wait_objects_thread, start_wait_objects, stop_wait_objects) (end_wait_and_return, shrink_wait_pool, free_wait_pool): New functions for waiting and managing the thread pool. (wait_for_objects, msg_wait_for_objects): New functions as replacements for WaitForMultipleObjects and MsgWaitForMultipleObjects. (wait_pid): Use 'wait_for_objects' and new macros. (sys_select): Make some variables static to avoid stack allocation. Use 'wait_for_objects', 'msg_wait_for_objects', and the new macros.
* | Fix aborts and text corruption in 'replace-buffer-contents'Eli Zaretskii2025-03-131-5/+17
| | | | | | | | | | * src/insdel.c (replace_range): Fix a thinko. Fix commentary. (Bug#76997)
* | ; Replace "Elisp" with "Lisp" or "Emacs Lisp" in some placesSean Whitton2025-03-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac (libgccjit_not_found_err) (libgccjit_dev_not_found_err): * doc/lispref/elisp.texi (Top): * doc/lispref/functions.texi (What Is a Function): * doc/lispref/parsing.texi (Parsing Program Source) (Tree-sitter C API): * doc/misc/gnus.texi (The Gnus Registry): * etc/TODO: * lisp/auth-source.el (auth-source-search): * lisp/cedet/semantic/bovine/el.el (emacs-lisp-mode): * lisp/editorconfig.el (editorconfig-get-local-variables-functions): * lisp/emacs-lisp/cconv.el (cconv-make-interpreted-closure): * lisp/emacs-lisp/oclosure.el (cconv--interactive-helper): * lisp/net/tramp-message.el (tramp-debug-font-lock-keywords): * src/frame.c (do_switch_frame): * test/lisp/emacs-lisp/shortdoc-tests.el (shortdoc-help-fns-examples-function-test): Say "Lisp" not "Elisp". * lisp/progmodes/peg.el (peg-translate-exp): Say "Emacs Lisp" not "Elisp".
* | Merge from origin/emacs-30Sean Whitton2025-03-123-6/+9
|\| | | | | | | | | | | | | | | 894b0e3a2fe ; Adapt comment in tramp.el cc87717fa07 Add keyword placeholder to tramp.el 7d0d61d8549 Rewrite ERT manual introduction b2f124f2a88 ; cperl-mode.el: Don't misinterpret exec_fcn as keyword exec 59d1aac49df Document return values of the various read-* functions
| * Document return values of the various read-* functionsEli Zaretskii2025-03-093-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/textmodes/string-edit.el (read-string-from-buffer): * lisp/simple.el (read-from-kill-ring, read-shell-command) (read-signal-name): * lisp/replace.el (read-regexp-case-fold-search): * lisp/auth-source.el (read-passwd): * lisp/subr.el (read-key, read-number): * lisp/minibuffer.el (read-file-name, read-no-blanks-input): * lisp/international/mule-cmds.el (read-multilingual-string): * lisp/language/japan-util.el (read-hiragana-string): * lisp/files-x.el (read-file-local-variable) (read-file-local-variable-mode, read-file-local-variable-value): * lisp/faces.el (read-face-font, read-face-name): * lisp/simple.el (read-extended-command): * lisp/env.el (read-envvar-name): * lisp/files.el (read-directory-name): * lisp/faces.el (read-color): * lisp/international/mule-diag.el (read-charset): * lisp/emacs-lisp/map-ynp.el (read-answer): * src/coding.c (Fread_coding_system) (Fread_non_nil_coding_system): * src/minibuf.c (Fread_command, Fread_from_minibuffer): * src/lread.c (Fread_char, Fread_char_exclusive, Fread_event): Doc fixes.
| * Fix crash in daemon when "C-x C-c" while a client frame shows tooltipEli Zaretskii2025-03-081-9/+11
| | | | | | | | | | | | | | * src/frame.c (delete_frame): Ignore tooltip frames when looking for other frames on the same terminal. (Bug#76842) (cherry picked from commit d2445c8c23595efdd444fce6f0c33ba66b596812)
* | Fix capitalization ELisp -> ElispSean Whitton2025-03-124-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac (libgccjit_not_found_err) (libgccjit_dev_not_found_err): * doc/emacs/buffers.texi (List Buffers): * doc/lispref/elisp.texi (Tree-sitter C API): * doc/lispref/functions.texi (What Is a Function): * doc/lispref/parsing.texi (Parsing Program Source) (Tree-sitter C API): * doc/misc/gnus.texi (The Gnus Registry): * etc/DEBUG: * etc/NEWS: * etc/NEWS.25: * etc/NEWS.26: * etc/NEWS.28: * etc/NEWS.30: * etc/TODO: * lib-src/emacsclient.c (print_help_and_exit): * lisp/auth-source.el (auth-source-search): * lisp/cedet/semantic/bovine/el.el (emacs-lisp-mode): * lisp/cedet/semantic/wisent/comp.el (wisent-automaton-lisp-form): * lisp/cedet/srecode/el.el (srecode-semantic-apply-tag-to-dict): * lisp/editorconfig.el (editorconfig-get-local-variables-functions): * lisp/emacs-lisp/bindat.el (bindat-type): * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): * lisp/emacs-lisp/cconv.el (cconv-make-interpreted-closure): * lisp/emacs-lisp/cl-macs.el (cl--labels-convert): * lisp/emacs-lisp/lisp-mode.el (lisp-fdefs) (lisp-fill-paragraphs-as-doc-string): * lisp/emacs-lisp/macroexp.el (macroexp--fgrep): * lisp/emacs-lisp/oclosure.el (cconv--interactive-helper): * lisp/emacs-lisp/re-builder.el: * lisp/erc/erc-button.el (erc-emacswiki-lisp-url): * lisp/help-fns.el (help-fns--describe-function-or-command-prompt): * lisp/menu-bar.el (menu-bar-search-documentation-menu): * lisp/net/tramp-message.el (tramp-debug-font-lock-keywords): * lisp/org/org-capture.el (org-capture): * lisp/org/org.el (org-category, org-todo): * lisp/org/ox.el (org-export-async-start): * lisp/progmodes/elisp-mode.el (emacs-lisp-mode): * lisp/progmodes/peg.el (peg-translate-exp): * lisp/progmodes/ruby-ts-mode.el: * lisp/woman.el (woman-mode, woman-parse-numeric-arg): * src/chartab.c (map_char_table_for_charset): * src/fns.c (extract_data_from_object): * src/frame.c (do_switch_frame): * src/keyboard.c (make_lispy_event): * test/lisp/emacs-lisp/cl-macs-tests.el (cl-&key-arguments): * test/lisp/emacs-lisp/shortdoc-tests.el (shortdoc-help-fns-examples-function-test): * test/manual/etags/c-src/emacs/src/keyboard.c (make_lispy_event): Fix capitalization ELisp -> Elisp.
* | (Freplace_buffer_contents): Preserve markers more carefullyStefan Monnier2025-03-112-22/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | Use `replace_range` rather than `delete+insert`. * src/insdel.c (replace_range): Allow NEW to specify a chunk of buffer text. * src/editfns.c (Freplace_buffer_contents): Use it. * test/src/editfns-tests.el (replace-buffer-contents-1): Remove incorrect check which happened to succeed because point was not preserved carefully enough. Make the replacement text share a bit more content to make the test a bit more strict. (editfns-tests--replace-region): Doesn't fail any more.
* | Remove parent-node field from tree-sitter parsersYuan Fu2025-03-112-46/+0
| | | | | | | | | | | | | | * src/treesit.c (make_treesit_parser): Remove field. (Ftreesit_parser_parent_node): (Ftreesit_parser_set_parent_node): Remove * src/treesit.h (Lisp_TS_Parser): Remove field.