aboutsummaryrefslogtreecommitdiffstats
path: root/lisp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Use a dedicated type to represent interpreted-function valuesscratch/interpreted-functionStefan Monnier2024-04-1814-99/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change `function` so that when evaluating #'(lambda ...) we return an object of type `interpreted-function` rather than a list starting with one of `lambda` or `closure`. The new type reuses the existing PVEC_CLOSURE (nee PVEC_COMPILED) tag and tries to align the corresponding elements: - the arglist, the docstring, and the interactive-form go in the same slots as for byte-code functions. - the body of the function goes in the slot used for the bytecode string. - the lexical context goes in the slot used for the constants of bytecoded functions. The first point above means that `help-function-arglist`, `documentation`, and `interactive-form`s don't need to distinguish interpreted and bytecode functions any more. Main benefits of the change: - We can now reliably distinguish a list from a function value. - `cl-defmethod` can dispatch on `interactive-function` and `closure`. Dispatch on `function` also works now for interpreted functions but still won't work for functions represented as lists or as symbols, of course. - Function values are now self-evaluating. That was alrready the case when byte-compiled, but not when interpreted since (eval '(closure ...)) signals a void-function error. That also avoids false-positive warnings about "don't quote your lambdas" when doing things like `(mapcar ',func ...)`. * src/eval.c (Fmake_interpreted_closure): New function. (Ffunction): Use it and change calling convention of `Vinternal_make_interpreted_closure_function`. (FUNCTIONP, Fcommandp, eval_sub, funcall_general, funcall_lambda) (Ffunc_arity, lambda_arity): Simplify. (funcall_lambda): Adjust to new representation. (syms_of_eval): `defsubr` the new function. Remove definition of `Qclosure`. * lisp/emacs-lisp/cconv.el (cconv-make-interpreted-closure): Change calling convention and use `make-interpreted-closure`. * src/data.c (Fcl_type_of): Distinguish `byte-code-function`s from `interpreted-function`s. (Fclosurep, finterpreted_function_p): New functions. (Fbyte_code_function_p): Don't be confused by `interpreted-function`s. (Finteractive_form, Fcommand_modes): Simplify. (syms_of_data): Define new type symbols and `defsubr` the two new functions. * lisp/emacs-lisp/cl-print.el (cl-print-object) <interpreted-function>: New method. * lisp/emacs-lisp/oclosure.el (oclosure): Refine the parent to be `closure`. (oclosure--fix-type, oclosure-type): Simplify. (oclosure--copy, oclosure--get, oclosure--set): Adjust to new representation. * src/callint.c (Fcall_interactively): Adjust to new representation. * src/lread.c (bytecode_from_rev_list): * lisp/simple.el (function-documentation): * lisp/help.el (help-function-arglist): Remove the old `closure` case and adjust the byte-code case so it handles `interpreted-function`s. * lisp/emacs-lisp/cl-preloaded.el (closure): New type. (byte-code-function): Add it as a parent. (interpreted-function): Adjust parent (the type itself was already added earlier by accident). * lisp/emacs-lisp/bytecomp.el (byte-compile--reify-function): Adjust to new representation. (byte-compile): Use `interpreted-function-p`. * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): Adjust to new representation. (side-effect-free-fns): Add `interpreted-function-p` and `closurep`. * src/profiler.c (trace_hash, ffunction_equal): Simplify. * lisp/profiler.el (profiler-function-equal): Simplify. * lisp/emacs-lisp/nadvice.el (advice--interactive-form-1): Use `interpreted-function-p`; adjust to new representation; and take advantage of the fact that function values are now self-evaluating. * lisp/emacs-lisp/lisp-mode.el (closure): Remove `lisp-indent-function` property. * lisp/emacs-lisp/disass.el (disassemble-internal): Adjust to new representation. * lisp/emacs-lisp/edebug.el (edebug--strip-instrumentation): Use `interpreted-function-p`. * lisp/emacs-lisp/comp-common.el (comp-known-type-specifiers): Add `closurep` and `interpreted-function-p`. * test/lisp/help-fns-tests.el (help-fns-test-lisp-defun): Adjust to more precise type info in `describe-function`. * test/lisp/erc/resources/erc-d/erc-d-tests.el (erc-d--render-entries): Use `interpreted-function-p`. * test/lisp/emacs-lisp/macroexp-resources/vk.el (vk-f4, vk-f5): Don't hardcode function values. * doc/lispref/functions.texi (Anonymous Functions): Don't suggest that function values are lists. Reword "self-quoting" to reflect the fact that #' doesn't return the exact same object. Update examples with the new shape of the return value. * doc/lispref/variables.texi (Lexical Binding): * doc/lispref/lists.texi (Rearrangement): * doc/lispref/control.texi (Handling Errors): Update examples to reflect new representation of function values.
* Better way to fix bug#70036João Távora2024-04-181-5/+12
| | | | | | | | | | | | | | Cache a new eglot--cached-tdi var per buffer, which contains value to return from eglot--TextDocumentIdentifier. This avoids frequent expensive recomputation of a value that requires potentially many 'file-truename' calls. This technique is used in a number of other cases already, like eglot--recent-changes or eglot--versioned-identifier. * lisp/progmodes/eglot.el (eglot--cached-tdi): New variable. (eglot--TextDocumentIdentifier): Tweak. (eglot--signal-textDocument/didOpen): Clear eglot--cached-tdi.
* Revert "Don't use file-truepath in Eglot (bug#70036)"João Távora2024-04-181-24/+18
| | | | | | | | | | | | | | | | | This reverts commit 08c80c45ddea17df87fc768a39dff353ccc13d3b. It introduces bugs when a project contains symlinked files. The server will be informed of duplicate documents which are really the same and it frequently has no means to deduplicate such information. This leads to bugs such as excessive textDocument/references to a function. * lisp/progmodes/eglot.el (eglot-lsp-server): Revert change. (eglot-uri-to-path): Revert change. (eglot--on-shutdown): Revert change. (eglot--managed-mode): Revert change. (eglot-handle-notification textDocument/publishDiagnostics): Revert change.
* ; Alphabetize go-ts-mode's treesit-font-lock-feature-listRandy Taylor2024-04-181-1/+1
| | | | | * lisp/progmodes/go-ts-mode.el (go-ts-mode): Rearrange features to keep alphabetical order. (Bug#70362)
* Don't error on tabbing to a widget at BOB (bug#69943)Stephen Berman2024-04-181-2/+2
| | | | | | | | | * lisp/wid-edit.el (widget-move): Don't move backward when at beginning of buffer, and keep point on widget's left side. * test/lisp/wid-edit-tests.el (widget-test-widget-move): Test that moving to a widget at beginning of buffer does not signal a beginning-of-buffer error.
* ; * lisp/comint.el: Fix wording of last change.Eli Zaretskii2024-04-181-1/+1
|
* Obsolete comint-osc symbols moved to ansi-osc.elAugusto Stoffel2024-04-181-11/+15
| | | | | | | * lisp/comint.el (comint-osc-handlers) (comint-osc-directory-tracker, comint-osc-hyperlink-handler) (comint-osc-hyperlink, comint-osc-hyperlink-map): Mark as obsolete. (Bug#70375)
* Add YANG LSP support to EglotSiddharth Sharma2024-04-181-1/+2
| | | | | | | * lisp/progmodes/eglot.el (eglot-server-programs): Add 'yang-language-server' and 'json-ts-mode'. (Bug#70364) Copyright-paperwork-exempt: yes
* ; Minor change in last commitEli Zaretskii2024-04-181-10/+10
| | | | | * lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings): Rearrange features to keep alphabetical order. (Bug#70362)
* Add font-locking for Go built-in functions in go-ts-modeNoah Peart2024-04-181-1/+16
| | | | | | * lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings): Add font-locking for Go built-in functions to 'go-ts-mode'. (Bug#70362)
* ; Fix last changeEli Zaretskii2024-04-181-40/+41
| | | | | * lisp/url/url-util.el (url-build-query-string): Move to after the definition of 'url-query-key-value-allowed-chars'.
* Avoid unnecessary escaping in 'url-build-query-string'Dagfinn Ilmari Mannsåker2024-04-181-1/+11
| | | | | | | | | * lisp/url/url-util.el (url-query-key-value-allowed-chars): New defconst. (url-build-query-string): Use it to escape only those characters that need it in keys and values. * test/lisp/url/url-util-tests.el (url-util-tests): Add new test cases. (Bug#70312)
* Flymake support for indicating errors in marginElias G. B. Perez2024-04-181-15/+119
| | | | | | | | | | | | | | | | | | | | | | Add optional support for display flymake error in margin, this allow displaying error indicators in both graphical and terminal frames. * doc/misc/flymake.texi (Customizable variables) (Flymake error types): Document new margin indicator. * etc/NEWS: Announce the new Flymake user option for margin indicators. * lisp/progmodes/flymake.el (flymake-indicator-type) (flymake-margin-indicators-string, flymake-autoresize-margins) (flymake-margin-indicator-position): New user options. (flymake--original-margin-width): Add buffer-local variable for store original buffer margin width. (flymake-error, flymake-warning, flymake-note): Use new margin value. (flymake--indicator-overlay-spec): Rework and Rename from flymake--fringe-overlay-spec. (flymake--resize-margins): Add new function for resize margin width. (flymake--highlight-line, flymake-mode): Rework.
* Fix sending input to SQL when point is not at EOBEli Zaretskii2024-04-181-0/+2
| | | | | | * lisp/progmodes/sql.el (sql-send-string): Move point to EOB before sending input to the SQL process. Suggested by Gary Hollis <ghollisjr@gmail.com>. (Bug#69420)
* * lisp/tab-line.el: Use the new keyword :key for 'sort'.Juri Linkov2024-04-181-7/+7
| | | | | | | (tab-line-tabs-fixed-window-buffers): Use :key for 'sort'. Rename the window parameter 'tab-line-fixed-window-buffers' to shorter 'tab-line-buffers'. Add '(tab-line-buffers . writable) to window-persistent-parameters.
* Propagate 'lexical-binding' value to pp buffersAugusto Stoffel2024-04-171-1/+3
| | | | | | | See bug#70137. * lisp/emacs-lisp/pp.el (pp-display-expression): Set lexical-binding to match the value in the calling buffer.
* Document earlier change in eglot-report-progressTheodor Thornhill2024-04-171-1/+4
| | | | | | * lisp/progmodes/eglot.el (eglot-report-progress): Document the changed behavior. * etc/EGLOT-NEWS (https): Mention the change.
* (conf-toml-recognize-section): Fix bug#70383Stefan Monnier2024-04-171-21/+20
| | | | | * lisp/textmodes/conf-mode.el (conf-toml-recognize-section): Move point, like font-lock matchers are expected to do.
* eglot.el: Remove accidentally included debugging codeStefan Monnier2024-04-171-3/+0
| | | | | * lisp/progmodes/eglot.el (eglot--signal-textDocument/didChange): Remove leftover debug message.
* * lisp/emacs-lisp/icons.el (define-icon): Add 'doc-string' to 'declare'.Juri Linkov2024-04-171-1/+1
|
* New keymap tab-line-mode-map and new tab order on tab-line (bug#69993)Juri Linkov2024-04-171-6/+46
| | | | | | | | | | | | | * lisp/tab-line.el (tab-line-new-button-functions): New variable. (tab-line-tabs-function): Change the default value from 'tab-line-tabs-window-buffers' to the new option 'tab-line-tabs-fixed-window-buffers'. (tab-line-tabs-buffer-group-sort-function): Change the default value from nil to 'tab-line-tabs-buffer-group-sort-by-name'. (tab-line-tabs-buffer-group-sort-by-name): New function. (tab-line-tabs-fixed-window-buffers): New function. (tab-line-format-template): Use 'tab-line-new-button-functions'. (tab-line-mode-map, tab-line-switch-repeat-map): New keymaps.
* Allow tabbing between widgets to skip inactive widgets (bug#70413)Stephen Berman2024-04-171-2/+11
| | | | | | | | | | * doc/misc/widget.texi (Widgets and the Buffer, Customization): Document it. * etc/NEWS: Announce it. * lisp/wid-edit.el (widget-skip-inactive): New user option. (widget-tabable-at): Use it.
* * lisp/emacs-lisp/track-changes.el: Fix trailerStefan Monnier2024-04-171-2/+2
|
* track-changes.el: Fix last change for early useStefan Monnier2024-04-171-1/+1
| | | | | * lisp/emacs-lisp/track-changes.el (track-changes--recover-from-error): Don't burp if there have been fewer than 20 keystrokes since Emacs start.
* * lisp/emacs-lisp/lisp.el (forward-sexp-function): Set back to nil.Juri Linkov2024-04-172-5/+5
| | | | | (forward-sexp): Revert back to checking 'forward-sexp-function' for nil (bug#70426).
* track-changes.el: Minor changes for version 1.0Stefan Monnier2024-04-162-16/+34
| | | | | | | | | | | | | | | | | | | | | | | Arrange for the library to be usable on older Emacsen, which includes reducing the noise when `before/after-change-functions` are badly paired or missing. Also, since the signal function receives the distance (for `:disjoint`), we don't need `track-changes--disjoint-threshold`: the signal function can simply do nothing when the distance is smaller than the threshold it wants to use. * lisp/emacs-lisp/track-changes.el: Prepare header for ELPA. (track-changes--tracker, track-changes--state): Don't use `:noinline`, so as to be compatible with Emacs<27. (track-changes-record-errors): New variable. (track-changes--recover-from-error): Use it. Record only the last 20 keys and the last 50 stack frames in the error log. (track-changes--disjoint-threshold): Delete variable. (track-changes--before): Don't use it any more. * lisp/progmodes/eglot.el (eglot--track-changes-signal): Coalesce disjoint changes nearer than what used to be coalesced because of `track-changes--disjoint-threshold`.
* (cl-defstruct): Improve handling of unknown optionsStefan Monnier2024-04-161-1/+6
| | | | | | | | | | | Until now `cl-defstruct` signaled an error when encountering an unknown option. It's easy to code and it does the job, but it doesn't give good location info in the compiler's output, and it makes it more painful to use not-yet-supported options. So just signal a warning instead. * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Warn about unknown options, instead of signaling an error.
* ; Improvements to PEG documentation (second attempt)Eric Abrahamsen2024-04-161-3/+4
| | | | | | | * doc/lispref/peg.texi: Make more use of defmac/defmacro, and try to clarify the relationships between the various macros and functions. * lisp/progmodes/peg.el (peg-parse): Remove claim that PEXS can also be a single list of rules.
* Revert "; Improvements to PEG documentation"Mattias Engdegård2024-04-161-4/+3
| | | | | This reverts commit 930c578c1042e6372e5433e31b2ea801315c01c9. Looks like an editing mistake ate a large part of the text.
* Fix touch screen hscroll when initiated from widgetsPo Lu2024-04-161-71/+86
| | | | | | * lisp/wid-edit.el (widget-button--check-and-call-button): Return to the position of point during the tracking loop if a touch event is canceled.
* Support prefix argument for switching tabs in tab-line-modeJuri Linkov2024-04-161-50/+63
| | | | | | | | * lisp/tab-line.el (tab-line-select-tab-buffer): Optimize. (tab-line-switch-cycling): Enable by default like in tab-bar-mode. (tab-line-switch-to-prev-tab, tab-line-switch-to-next-tab): Add a prefix argument ARG and support it for switching tabs. Improve docstring.
* Add font-locking for operators in go-ts-mode (bug#70361)Noah Peart2024-04-151-0/+4
| | | | | * lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings): Add font-locking rule for Go operators.
* ; Improvements to PEG documentationEric Abrahamsen2024-04-151-3/+4
| | | | | | | * doc/lispref/peg.texi: Make more use of defmac/defmacro, and try to clarify the relationships between the various macros and functions. * lisp/progmodes/peg.el (peg-parse): Remove claim that PEXS can also be a single list of rules.
* (track-changes-fetch): Fix nested use caseStefan Monnier2024-04-151-17/+21
| | | | | | * lisp/emacs-lisp/track-changes.el (track-changes-fetch): Don't presume that if there's nothing to do we're on `track-changes--clean-trackers`.
* (track-changes--before): Fix bug#70396Stefan Monnier2024-04-151-34/+34
| | | | | | * lisp/emacs-lisp/track-changes.el (track-changes--before): Widen the buffer before accessing it with positions potentially outside the beg..end region.
* Fix display of @xref documentation in InfoEli Zaretskii2024-04-151-0/+23
| | | | | | | * lisp/info.el (Info--dont-hide-references): New variable. (Info-fontify-node): Use 'Info--dont-hide-references' to disable hiding "*Note" or showing "See" instead of it in select nodes. (Bug#70382)
* Make 'buffer-last-name' work better after 'find-alternate-file' (Bug#68235)Martin Rudalics2024-04-151-0/+9
| | | | | * lisp/files.el (find-alternate-file): Before killing the previous buffer, try to restore its name and filenames (Bug#68235).
* ; Capitalize 'project' in project-name's docstringDmitry Gutov2024-04-151-1/+1
|
* Add 'forward-sexp-default-function' to be used by 'treesit-forward-sexp'Juri Linkov2024-04-142-10/+24
| | | | | | | | | | | | | | * lisp/emacs-lisp/lisp.el (forward-sexp-default-function): New function with body from 'forward-sexp' (bug#68993). (forward-sexp-function): Change the default value from nil to 'forward-sexp-default-function'. (forward-sexp): Use either 'forward-sexp-function' or 'forward-sexp-default-function'. * lisp/treesit.el (treesit-forward-sexp): In nodes of type 'text' fall back to 'forward-sexp-default-function'. Improve docstring. * doc/lispref/positions.texi (List Motion): Fix pxref.
* ; * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): less consingMattias Engdegård2024-04-141-1/+1
|
* Add command 'list-keyboard-macros' that works like 'list-buffers'.Earl Hyatt2024-04-141-0/+558
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The command 'list-keyboard-macros' allows editing and re-arranging macros using 'tabulated-list-mode'. Existing keyboard macros can be duplicated or deleted. Macro counters and counter formats can take new values read from the minibuffer. Macro keys can be edited using 'edit-kbd-macro'. * doc/emacs/kmacro.texi (Kmacro Menu): Document the new command and the menu's commands. * etc/NEWS (Kmacro Menu Mode): Mention the new mode and command. * lisp/kmacro.el (kmacro-menu-mark, kmacro-menu-marked) (kmacro-menu-flagged): Add faces for marks and flags. * lisp/kmacro.el (kmacro-menu-mode-map, kmacro-menu-mode): Add mode and map. * lisp/kmacro.el (list-keyboard-macros, kmacro-menu): Add command. * lisp/kmacro.el (kmacro-menu--deletion-flags, kmacro-menu--marks) (kmacro-menu--id-kmacro, kmacro-menu--id-position, kmacro-menu--kmacros) (kmacro-menu--refresh, kmacro-menu--map-ids, kmacro-menu--replace-all) (kmacro-menu--replace-at, kmacro-menu--query-revert, kmacro-menu--assert-row) (kmacro-menu--propertize-keys, kmacro-menu--do-region) (kmacro-menu--marks-exist-p): Add utility functions of mode and commands. * lisp/kmacro.el (kmacro-menu-mark, kmacro-menu-flag-for-deletion) (kmacro-menu-unmark, kmacro-menu-unmark-backward) (kmacro-menu-unmark-all): Add commands for marks and flags. * lisp/kmacro.el (kmacro-menu-do-flagged-delete, kmacro-menu-do-copy) (kmacro-menu-do-delete): Add commands that modify the ring. * lisp/kmacro.el (kmacro-menu-edit-position, kmacro-menu-transpose) (kmacro-menu-edit-format, kmacro-menu-edit-counter) (kmacro-menu-edit-keys, kmacro-menu-edit-column): Add commands that modify a keyboard macro.
* CC Mode: Don't start fontifying in the middle of an identifierAlan Mackenzie2024-04-141-1/+1
| | | | | | | | This fixes bug#70367. * lisp/progmodes/cc-mode.el (c-fl-decl-start): After searching backwards for the end of the previous statement, check whether or not we found it.
* Recognize multicite macros from biblatexArash Esbati2024-04-131-3/+42
| | | | | | | | | * lisp/textmodes/reftex-cite.el (reftex-all-used-citation-keys): Match the citation keys used with multicite macros provided by biblatex. (bug#38249) * test/lisp/textmodes/reftex-tests.el (reftex-all-used-citation-keys): Adjust test accordingly.
* peg-tests.el: Fix test failuresStefan Monnier2024-04-131-8/+6
| | | | | | | | | | | | | * lisp/progmodes/peg.el (peg-parse): Refine heuristic since unknown terminals are resolved at run-time rather than compile-time now. (peg--macroexpand) <stack-action>: Avoid generating a `let` with an empty body. (peg--translate-rule-body): Adjust to name change of `macroexp-warn-and-return` and the fact that it's always available. * test/lisp/progmodes/peg-tests.el (peg-parse-string): Add `indent` declaration. (peg-test): Check that the compiler emits the warnings we expect.
* (define-globalized-minor-mode): Require the use of `run-mode-hooks`Stefan Monnier2024-04-131-58/+4
| | | | | | | | | | | | | | | | | | | | | | When `define-globalized-minor-mode` was introduced (Emacs-22), `run-mode-hooks` was brand new, so we could not expect all major modes to use it and we had to rely on brittle workarounds to try and approximate `after-change-major-mode-hook`. These workarounds have undesirable side effects, and (we hope) they're not needed any more now that virtually all major modes have been changed to use `run-mode-hooks` (or `define-derived-mode`). * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Rely only on `after-change-major-mode-hook`, remove the "cmhh" [typo for the intended "cmmh", BTW] workaround. * doc/lispref/modes.texi (Mode Hooks): Clarify the importance of `after-change-major-mode-hook` w.r.t `define-globalized-minor-mode`. (Defining Minor Modes): Rewrite the explanation of which buffers are affected, including adjusting it to the fact that `fundamental-mode` has used run `run-mode-hooks` for last 10 years.
* (define-globalized-minor-mode): Fix bug#58888Stefan Monnier2024-04-131-2/+6
| | | | | | * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode) <MODE-cmhh>: Try and detect well-behaved modes so they're not affected by those which require the cmhh hack.
* Merge branch 'track-changes'Stefan Monnier2024-04-133-53/+724
|\
| * lisp/emacs-lisp/track-changes.el: New file (bug#70077)Stefan Monnier2024-04-133-53/+724
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This new package provides an API that is easier to use right than our `*-change-functions` hooks. The patch includes changes to `diff-mode.el` and `eglot.el` to make use of this new package. * lisp/emacs-lisp/track-changes.el: New file. * test/lisp/emacs-lisp/track-changes-tests.el: New file. * doc/lispref/text.texi (Tracking changes): New subsection. * lisp/progmodes/eglot.el: Require `track-changes`. (eglot--virtual-pos-to-lsp-position): New function. (eglot--track-changes): New var. (eglot--managed-mode): Use `track-changes-register` i.s.o `after/before-change-functions` when available. (eglot--track-changes-signal): New function, partly extracted from `eglot--after-change`. (eglot--after-change): Use it. (eglot--track-changes-fetch): New function. (eglot--signal-textDocument/didChange): Use it. * lisp/vc/diff-mode.el: Require `track-changes`. Also require `easy-mmode` before the `eval-when-compile`s. (diff-unhandled-changes): Delete variable. (diff-after-change-function): Delete function. (diff--track-changes-function): Rename from `diff-post-command-hook` and adjust to new calling convention. (diff--track-changes): New variable. (diff--track-changes-signal): New function. (diff-mode, diff-minor-mode): Use it with `track-changes-register`.
* | ; Additional fixup for truncation of long lines in compilation buffersPhil Sainty2024-04-141-4/+1
| | | | | | | | | | | | | | | | | | | | | | * lisp/progmodes/compile.el (compilation--insert-abbreviated-line): Handle long lines that end in a newline. (Bug#70236) The fix in commit 8f93cba324e4d4022a9422b8c56186213ba2de8d resulted in the previous "Don't hide the final newline" code causing an off-by-one error. With the new code the value of point is what is wanted in both cases.
* | Merge from origin/emacs-29Eli Zaretskii2024-04-133-5/+23
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f0300fb0597 ; Tweak "(emacs)Bug Reference" formatting/wording. ea62a14ea3b Fix display of vscrolled windows 4cefa3c0b1f ; * doc/emacs/files.texi (Backup): Clarify "saving" (bug#... db7b571aaaf ; Improve documentation of 'world-clock' 6a0bb7beae3 * doc/emacs/misc.texi (emacsclient Options): Suggest forw... 859b4227e3d Update go-ts-mode to support latest tree-sitter-go grammar 407e85ce139 Fix c++-ts-mode defun navigation (bug#65885) aca5064f128 ; Fix last change. 55aab2d4710 ; * etc/PROBLEMS: An entry about focus issues with XFCE (... 19cee16576e ; * doc/emacs/misc.texi (emacsclient Options): Fix typo. ... 2a41b6ba514 ; * src/filelock.c (Flock_file): Doc fix (bug#70216).