1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-07 06:22:32 -08:00
Commit graph

171501 commits

Author SHA1 Message Date
Eli Zaretskii
706fda358b ; Merge from origin/emacs-29
The following commits were skipped:

ff6cc3d2cf * lisp/ldefs-boot.el: Regenerate.
0dab0c0d68 Bump Emacs version to 29.3
2024-03-30 04:36:13 -04:00
Eli Zaretskii
cd60fa42f6 Merge from origin/emacs-29
7a5d7be52c org--confirm-resource-safe: Fix prompt when prompting in ...
2bc865ace0 org-file-contents: Consider all remote files unsafe
6f9ea396f4 org-latex-preview: Add protection when `untrusted-content...
937b9042ad * lisp/gnus/mm-view.el (mm-display-inline-fontify): Mark ...
ccc188fcf9 * lisp/files.el (untrusted-content): New variable.
befa9fcaae org-macro--set-templates: Prevent code evaluation
3221d8d461 * admin/authors.el (authors-aliases): Add ignored authors.
8d8253f899 * etc/NEWS: Update for Emacs 29.3
2024-03-30 04:35:24 -04:00
Eli Zaretskii
06882a2d76 ; Fix last change in inclusion of byteswap.h header
* src/w32uniscribe.c (w32hb_get_font_table): Avoid warning due to
redefinition of 'bswap_32'.
2024-03-30 10:52:00 +03:00
Eli Zaretskii
d422e985ff Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs 2024-03-30 10:38:34 +03:00
Andreas Schwab
86c4e5a2fb Fix implicit declaration of bswap_{32,64}
* src/data.c: Move include of <byteswap.h> ...
* src/lisp.h: ... here.
2024-03-30 08:37:11 +01:00
Eli Zaretskii
c2d21bda61 Clean up removal of libjansson parser
* src/json.c (json_has_suffix, json_has_prefix): Remove unused
functions.
(json_object_key_to_iter, json_array_get, json_loads)
(json_load_callback, json_object_iter, json_object_iter_value)
(json_string_value, json_object_size, json_object_iter_key)
(json_object_iter_next, json_real_value, json_string_length)
(json_integer_value) [WINDOWSNT]: Don't DEF_DLL_FN, don't
LOAD_DLL_FN, and don't define a macro for unused libjansson
functions.
(JSON_HAS_ERROR_CODE): Remove: not used.
2024-03-30 10:37:09 +03:00
Géza Herman
a5df4d92e3 Replace libjansson JSON parser with a custom one
* src/json.c (json_parse_error, json_to_lisp)
(json_read_buffer_callback): Remove functions.
(struct json_parser): New struct.
(json_signal_error, json_parser_init, json_parser_done)
(json_make_object_workspace_for_slow_path)
(json_make_object_workspace_for, json_byte_workspace_reset)
(json_byte_workspace_put_slow_path, json_byte_workspace_put)
(json_input_at_eof, json_input_switch_to_secondary)
(json_input_get_slow_path, json_input_get)
(json_input_get_if_possible, json_input_put_back)
(json_skip_whitespace_internal, json_skip_whitespace)
(json_skip_whitespace_if_possible, json_hex_value)
(json_parse_unicode, json_handle_utf8_tail_bytes)
(json_parse_string, json_create_integer, json_create_float)
(json_parse_number, json_parse_array)
(json_parse_object_member_value, json_parse_object)
(json_is_token_char, json_parse_value, json_parse): New functions.
(Fjson_parse_buffer, Fjson_parse_string): Adjust to changes in the
parser.
(syms_of_json): DEFSYM new symbols and define_error new errors.
2024-03-30 10:21:35 +03:00
Po Lu
21af3a9d97 Disable VC in special directories on Android
* lisp/vc/vc-hooks.el (vc-registered, vc-backend): Return nil
without invoking any backend if FILE or FILE-OR-LIST sits within
/content or /assets.
2024-03-30 15:05:30 +08:00
Po Lu
4c9926fed1 Rationalize java/Makefile.in
* java/Makefile.in: (emacs.apk-in): Bring commentary up to date,
and package classes.dex at this stage of the process.
($(APK_NAME)): Adjust to match.
2024-03-30 09:59:36 +08:00
Po Lu
bfbddf6524 Fix building the SFNT font driver
* src/sfntfont.c (sfntfont_list, sfntfont_list_family): Update
calls to Fsort for the new calling convention.
2024-03-30 08:58:59 +08:00
Stefan Monnier
717e7edc2a * lisp/emacs-lisp/comp.el (comp--add-cond-cstrs): Consolidate 2 cases 2024-03-29 15:36:45 -04:00
Stefan Monnier
dd3e13469d * lisp/cedet/semantic/tag.el (semantic-tag): New type 2024-03-29 15:32:48 -04:00
Eli Zaretskii
42322257ba ; * lisp/shell.el (w32-application-type): Fix 'declare-function'. 2024-03-29 18:26:38 +03:00
Mattias Engdegård
f04bd55687 value< manual entry adjustments (bug#69709)
* doc/lispref/sequences.texi (Sequence Functions):
Explain lexicographical ordering.  Note the dual nature of `nil`.
Mention the depth limit.
2024-03-29 15:51:23 +01:00
Mattias Engdegård
d2d5e51439 * src/fns.c (Fvaluelt): More generous depth limit (20 -> 200).
This gives `value<` the same limit as `equal` which seems about right.
2024-03-29 15:40:15 +01:00
Sam Steingold
6f7cb96543 Support `shell-resync-dirs' on msys bash (Bug#70012)
* lisp/shell.el (w32-application-type): Declare.
(shell-mode): Set `shell-dirstack-query' to `pwd -W` when using msys bash.
2024-03-29 10:36:43 -04:00
Eli Zaretskii
1f19ddec5b ; * doc/lispref/sequences.texi (Sequence Functions): Fix markup and examples. 2024-03-29 15:03:44 +03:00
Mattias Engdegård
2f0df93d8c ; * test/lisp/vc/vc-git-tests.el: bend doc string quote 2024-03-29 11:53:56 +01:00
Mattias Engdegård
b20866c4b3 Better sort ignored-return-value warning
* lisp/emacs-lisp/bytecomp.el (byte-compile-form)
(bytecomp--actually-important-return-value-p):
Special handling of `sort` that takes into account that it may return
an important value depending on the :in-place keyword argument.
2024-03-29 11:39:38 +01:00
Mattias Engdegård
cbd862865f Remove sort-on (bug#69709)
* lisp/sort.el (sort-on):
* doc/lispref/sequences.texi (Sequence Functions):
* etc/NEWS:
Remove the `sort-on` function which is now completely superseded by
the extended `sort` in features, ease of use, and performance.
2024-03-29 11:39:38 +01:00
Mattias Engdegård
92d659ce6c Use new-style sort signature in Lisp manual examples
* doc/lispref/help.texi (Accessing Documentation):
* doc/lispref/strings.texi (Text Comparison):
Use the new sort calling convention (bug#69709).
2024-03-29 11:39:38 +01:00
Mattias Engdegård
45941a62c7 Faster non-destructive list sorting
Postpone the creation of a new list to after sorting which turns out to
be a lot faster (1.1x - 1.5x speedup).

* src/fns.c (sort_list, sort_vector, Fsort):
Create the new list when moving the data out from the temporary array.
2024-03-29 11:39:38 +01:00
Mattias Engdegård
deae311281 Speed up sort by special-casing the value< ordering
This gives a 1.5x-2x speed-up when using the default :lessp value,
by eliminating the Ffuncall overhead.

* src/sort.c (order_pred_lisp, order_pred_valuelt): New.
(merge_state, inorder, binarysort, count_run, gallop_left, gallop_right)
(merge_init, merge_lo, merge_hi, tim_sort):
* src/fns.c (Fsort):
When using value<, call it directly.
2024-03-29 11:39:38 +01:00
Mattias Engdegård
ae5f2c02bd New sort keyword arguments (bug#69709)
Add the :key, :lessp, :reverse and :in-place keyword arguments.
The old calling style remains available and is unchanged.

* src/fns.c (sort_list, sort_vector, Fsort):
* src/sort.c (tim_sort):
Add keyword arguments with associated new features.
All callers of Fsort adapted.
* test/src/fns-tests.el (fns-tests--shuffle-vector, fns-tests-sort-kw):
New test.
* doc/lispref/sequences.texi (Sequence Functions): Update manual.
* etc/NEWS: Announce.
2024-03-29 11:39:38 +01:00
Mattias Engdegård
a52f1121a3 Add back timsort key function handling (bug#69709)
The original timsort code did provide for a key (accessor) function
along with the necessary storage management, but we dropped it because
our `sort` function didn't need it.

Now it's been put back since it seems that it will come in handy after all.

* src/fns.c (sort_list, sort_vector, Fsort): Pass Qnil as key function
to tim_sort.
* src/sort.c (reverse_slice, sortslice_copy)
(sortslice_copy_incr, sortslice_copy_decr, sortslice_memcpy)
(sortslice_memmove, sortslice_advance): New functions.
(sortslice): New type.
(struct stretch, struct reloc, merge_state)
(binarysort, merge_init, merge_markmem, cleanup_mem)
(merge_register_cleanup, merge_getmem, merge_lo, merge_hi, merge_at)
(found_new_run, reverse_sortslice, resolve_fun, tim_sort):
Merge back previously discarded parts from the upstreams timsort code
that dealt with key functions, and adapt them to fit in.
2024-03-29 11:39:38 +01:00
Mattias Engdegård
1232ab31c6 Add value< (bug#69709)
It's a general-purpose polymorphic ordering function, like `<` but
for any two values of the same type.

* src/data.c (syms_of_data): Add the `type-mismatch` error.
(bits_word_to_host_endian): Move...
* src/lisp.h (bits_word_to_host_endian): ...here, and declare inline.
* src/fns.c (Fstring_lessp): Extract the bulk of this function to...
(string_cmp): ...this 3-way comparison function, for use elsewhere.
(bool_vector_cmp, value_cmp, Fvaluelt): New.
* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns, pure-fns):
Add `value<`, which is pure and side-effect-free.
* test/src/fns-tests.el (fns-value<-ordered, fns-value<-unordered)
(fns-value<-type-mismatch, fns-value<-symbol-with-pos)
(fns-value<-circle, ert-deftest fns-value<-bool-vector): New tests.
* doc/lispref/sequences.texi (Sequence Functions):
* doc/lispref/numbers.texi (Comparison of Numbers):
* doc/lispref/strings.texi (Text Comparison):
Document the new value< function.
* etc/NEWS: Announce.
2024-03-29 11:39:38 +01:00
Po Lu
c3684b9788 ; * java/org/gnu/emacs/EmacsActivity.java (isReallyFinishing): Fix typo. 2024-03-29 08:26:48 +08:00
Po Lu
755665d95a Prevent Android OS task trimming from deleting Emacs frames
* doc/emacs/android.texi (Android Windowing): Document proviso
on Android 7.0 and later.

* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity)
<timeOfLastInteraction>: New field.
(onStop, onResume): Set and clear timeOfLastInteraction.
(isReallyFinishing): New function.
(onDestroy): Don't delete frame even in the event isFinishing
returns true if more than 4 hours have elapsed since the
activity last moved into the background.
2024-03-29 08:26:48 +08:00
Stefan Monnier
4cee95815b pp.el: Try and fix bug#70039
* lisp/emacs-lisp/pp.el (pp-fill): Avoid splitting `#N#` or `#[`.
* test/lisp/emacs-lisp/pp-tests.el (pp-tests--sanity): New test.
2024-03-28 15:31:04 -04:00
Stefan Monnier
de9e913f9e * lisp/emacs-lisp/cl-macs.el (list): Predefine predicate by hand 2024-03-28 12:27:54 -04:00
Eli Zaretskii
6c1a11078b Fix a typo in flymake.el
* lisp/progmodes/flymake.el (flymake--update-eol-overlays): Use
'save-restriction', not 'save-excursion'.  (Bug#69984)
2024-03-28 12:15:13 +02:00
Joseph Turner
a4da3971f2 copy-tree just image map, not entire image
* lisp/image.el (image--compute-original-map): Copy only
the image map.  (Bug#69602)
2024-03-28 12:11:50 +02:00
Eli Zaretskii
f021c3dbcd ; * etc/NEWS: Announce new feature of Proced. (Bug#69784) 2024-03-28 11:50:22 +02:00
Rahguzar
b2793febca Allow for auto updating only visible proced buffers (bug#69784)
* lisp/proced.el (proced-auto-update-flag): Document 'visible'
value and add it to the custom type.
(proced-auto-update-timer, proced-toggle-auto-update): Take
'visible' value into account.
2024-03-28 11:46:19 +02:00
Vladimir Kazanov
cdd7093e17 Improve ert-font-lock assertion parser (Bug#69714)
Fail on files with no assertions, parser now accepts multiple
carets per line and face lists:
* lisp/emacs-lisp/ert-font-lock.el: Assertion parser fix.
* test/lisp/emacs-lisp/ert-font-lock-resources/no-asserts.js:
* test/lisp/emacs-lisp/ert-font-lock-tests.el
(test-parse-comments--no-assertion-error)
(test-syntax-highlight-inline--caret-negated-wrong-face)
(test-macro-test--file-no-asserts): New test cases.
* doc/misc/ert.texi (Syntax Highlighting Tests): More syntax examples.
2024-03-28 11:40:27 +02:00
Eli Zaretskii
35ae2c576b ; * lisp/emacs-lisp/pcase.el (pcase--subtype-bitsets): Doc fix. 2024-03-28 11:34:25 +02:00
Stefan Monnier
f1fe13ea05 (pcase-mutually-exclusive): Use auto-generated table
The `pcase-mutually-exclusive-predicates` table was not very
efficient since it grew like O(N²) with the number of
predicates.  Replace it with an O(N) table that's auto-generated
from the `built-in-class` objects.

* lisp/emacs-lisp/pcase.el (pcase-mutually-exclusive-predicates):
Delete variable.
(pcase--subtype-bitsets): New function and constant.
(pcase--mutually-exclusive-p): Use them.
* lisp/emacs-lisp/cl-preloaded.el (built-in-class): Don't inline.
2024-03-28 00:06:00 -04:00
Dmitry Gutov
1552f8345d (project-current): Add binding for 'non-essential'
* lisp/progmodes/project.el (project-current):
Add binding for 'non-essential' (bug#69584).
2024-03-28 05:41:52 +02:00
Spencer Baugh
5efa2ddf62 Correctly check buffer mtime when displaying xref matches
This was just a typo: we were checking the modification time of
current-buffer instead of checking the modification time of the
passed-in buffer.

This caused matches to not be shown if they weren't present in
the current in-Emacs state of the buffer.

This was easily reproduced by writing a string to a file outside
Emacs, then searching for that string with
e.g. project-find-regexp.  The string would seemingly not be
found, although in reality it was found, just not displayed.

* lisp/progmodes/xref.el (xref--find-file-buffer):
Check buf, not current-buffer (bug#70008).
2024-03-28 05:23:23 +02:00
Po Lu
5a7c46355b Remove IME_FLAG_FORCE_ASCII from password input IME flags
* java/org/gnu/emacs/EmacsView.java (onCreateInputConnection):
Passwords might also be non-ASCII, and this flag apparently
requests an IME limited to ASCII characters, rather than just
capable of ASCII input.
2024-03-27 10:03:15 +08:00
Stefan Monnier
48b6e6bd80 * lisp/help.el (help-function-arglist): Don't substitute-command-keys 2024-03-26 17:41:42 -04:00
Stefan Monnier
e5d824b632 cl-preloaded.el: Partly revert last change
The change caused type-check errors in auth-source where they use
`:type function` constraints on object slots and expect those to
be able to hold symbols.

* lisp/emacs-lisp/cl-preloaded.el (function): Revert last change.

* test/src/data-tests.el (data-tests--cl-type-of): Use `cl-functionp`
rather than `functionp` to test `function`.
2024-03-26 17:27:29 -04:00
Alan Mackenzie
ed85132740 CC Mode: Handle C++20's if consteval
* lisp/progmodes/cc-engine.el (c-after-conditional): Handle the
new keyword in place of a paren sexp after `if'.

* lisp/progmodes/cc-langs.el (c-negation-op-re)
(c-paren-clause-kwds, c-paren-clause-key)
(c-block-stmt-with-kwds, c-block-stmt-with-key): New
lang-consts/vars.

* if-11.cc, if-11.res: New test files.
2024-03-26 20:59:43 +00:00
Stefan Monnier
004f2493a5 cl-preloaded.el: Fix the type lattice
We generally want types to form not just a DAG but a lattice.
If objects can be both `keyword` and `symbol-with-pos`, this
means there should be a more precise type describing this intersection.
If we ever find the need for such a refinement, we could add
such a `keyword-with-pos` type, but here I took the simpler
route of treating `keyword` not as a proper built-in type but
as a second-class type like `natnum`.

While fixing this problem, also fix the problem we had where
`functionp` was not quite adequate to characterize objects of type
`function`, by introducing a new predicate `cl-functionp` for that.

* lisp/emacs-lisp/cl-preloaded.el (cl-functionp): New function.
(function): Use it.
(keyword): Don't declare it as a built-in type.
(user-ptrp): Remove redundant declaration.

* lisp/emacs-lisp/cl-generic.el (cl--generic--unreachable-types):
Delete constant.
(cl-generic-generalizers): Remove corresponding test.

* lisp/emacs-lisp/cl-macs.el (cl-deftype-satisfies): Add entry for
`keyword` type.

* lisp/emacs-lisp/comp.el (comp-known-predicates): Fix type for
negative result of `characterp`.  Remove duplicate `numberp` entry.
Fix types for `keywordp` now that `keyword` is not a built-in type any more.

* test/src/data-tests.el (data-tests--cl-type-of): Add a few cases.
Remove workaround for `function`.
2024-03-26 13:14:15 -04:00
Eli Zaretskii
351d98535d ; Fix recently-changed documentation
* src/buffer.c (syms_of_buffer) <text-conversion-style>:
* doc/lispref/commands.texi (Misc Events): Fix wording and
punctuation of the documentation.
2024-03-26 14:24:16 +02:00
Andrea Corallo
8cc67dbcec Fix native comp prediction on null functionp tested objects
* lisp/emacs-lisp/comp.el (comp-known-predicates)
(comp-known-predicates-h): Update.
(comp--pred-to-pos-cstr, comp--pred-to-neg-cstr): New functions.
(comp--add-cond-cstrs): Make use of them.

* test/src/comp-tests.el (comp-tests-type-spec-tests): Add a test.
2024-03-26 11:14:08 +01:00
Po Lu
b7b9a0a5c1 Prevent focus "stalemates" on Android
* java/org/gnu/emacs/EmacsActivity.java (invalidateFocus1): New
argument resetWhenChildless.
(invalidateFocus): If a toplevel window has no focus window,
transfer focus to the toplevel itself.
2024-03-26 10:54:39 +08:00
Po Lu
728bf2c9e5 Prevent passwords from being recorded during text conversion
* doc/lispref/commands.texi (Misc Events): Document new value of
text-conversion-style.

* java/org/gnu/emacs/EmacsService.java (EmacsService)
<IC_MODE_PASSWORD>: New constant.

* java/org/gnu/emacs/EmacsView.java (onCreateInputConnection):
Set TYPE_TEXT_VARIATION_PASSWORD and IME_FLAG_FORCE_ASII if mode
is IC_MODE_PASSWORD.

* lisp/subr.el (read-passwd): Set text-conversion-style to
`password'.

* src/androidgui.h (enum android_ic_mode): New value
ANDROID_IC_MODE_PASSWORD.

* src/androidterm.c (android_reset_conversion): Handle
`password'.

* src/buffer.c (syms_of_buffer)
<&BVAR (current_buffer, text_conversion_style)>: Update doc
string.

* src/textconv.c (syms_of_textconv) <Qpassword>: New DEFSYM.
<Vtext_conversion_edits>: Fix typos in doc string.
2024-03-26 10:11:26 +08:00
Eli Zaretskii
7fba25cf53 Fix removal of bookmark's fringe mark in Info and Dired
* lisp/bookmark.el (bookmark-buffer-file-name): Support Info
buffers.
(bookmark--remove-fringe-mark): Call 'bookmark-buffer-file-name'
instead of using 'buffer-file-name', which could be nil.
(Bug#69974)
2024-03-25 15:51:07 +02:00
Eli Zaretskii
a79b424f7f Document the 'I' command in buffer-menu
* doc/emacs/buffers.texi (Several Buffers): Document 'I'.  Fix
indexing.
(List Buffers): Mention 'I'.  (Bug#69987)

* etc/NEWS: Mark 'I' as documented.
2024-03-25 14:53:23 +02:00