1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-19 01:10:57 -08:00
Commit graph

171560 commits

Author SHA1 Message Date
Mattias Engdegård
375ba7c8ea ; * src/json.c (json_parse_array): Remove unused variable. 2024-04-03 09:53:37 +02:00
Eshel Yaron
5e5e74b17a
; Autoload 'global-completion-preview-mode'
* lisp/completion-preview.el (global-completion-preview-mode):
Add autoload cookie.
2024-04-03 08:35:18 +02:00
Randy Taylor
7563d57146 ; * src/json.c (Fjson_insert): Fix typo in doc (bug#70156). 2024-04-03 05:38:03 +03:00
Eli Zaretskii
5eedf41b31 ; * src/json.c (Fjson_insert): Doc fix. 2024-04-02 20:43:29 +03:00
Juri Linkov
c3781bf59e New functions to set and use context of window points (bug#33871)
* 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.
2024-04-02 20:19:21 +03:00
Mattias Engdegård
617debf673 Fix json-insert unibyte buffer bug (bug#70007)
Previously, a unibyte target buffer could be put in an incorrect state
if json-insert was used to insert non-ASCII characters.

* src/json.c (Fjson_insert): Simplify.  Don't attempt to decode the data
being inserted: it is guaranteed to be correct UTF-8 and is correct for
both unibyte and multibyte buffers.
* test/src/json-tests.el (json-serialize/roundtrip)
(json-serialize/roundtrip-scalars): Extend tests.
2024-04-02 19:10:00 +02:00
Mattias Engdegård
0670032c0d json-insert doc fixes
* src/json.c (Fjson_insert): Precise the behaviour when the current
buffer is multibyte and unibyte, respectively.
* doc/lispref/text.texi (Parsing JSON): Refer to the right function.
2024-04-02 19:06:39 +02:00
Juri Linkov
9af533dc75 New condition/action entry 'category' for 'display-buffer' (bug#69983)
* 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'.
2024-04-02 19:51:51 +03:00
Mattias Engdegård
a5fbb652ed Update JSON codec doc strings
* src/json.c (Fjson_serialize, Fjson_insert, Fjson_parse_string)
(Fjson_parse_buffer): Make the text more readable, fix minor
errors and avoid terminology confusion.
2024-04-01 17:07:04 +02:00
Mattias Engdegård
8bddf7f93e ; * src/json.c (json_parse_object): Call make_hash_table directly. 2024-04-01 17:07:04 +02:00
Mattias Engdegård
dbfe3cae2d Update JSON parser test and docs
* test/src/json-tests.el (json-parse-string/object):
Duplicated object keys are now retained in alist and plist output.
* etc/NEWS: Mention it.
2024-04-01 17:07:04 +02:00
Po Lu
f53152faad (scheme-syntax-propertize-sexp-comment): Allow #; in strings
* lisp/progmodes/scheme.el (scheme-syntax-propertize-sexp-comment):
Don't get confused by `#;` inside strings and (normal) comments.
(scheme-sexp-comment-syntax-table): Comment-out, unused.
2024-04-01 10:46:19 -04:00
Po Lu
123bfc2779 Correct custom type in tramp-androidsu.el
* lisp/net/tramp-androidsu.el (tramp-androidsu-remote-path): Set
type to '(repeat string).
2024-04-01 21:13:17 +08:00
Po Lu
7970f6bcfc ; json.c stylistic adjustments
* src/json.c (json_parse_string): Stylistic changes.
2024-04-01 21:12:19 +08:00
Mattias Engdegård
51e102a7c8 ; * doc/lispref/processes.texi: use @code for keywords in @table
See discussion in bug#69709.
2024-04-01 14:43:30 +02:00
Eli Zaretskii
601e772b06 Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs 2024-04-01 14:21:10 +03:00
Zajcev Evgeny
61d70186a4 Add support for ch' and cw' dimension specifiers for images
* src/image.c (image_get_dimension, lookup_image): Handle `ch'
and `cw' dimension specifiers in addition to `em'.
* src/dispextern.h: Add new members `face_font_height' and
`face_font_width' to `struct image'.

* doc/lispref/display.texi (Image Descriptors): Document
`ch' and `cw'.
2024-04-01 14:18:05 +03:00
Mattias Engdegård
ce492cc5ae * etc/NEWS: Mention a JSON codec improvement. 2024-04-01 13:09:23 +02:00
Vladimir Kazanov
3f9263f791 Fix symbol list matching regexps.
Fix symbol list matching regexp performance

Allow empty face lists, improve the face list matching regexp (see
discussion in Bug#69714) based on relint's comments, add tests:
* test/lisp/emacs-lisp/ert-font-lock-tests.el: Add tests.
* lisp/emacs-lisp/ert-font-lock.el: Fix regexps.
2024-04-01 11:13:12 +02:00
Mattias Engdegård
3f4486dd76 Don't signal json-end-of-file for short nonempty bad JSON inputs
* src/json.c (json_parse_value): Generate a plain parse error.
* test/src/json-tests.el (json-parse-string/short): Adapt test.
2024-04-01 10:41:46 +02:00
Mattias Engdegård
734bd005aa Faster JSON parsing
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.
2024-04-01 10:41:46 +02:00
Mattias Engdegård
f178a6d800 Native JSON support is always available
* lisp/progmodes/sh-script.el (sh--json-read): Remove.
(sh-shellcheck-flymake): Call json-parse-buffer directly.
* test/src/json-tests.el: Don't check for function availability.
2024-04-01 09:42:46 +02:00
Mattias Engdegård
155462a1bd Fix mutates-arguments warning for sort
* lisp/emacs-lisp/bytecomp.el (bytecomp--sort-call-in-place-p)
(bytecomp--mutargs-nconc, bytecomp--mutargs-sort): New.
(byte-compile-form, bytecomp--actually-important-return-value-p)
(mutating-fns):
Use a slightly more extendible scheme for specifying what arguments
a function mutates.  Give `sort` special treatment.
2024-04-01 09:42:46 +02:00
Stefan Monnier
0f504dde33 (scheme-syntax-propertize-sexp-comment): Handle nested sexp-comments
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.
2024-04-01 02:14:13 -04:00
Po Lu
9caf5cb55a Fix androidsu's `make-process' file name handler
* lisp/net/tramp-androidsu.el
(tramp-androidsu-handle-make-process): Disable exec loader
around call to setuid su binary.
2024-04-01 14:05:24 +08:00
niceume
c4e7eec8c0 (scheme-syntax-propertize-sexp-comment): Remove unused argument
* lisp/progmodes/scheme.el (scheme-syntax-propertize-sexp-comment):
Remove first arg, unused.
(scheme-syntax-propertize): Adjust calls accordingly.
2024-04-01 01:23:40 -04:00
niceume
02c2a95a52 scheme.el: Enable dealing with regular expression literal
* lisp/progmodes/scheme.el (scheme-syntax-propertize-regexp): New function.
(scheme-syntax-propertize): Use it.
2024-04-01 01:23:18 -04:00
Po Lu
0cf9b58228 Fix listing of Android root directory when it is accessible
* src/androidvfs.c (android_root_closedir, android_root_dirfd)
(android_root_opendir): Allocate an ersatz file descriptor even
if directory is non-NULL, so that at-funcs will properly return
file status for virtual files in the root directory.
2024-04-01 09:26:03 +08:00
Michael Albinus
09f381d70d Fix wildcard signals in dbusbind.c
* src/dbusbind.c (xd_read_message_1): Handle registered signals
with wildcards.  (Bug#69926)
2024-03-31 19:59:58 +02:00
Michael Albinus
e303992a9f Adapt Tramp version integrated in Emacs 29.3
* lisp/net/trampver.el:
Adapt Tramp version integrated in Emacs 29.3.
2024-03-31 14:21:58 +02:00
Po Lu
7f377407b4 List special directories when reading root directory on Android
* src/androidvfs.c (root_vfs_ops): Substitute
android_root_opendir for android_root_opendir.
(struct android_root_vdir): New structure.
(root_fd, root_fd_references): New variables.
(android_root_readdir, android_root_closedir, android_root_dirfd)
(android_root_opendir): New functions.
(android_fstatat_1): Test provided fd against root_fd, and if
they match, prefix FILENAME with the name of the root directory.

* lisp/ls-lisp.el (ls-lisp-insert-directory): If d-f-a-a signals
an error while retrieving attributes, compile the alist of
directory contents by hand.
2024-03-31 15:41:04 +08:00
Eshel Yaron
de8cae30bc
Add global minor mode 'global-completion-preview-mode'
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)
2024-03-31 09:32:50 +02:00
Eli Zaretskii
994bcc125b Fix the new PEG library
* 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.
2024-03-31 10:29:34 +03:00
Eli Zaretskii
914b00f207 ; Another round of stylistic fixes in json.c
* src/json.c (json_parser_init, json_parse_object)
(json_parse_value, Fjson_parse_string, json_parse)
(json_create_float, json_create_integer, json_parse_args): Fix
whitespace and indentation.
2024-03-31 09:31:58 +03:00
Po Lu
411f46fd36 ; json.c stylistic adjustments
* src/json.c (json_signal_error, json_parser_init)
(json_parse_object, json_parse_value, syms_of_json): Tabify and
wrap unacceptably long lines.
2024-03-31 08:26:48 +08:00
Po Lu
d2c822944c ; json.c stylistic adjustments
* src/json.c (json_parse_args, json_out_t, symset_t, symset_size)
(Fjson_serialize, Fjson_insert): Tabify and modify all sentences
to be punctuated with two spaces.
2024-03-31 08:22:56 +08:00
Eric Abrahamsen
8bee4060ea Add peg.el as a built-in library
* lisp/progmodes/peg.el: New file, taken from ELPA package.
* test/lisp/peg-tests.el: Package tests.
* doc/lispref/peg.texi: Documentation.
2024-03-30 15:19:47 -07:00
James Thomas
0df8dadde2 Make gnus cache work with group names having '/'
Make `gnus-cache-file-name` use the existing
`nnmail-group-pathname`.

* lisp/gnus/gnus-cache.el (gnus-cache-file-name)
(gnus-cache-update-article):
* lisp/gnus/nnmail.el (nnmail-group-pathname):
2024-03-30 14:40:42 -07:00
Theodor Thornhill
a33e7c0286 Disable workDoneProgress if defcustom is nil
There is no need to receive the $/progress notifications from the server
if we don't want to render them. Because they are effectively ignored
when eglot-report-progress is nil we'd rather not waste cycles on serde
of the messages.

* lisp/progmodes/eglot.el (eglot-client-capabilities): use value from
defcustom to decide whether or not to advertise to server.
2024-03-30 20:48:32 +01:00
Theodor Thornhill
e5e3c9cef6 Fix typo in docstring
* lisp/progmodes/eglot.el (eglot-lsp-server): eglot-current-server is
now exposed.
2024-03-30 20:48:32 +01:00
Eli Zaretskii
000f919b3c Fix the native JSON support code
* src/Makefile.in (base_obj): Add the missing json.o.  Without
this, we get link error.
* src/json.c (json_serialize): Don't use too sophisticated C99
features, as they confuse make-docfile.  Initialize all the
members explicitly.
2024-03-30 19:33:23 +03:00
Mattias Engdegård
1135ce461d Always enable native JSON support and remove Jansson references
* 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.
2024-03-30 15:19:56 +01:00
Mattias Engdegård
890edfd2bb New JSON encoder (bug#70007)
It is in general at least 2x faster than the old encoder and does not
depend on any external library.  Using our own code also gives us
control over translation details: for example, we now have full
bignum support and tighter float formatting.

* src/json.c (json_delete, json_initialized, init_json_functions)
(json_malloc, json_free, init_json, json_out_of_memory)
(json_releae_object, check_string_without_embedded_nulls, json_check)
(json_check_utf8, lisp_to_json_nonscalar_1, lisp_to_json_nonscalar)
(lisp_to_json, json_available_p, ensure_json_available, json_insert)
(json_handle_nonlocal_exit, json_insert_callback):
Remove.  Remaining uses updated.
* src/json.c (json_out_t, symset_t, struct symset_tbl)
(symset_size, make_symset_table, push_symset, pop_symset)
(cleanup_symset_tables, symset_hash, symset_expand, symset_add)
(json_out_grow_buf, cleanup_json_out, json_make_room, JSON_OUT_STR)
(json_out_str, json_out_byte, json_out_fixnum, string_not_unicode)
(json_plain_char, json_out_string, json_out_nest, json_out_unnest)
(json_out_object_cons, json_out_object_hash), json_out_array)
(json_out_float, json_out_bignum, json_out_something)
(json_out_to_string, json_serialize): New.
(Fjson_serialize, Fjson_insert):
New JSON encoder implementation.
* test/src/json-tests.el (json-serialize/object-with-duplicate-keys)
(json-serialize/string): Update tests.
2024-03-30 14:45:53 +01:00
Eli Zaretskii
ab016657e7 Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs 2024-03-30 16:37:27 +03:00
David Ponce
cc212ea314 bug#69992: Minor improvement to image map transformation logic
* lisp/image.el (image--compute-rotation): New function.
(image--compute-map, image--compute-original-map): Use it.
Ensure all transformations are applied or undone according to what
Emacs does internally.  Call a transformation function only when
needed.  Fix doc string.
(image--scale-map, image--rotate-map): Assume effective scale
argument.
(image--rotate-coord): Improve doc string.
(image--flip-map): Remove no more used argument FLIP.

* test/lisp/image-tests.el (image-create-image-with-map): Use a
valid SVG image otherwise `image-size' will not return a valid
value and calculation of scale could fail.
(image-transform-map): Update according to changed signature of
`image--flip-map'.
2024-03-30 16:35:11 +03:00
Tony Zorman
77115be256 Add use-package-vc-prefer-newest user option
* 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.
2024-03-30 13:49:21 +01:00
Eli Zaretskii
87be53846b Merge from origin/emacs-29
946d4aad1d Avoid errors in Info-search-case-sensitively in DIR buffers
fbf6830299 Add test for previous change (bug#70023)
bcf6dd6e26 Add typescript-ts-mode indentation for interface bodies (...
2024-03-30 04:38:18 -04:00
Eli Zaretskii
966ece2475 ; Merge from origin/emacs-29
The following commit was skipped:

95d9e6eb6b * Don't install unnecessary trampolines (bug#69573) (don'...
2024-03-30 04:38:18 -04:00
Eli Zaretskii
b1e33b0b62 Merge from origin/emacs-29
38faacf353 Improve documentation of <Delete> in user manual
9d3d77f12d Fix documentation of 'other-window-for-scrolling'
2024-03-30 04:38:17 -04:00
Eli Zaretskii
1284aa2655 ; Merge from origin/emacs-29
The following commit was skipped:

96fb719942 Bump Emacs version to 29.3.50
2024-03-30 04:38:17 -04:00