aboutsummaryrefslogtreecommitdiffstats
path: root/etc (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Use a dedicated type to represent interpreted-function valuesscratch/interpreted-functionStefan Monnier2024-04-181-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Flymake support for indicating errors in marginElias G. B. Perez2024-04-181-0/+22
| | | | | | | | | | | | | | | | | | | | | | 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.
* ; * etc/NEWS: Reindent and refill recently added entries.Eli Zaretskii2024-04-181-25/+24
|
* Document earlier change in eglot-report-progressTheodor Thornhill2024-04-171-0/+6
| | | | | | * lisp/progmodes/eglot.el (eglot-report-progress): Document the changed behavior. * etc/EGLOT-NEWS (https): Mention the change.
* New keymap tab-line-mode-map and new tab order on tab-line (bug#69993)Juri Linkov2024-04-171-0/+22
| | | | | | | | | | | | | * 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-0/+7
| | | | | | | | | | * 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/lisp.el (forward-sexp-function): Set back to nil.Juri Linkov2024-04-171-4/+0
| | | | | (forward-sexp): Revert back to checking 'forward-sexp-function' for nil (bug#70426).
* Add 'forward-sexp-default-function' to be used by 'treesit-forward-sexp'Juri Linkov2024-04-141-0/+4
| | | | | | | | | | | | | | * 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.
* Add command 'list-keyboard-macros' that works like 'list-buffers'.Earl Hyatt2024-04-141-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* (define-globalized-minor-mode): Require the use of `run-mode-hooks`Stefan Monnier2024-04-131-0/+8
| | | | | | | | | | | | | | | | | | | | | | 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.
* Merge branch 'track-changes'Stefan Monnier2024-04-131-0/+18
|\
| * lisp/emacs-lisp/track-changes.el: New file (bug#70077)Stefan Monnier2024-04-131-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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`.
* | Merge from origin/emacs-29Eli Zaretskii2024-04-131-0/+12
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).
| * | ; Fix last change.Eli Zaretskii2024-04-071-3/+3
| | |
| * | ; * etc/PROBLEMS: An entry about focus issues with XFCE (bug#70046).Eli Zaretskii2024-04-071-0/+12
| | |
* | | ; Fix documentation of last change.Eli Zaretskii2024-04-131-2/+3
| | | | | | | | | | | | | | | | | | * etc/NEWS: * doc/lispref/display.texi (Other Display Specs): * doc/lispref/text.texi (Special Properties): Fix last changes.
* | | Support tooltips for fringe indicatorsVladimir Kazanov2024-04-132-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/xdisp.c (note_fringe_highlight): New function. (note_mouse_highlight): Call it when the mouse is on the fringes. * src/frame.c (syms_of_frame) <left-fringe-help> <right-fringe-help>: DEFSYM them. * etc/NEWS: * doc/lispref/text.texi (Special Properties): * doc/lispref/display.texi (Other Display Specs): Document the new properties. * etc/TODO: Remove the todo item about this.
* | | ; Improve documentation of tree-sitter "things"Eli Zaretskii2024-04-131-15/+19
| | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/parsing.texi (User-defined Things): Fix text, punctuation, and markup. (Tree-sitter Major Modes): Add the missing "things" reference. * etc/NEWS: Fix "thing"-related entries.
* | | New user option 'tab-line-tabs-buffer-group-function'Juri Linkov2024-04-121-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/tab-line.el (tab-line-tabs-buffer-group-function): Turn defvar into defcustom with the default value 'tab-line-tabs-buffer-group-by-mode'. (tab-line-tabs-buffer-group-by-mode): New function with body from 'tab-line-tabs-buffer-group-name'. (tab-line-tabs-buffer-group-by-project): New function. (tab-line-tabs-buffer-groups): Use fallback name "No group" instead of "All".
* | | ; * etc/NEWS: Fix typo.Michael Albinus2024-04-121-1/+1
| | |
* | | ; Fix documentation of a recent change in dbus.el (bug#70301)Eli Zaretskii2024-04-121-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/net/dbus.el (dbus-string-to-byte-array) (dbus-byte-array-to-string): * etc/NEWS: * doc/misc/dbus.texi (Type Conversion): Fix documentation of these two D-Bus functions.
* | | Improve D-Bus byte-array conversionMichael Albinus2024-04-121-28/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/misc/dbus.texi (Type Conversion): Adapt dbus-byte-array-to-string. * etc/NEWS: D-Bus byte array conversion works over raw UTF-8 bytes. Fix typos. * lisp/net/dbus.el (dbus-string-to-byte-array) (dbus-byte-array-to-string): BYTE-ARRAY must be an UTF-8 raw bytes sequence. Make optional argument MULTIBYTE obsolete. (Bug#70301) (dbus-call-method-handler, dbus-register-signal) (dbus-escape-as-identifier): Use `length=' and `length>'. * test/lisp/net/dbus-tests.el (dbus--test-method-handler) (dbus-test09-get-managed-objects): Use `length='. (dbus-test01-type-conversion): Extend test. * test/lisp/net/secrets-tests.el (secrets-test03-items): Extend test.
* | | ; * etc/NEWS: Group JSON changes.Mattias Engdegård2024-04-111-14/+14
| |/ |/|
* | Merge branch 'mouse-wheel-buttons'Stefan Monnier2024-04-091-5/+14
|\ \
| * | (mouse-wheel-buttons): Map old-style wheel buttons to actual wheel eventsStefan Monnier2024-04-091-5/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change the handling of the old X11 convention that uses mouse-4/5/6/7 events to represent wheel events: instead of asking downstream packages to use the `mouse-wheel-*-event` variables to know which events represent wheel events, use new var `mouse-wheel-buttons` to directly convert those events into the standard `wheel-up/down/left/right` events used everywhere else. This will simplify the work of packages which can thus just bind their commands to `wheel-up/down/left/right`. * lisp/mouse.el (mouse-wheel-buttons): New custom variable. * src/keyboard.c (make_lispy_event): Adjust for "wheel-clicks" on the tab-bar. * src/xterm.c (x_construct_mouse_click): Add `xi2` argument and obey `mouse-wheel-buttons` variable. (handle_one_xevent): Adjust calls accordingly. (syms_of_xterm): Define the `mouse-wheel-buttons` and the `wheel-up/down/left/right`symbols. * lisp/xt-mouse.el: Don't require `mwheel` any more. (xterm-mouse--same-button-p): Delete function. (xterm-mouse--read-event-sequence): Use `mouse-wheel-buttons`. * lisp/mwheel.el (mouse-wheel-up-event, mouse-wheel-down-event) (mouse-wheel-left-event, mouse-wheel-right-event): Make obsolete. (mouse-wheel-obey-old-style-wheel-buttons): Delete variable. * lisp/completion-preview.el (completion-preview--mouse-map): * lisp/progmodes/flymake.el (flymake--mode-line-counter-map): * lisp/edmacro.el (edmacro-fix-menu-commands): Silence warnings.
* | | ; * etc/NEWS: Announce new ls-lisp options. (Bug#70721)Eli Zaretskii2024-04-091-0/+8
| | |
* | | Document tree-sitter things feature (bug#70016) (bug#68824)Yuan Fu2024-04-071-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/parsing.texi (Retrieving Nodes): Mention new kinds of predicate argument that the tree-traversing functions accept (which are thing symbols and thing definitions). (User-defined Things): New node dedicated to thing definition and navigation functions.
* | | ; * etc/NEWS: Add entry about tab-bar-mode-map (bug#69578).Juri Linkov2024-04-061-0/+6
| | |
* | | Merge from origin/emacs-29Eli Zaretskii2024-04-061-0/+36
|\ \ \ | | |/ | |/| | | | | | | | | | | | | 3d87d74a23d ; * etc/PROBLEMS: Entry about slow mouse-wheel with GTK3 ... c6899603b9c ; * doc/lispref/tips.texi (Documentation Tips): Improve (... bd2c4d825db ; Update admin/make-tarball.txt f107dc26e37 ; * etc/PROBLEMS: Add an entry about WebKitGTK (bug#66068).
| * | ; * etc/PROBLEMS: Entry about slow mouse-wheel with GTK3 (bug#70002).Eli Zaretskii2024-04-061-0/+10
| | |
| * | ; * etc/PROBLEMS: Add an entry about WebKitGTK (bug#66068).Eli Zaretskii2024-04-011-0/+26
| | |
| * | Bump Emacs version to 29.3.50Eli Zaretskii2024-03-241-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | * README: * configure.ac: * nt/README.W32: * msdos/sed2v2.inp: * etc/NEWS: Bump Emacs version to 29.3.50.
* | | Mark display-comint-buffer-action as obsolete after adding a category.Juri Linkov2024-04-051-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/window.el (display-comint-buffer-action): Append '(category . comint)' to the default value. Mark as obsolete. (display-tex-shell-buffer-action): Append '(category . tex-shell)' to the default value. Mark as obsolete. (bug#69983)
* | | New variable haiku-pass-control-tab-to-systemTor-björn Claesson2024-04-041-0/+5
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | Allow passing C-TAB on to the Haiku operating system, fixing window switching when an Emacs frame has focus (Bug#70138). * src/haiku_support.cc (DispatchMessage): Conditionally pass message to BWindow. * src/haiku_support.h: * src/haikufns.c (haiku_should_pass_control_tab_to_system): Add variable haiku-pass-control-tab-to-system, and C function haiku_should_pass_control_tab_to_system. Co-authored-by: Po Lu <luangruo@yahoo.com> Copyright-paperwork-exempt: yes
* | New functions to set and use context of window points (bug#33871)Juri Linkov2024-04-021-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/dired.el (dired-mode): Set buffer-local 'window-point-context-set-function' to remember 'dired-filename' or 'position' in the window with the Dired buffer. Set buffer-local 'window-point-context-use-function' to restore the remembered position of the window point. * lisp/tab-bar.el (tab-bar--tab): Use window-point-context-set. (tab-bar-select-restore-context): New user option. (tab-bar-select-tab): Use window-point-context-use. * lisp/window.el: Add '(context . writable)' to 'window-persistent-parameters'. (window-point-context-set, window-point-context-use): New functions. (window-point-context-set-default-function) (window-point-context-use-default-function): New functions. (window-point-context-set-function) (window-point-context-use-function): New variables.
* | New condition/action entry 'category' for 'display-buffer' (bug#69983)Juri Linkov2024-04-021-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/windows.texi (Choosing Window): Provide an example of using '(category . comint)' in the condition of 'display-buffer-alist' and in the action of 'display-buffer'. (Buffer Display Action Alists): Add a new action alist entry 'category'. * lisp/subr.el (buffer-match-p): Add a new condition 'category'. * lisp/window.el (display-buffer): Document a new action alist entry 'category'.
* | Update JSON parser test and docsMattias Engdegård2024-04-011-1/+9
| | | | | | | | | | | | * test/src/json-tests.el (json-parse-string/object): Duplicated object keys are now retained in alist and plist output. * etc/NEWS: Mention it.
* | * etc/NEWS: Mention a JSON codec improvement.Mattias Engdegård2024-04-011-0/+4
| |
* | Faster JSON parsingMattias Engdegård2024-04-011-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Speed up JSON parsing substantially by only UTF-8-parsing string literals and only exactly once. Previously, json-parse-string always first parsed the entire input and copied it to a new string, and then validated each string literal twice. We no longer create an extra new string when interning an alist key, nor do we garble plist keys with Unicode characters. * src/lread.c (intern_c_multibyte): New. * src/json.c (json_encode): Remove. (utf8_error): New. (json_parse_string): Faster and more careful UTF-8 decoding. Create and return a new multibyte string or symbol without extra decoding. All callers adapted. (Fjson_parse_string): Skip expensive input pre-decoding. * test/src/json-tests.el (json-parse-string/object-unicode-keys) (json-parse-string/short): New. (json-parse-string/string, json-parse-string/invalid-unicode): Adapt tests. * etc/NEWS: Mentioned change in errors.
* | (scheme-syntax-propertize-sexp-comment): Handle nested sexp-commentsStefan Monnier2024-04-011-0/+1
| | | | | | | | | | | | | | | | | | Well, I'm not completely sure this will work right in all cases, because I've been confused about this in the past. It works in my test case, at least. * lisp/progmodes/scheme.el (scheme-syntax-propertize-sexp-comment): Look for nested `#;` and mark them appropriately.
* | scheme.el: Enable dealing with regular expression literalniceume2024-04-011-0/+5
| | | | | | | | | | * lisp/progmodes/scheme.el (scheme-syntax-propertize-regexp): New function. (scheme-syntax-propertize): Use it.
* | Add global minor mode 'global-completion-preview-mode'Eshel Yaron2024-03-311-0/+2
| | | | | | | | | | | | | | | | | | | | | | This is a global variant of 'completion-preview-mode'. * lisp/completion-preview.el (global-completion-preview-mode): New global minor mode. * doc/emacs/programs.texi (Symbol Completion): Document it. * etc/NEWS: Announce it. (Bug#70010)
* | Fix the new PEG libraryEli Zaretskii2024-03-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | * doc/lispref/peg.texi (Parsing Expression Grammars) (PEX Definitions, Parsing Actions, Writing PEG Rules): Fix markup, indexing, and wording. * etc/NEWS: Fix wording of PEG entry. * test/lisp/progmodes/peg-tests.el: Move from test/lisp/, to match the directory of peg.el.
* | Add peg.el as a built-in libraryEric Abrahamsen2024-03-301-0/+8
| | | | | | | | | | | | * lisp/progmodes/peg.el: New file, taken from ELPA package. * test/lisp/peg-tests.el: Package tests. * doc/lispref/peg.texi: Documentation.
* | Always enable native JSON support and remove Jansson referencesMattias Engdegård2024-03-301-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/json.c (Fjson__available_p): Remove. * lisp/subr.el (json-available-p): Always return t. * admin/nt/dist-build/build-dep-zips.py: * configure.ac: * doc/lispref/text.texi (Parsing JSON): * java/INSTALL: * java/org/gnu/emacs/EmacsNative.java (EmacsNative): * lisp/term/w32-win.el (dynamic-library-alist): * m4/ndk-build.m4 (ndk_INIT): * msdos/sed1v2.inp: * nt/INSTALL: * nt/INSTALL.W64: * src/Makefile.in: * src/emacs.c (main): * src/lisp.h: Remove JSON configuration options and references to it and Jansson from documentation and build files. * etc/NEWS: Announce.
* | Add use-package-vc-prefer-newest user optionTony Zorman2024-03-301-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/use-package/use-package-core.el (use-package-vc-prefer-newest): User option to prefer the latest commit (as opposed to the latest release) of a package. (use-package-normalize--vc-arg): Check for use-package-vc-prefer-newest. * doc/misc/use-package.texi (Install package): Document use-package-vc-prefer-newest. * etc/NEWS: Document use-package-vc-prefer-newest.
* | Merge from origin/emacs-29Eli Zaretskii2024-03-302-54/+92
|\ \ | |/ | | | | ae8f815613c Update files for Emacs 29.3
| * Update files for Emacs 29.3emacs-29.3Eli Zaretskii2024-03-242-21/+31
| | | | | | | | | | | | * ChangeLog.4: * etc/AUTHORS: * etc/HISTORY: Update for Emacs 29.3.
* | Merge from origin/emacs-29Eli Zaretskii2024-03-301-19/+15
|\ \ | |/ | | | | | | | | | | | | | | | | | | 7a5d7be52c5 org--confirm-resource-safe: Fix prompt when prompting in ... 2bc865ace05 org-file-contents: Consider all remote files unsafe 6f9ea396f49 org-latex-preview: Add protection when `untrusted-content... 937b9042ad7 * lisp/gnus/mm-view.el (mm-display-inline-fontify): Mark ... ccc188fcf98 * lisp/files.el (untrusted-content): New variable. befa9fcaae2 org-macro--set-templates: Prevent code evaluation 3221d8d4611 * admin/authors.el (authors-aliases): Add ignored authors. 8d8253f8991 * etc/NEWS: Update for Emacs 29.3
| * * etc/NEWS: Update for Emacs 29.3Eli Zaretskii2024-03-241-19/+15
| |