]> git.eshelyaron.com Git - emacs.git/log
emacs.git
15 months ago* Make comp tests robust against sxhash-equal internal changes
Andrea Corallo [Thu, 25 Jan 2024 13:37:17 +0000 (14:37 +0100)]
* Make comp tests robust against sxhash-equal internal changes

* test/src/comp-tests.el (cl-seq): Require.
(comp-tests--types-equal): New function.
(comp-tests-check-ret-type-spec): Make use of.

(cherry picked from commit 5d91cbf9a57d519968a6fb3ad6edfbf9709574a5)

15 months agoEglot: bump to 1.17
João Távora [Thu, 25 Jan 2024 12:18:58 +0000 (12:18 +0000)]
Eglot: bump to 1.17

* etc/EGLOT-NEWS: Update.

* lisp/progmodes/eglot.el (Version): Bump to 1.17
(Package-Requires): Bump jsonrpc depedency to 1.24

(cherry picked from commit b014bca833a17f5b2258e88115f03cffa983d0bd)

15 months agoEglot: fix bug introduced when "fixing" middle-of-symbol completions
João Távora [Thu, 25 Jan 2024 12:10:40 +0000 (12:10 +0000)]
Eglot: fix bug introduced when "fixing" middle-of-symbol completions

Culprit:

    commit a6ef458e3831001b0acad57cf8fa75b77a4aff3f
    Author: João Távora <joaotavora@gmail.com>
    Date:   Tue Dec 26 00:31:29 2023 +0000

        Eglot: partial fix for middle-of-symbol completions

The decision to restore the buffer state to when the last LSP
completion set was invoked is rock-solid (because that the state
those completions' edits apply to).

However, when caching the LSP completions across multiple
eglot-completion-at-point calls, we must make sure to also restore the
values of the local values, such as 'bounds-string'.  This allows us
to do that restoration.

* lisp/progmodes/eglot.el (eglot-completion-at-point): Also
restore bounds-string from capf session cache.

Github-reference: https://github.com/joaotavora/eglot/issues/1349
(cherry picked from commit 5d88c98e7c101ebad68b562334020b8c082c2ca5)

15 months agoUpdate minibuffer-show-help based on minibuffer-visible-completions
Spencer Baugh [Wed, 24 Jan 2024 16:10:40 +0000 (11:10 -0500)]
Update minibuffer-show-help based on minibuffer-visible-completions

minibuffer-visible-completions makes some more convenient bindings
available, but the help shown by minibuffer-show-help wasn't
suggesting them.  Now it is.

* lisp/simple.el (completion-setup-function): Change help text when
minibuffer-visible-completions is non-nil. (bug#68689)

(cherry picked from commit b5d36efa5777e4cc6db1067d58224d676cedbdd3)

15 months agoFix next-line-completion for multi-line completions
Spencer Baugh [Wed, 24 Jan 2024 15:52:40 +0000 (10:52 -0500)]
Fix next-line-completion for multi-line completions

Previously it would not move out of a multi-line completion, and now it will.

* lisp/simple.el (next-line-completion): Move to the completion start
or end before going forward or backward lines.  (bug#68688)

(cherry picked from commit 28c9c7cf464c87e90567f8b0e04f854163aa6187)

15 months agoAdd more erc-message-type choices
Corwin Brust [Sat, 20 Jan 2024 05:51:36 +0000 (23:51 -0600)]
Add more erc-message-type choices

* lisp/erc/erc.el (erc-message-type): Add more of the possible
IRC message types to customize widget for `erc-*hide-list'.
New options have tags informed by these descriptions:
https://modern.ircdocs.horse/#numerics   (Bug#68601)

(cherry picked from commit 1ba8d1c43702cf8ddd5d7159401d7b3ebc51f4fe)

15 months agoAdd replacement-text field to erc-input struct
F. Jason Park [Mon, 1 Jan 2024 14:37:25 +0000 (06:37 -0800)]
Add replacement-text field to erc-input struct

* etc/ERC-NEWS: Promote `refoldp' slot from simulated to real.
Mention new `substxt' slot of `erc-input' struct.
* lisp/erc/erc-common.el (erc-input): Add `substxt' and `refoldp'
slots.
(erc--input-split): Move `refoldp' to "superclass".
* lisp/erc/erc-goodies.el (erc--command-indicator-permit-insertion):
Use `substxt' field instead of overloading `insertp'.
(erc--command-indicator-display): Accept extra lines for
compatibility.
* lisp/erc/erc.el (erc-pre-send-functions): Revise doc.
(erc--input-ensure-hook-context, erc-input-refoldp): Remove unused
functions, originally meant to be new in ERC 5.6.
(erc--run-send-hooks): Copy data from additional fields of `erc-input'
object to `erc--input-split' workspace object.
(erc--send-input-lines): Handle `substxt' field of `erc-input' object
when it's non-nil.  (Bug#68265)

(cherry picked from commit d6be068ffe8c151575ea784ce508711b41cec7c5)

15 months agoForce erc-speedbar to update on insertion
F. Jason Park [Tue, 16 Jan 2024 18:42:21 +0000 (10:42 -0800)]
Force erc-speedbar to update on insertion

* lisp/erc/erc-speedbar.el (erc-speedbar--force-update-interval-secs,
erc-speedbar--last-ran): New variables.
(erc-speedbar--reset-last-ran-on-timer,
erc-speedbar--run-timer-on-post-insert): New functions.
(erc-nickbar-mode, erc-nickbar-enable, erc-nickbar-disable): Use
`erc-insert-post-hook' and `speedbar-timer-hook' to update the
speedbar periodically.  (Bug#63595)

(cherry picked from commit aae131b8dd9ab3c3ceb23079796005873e107bee)

15 months agoActually derive channel membership from PREFIX in ERC
F. Jason Park [Thu, 18 Jan 2024 05:42:02 +0000 (21:42 -0800)]
Actually derive channel membership from PREFIX in ERC

* lisp/erc/erc-backend.el (erc--with-isupport-data): Add comment for
possibly superior alternate implementation.
* lisp/erc/erc-common.el (erc--get-isupport-entry): Use helper to
initialize traditional prefix slots in overridden well-known
constructor.
(erc--parsed-prefix): Reverse order of characters in the `letters'
and `statuses' slots, in their defaults and also their definitions.
(erc--strpos): New function, a utility for finding a single character
in a string.
* lisp/erc/erc.el (erc--define-channel-user-status-compat-getter):
Modify to query advertised value for associated mode letter at runtime
instead of baking it in.
(erc-channel-user-voice, erc-channel-user-halfop, erc-channel-user-op,
erc-channel-user-admin, erc-channel-user-owner): Supply second
argument for fallback mode letter.
(erc--cusr-status-p, erc--cusr-change-status): New functions for
querying and modifying `erc-channel-user' statuses.
(erc-send-input-line): Update speaker time in own nick's
`erc-channel-member' entry.
(erc-get-channel-membership-prefix): Adapt code to prefer advertised
prefix for mode letter.
(erc--parsed-prefix): Save "reversed" `letters' and `statuses' so that
they're ordered from lowest to highest semantically.
(erc--get-prefix-flag, erc--init-cusr-fallback-status,
erc--compute-cusr-fallback-status): New functions for retrieving
internal prefix values and massaging hard-coded traditional prefixes
so they're compatible with existing `erc-channel-member' update code.
(erc--partition-prefixed-names): New function, separated for testing
and for conversion to a generic in the future when ERC supports
extensions that list member rolls in a different format.
(erc-channel-receive-names): Refactor to use new status-aware update
and init workhorse functions for updating and initializing a
`erc-channel-members' entry.
(erc--create-current-channel-member): New "status-aware" function
comprising the `addp' path of `erc-update-current-channel-member'.
(erc--update-current-channel-member): New "status-aware" function
comprising the "update" path of `erc-update-current-channel-member',
which ran when an existing `erc-channel-members' entry for the queried
nick was found.
(erc-update-current-channel-member): Split code body into two
constituent functions, both for readability and for usability, so
callers can more explicitly request the desired operation in a
"status-aware" manner.
(erc--update-membership-prefix): Remove unused function, originally
meant to be new in ERC 5.6.
(erc--process-channel-modes): Call `erc--cusr-change-status' instead
of `erc--update-membership-prefix'.
(erc--shuffle-nuh-nickward): New utility function to ensure code like
`erc--partition-prefixed-names' can use `erc--parse-nuh' in a
practical and relatively convenient way in the near future.
* test/lisp/erc/erc-scenarios-base-chan-modes.el
(erc-scenarios-base-chan-modes--speaker-status): New test.
* test/lisp/erc/erc-tests.el (erc--parsed-prefix): Reverse expected
order of various slot values in `erc--parsed-prefix' objects.
(erc--get-prefix-flag, erc--init-cusr-fallback-status,
erc--compute-cusr-fallback-status, erc--cusr-status-p,
erc--cusr-change-status): New tests.
(erc--update-channel-modes, erc-process-input-line): Use newly
available utilities imported from common library.
* test/lisp/erc/resources/base/modes/speaker-status.eld: New file.
(Bug#67220)

(cherry picked from commit aedc8b55bfc4d2864d777ac17f6bcf70e4ee04ce)

15 months agoReserve negative depth range for ERC's insert hooks
F. Jason Park [Fri, 19 Jan 2024 17:11:37 +0000 (09:11 -0800)]
Reserve negative depth range for ERC's insert hooks

* etc/ERC-NEWS: Mention additional reserved depth range of -80 to -20.
Also mention possibly having to cycle module activation state after
updating options.
* lisp/erc/erc-goodies.el (erc-irccontrols-mode,
erc-irccontrols-enable): Add `erc-controls-highlight' to
`erc-insert-modify-hook' at depth -50.
* lisp/erc/erc.el (erc-insert-modify-hook): Mention negative
hook-depth range in doc string.

(cherry picked from commit d85f561da03cd4705341a5a73f5c643f778e0f35)

15 months agoPrevent matrices from remaining invalid post mini-window resize
Po Lu [Thu, 25 Jan 2024 04:17:54 +0000 (12:17 +0800)]
Prevent matrices from remaining invalid post mini-window resize

* src/androidfns.c (android_create_tip_frame): Enable building
with GLYPH_DEBUG.

* src/window.c (resize_mini_window_apply): Garbage the frame if
F->redisplay is already set to indicate that redisplay_internal
should nevertheless return to it.

(cherry picked from commit caea0c1649d1df96b811c1388fde396e66bc356b)

15 months agoEglot: try even harder to avoid other completion styles (bug#68699)
João Távora [Thu, 25 Jan 2024 01:37:57 +0000 (01:37 +0000)]
Eglot: try even harder to avoid other completion styles (bug#68699)

Any completion style except for eglot--dumb-flex spells trouble for
Eglot, for the well known reason that LSP is geared towards completion
tooltips and none of Emacs' partial-completion shenanigans.

This commit puts a "try-completion" function that doesn't return nil
in the eglot--dumb-flex completion style so that other styles aren't
tried (partial-completion, in particular, errors out).

The function often doesn't do anything very useful, but at least it
doesn't stop the more usual *Completions* buffer from appearing.

* lisp/progmodes/eglot.el (eglot--dumb-tryc): New helper.
(completion-styles-alist): Add it to the dumb-flex style.

(cherry picked from commit 65ea742ed5ec505837706d64690e3cc2073825c7)

15 months ago* src/lisp.h (DOHASH): Handle rehashing (bug#68690)
Stefan Monnier [Wed, 24 Jan 2024 19:52:09 +0000 (14:52 -0500)]
* src/lisp.h (DOHASH): Handle rehashing (bug#68690)

I gave too much credit to the comment, and didn't realize that macro
was used in places that didn't obey the comment.
This macro is getting pretty hideous!

(cherry picked from commit ad004f10f3668d464d32ed8da18639da9bcc01bb)

15 months agoHighlight previously used completions (à la visited links)
Eshel Yaron [Thu, 25 Jan 2024 06:54:03 +0000 (07:54 +0100)]
Highlight previously used completions (à la visited links)

* lisp/minibuffer.el (completions-previous-input): New face.
(completions-highlight-previous-inputs): New user option.
(minibuffer-completion-help): Highlight completion candidates that
occur in the minibuffer history, optionally.

* doc/emacs/mini.texi (Completion Options): Document new feature.

* etc/NEWS: Announce it.

15 months ago; (minibuffer-force-complete-and-exit): Simplify, improve docs.
Eshel Yaron [Thu, 25 Jan 2024 06:42:54 +0000 (07:42 +0100)]
; (minibuffer-force-complete-and-exit): Simplify, improve docs.

15 months agoTake stock of the wheel-up/down confusion
Stefan Monnier [Wed, 24 Jan 2024 17:57:33 +0000 (12:57 -0500)]
Take stock of the wheel-up/down confusion

While we're hopefully all aware of the usual confusion between
the scroll operation moving the document or moving the viewport, Emacs
has its very own instance of that confusion where the
`mouse-wheel-down-event` variable is the one that (used to) hold
the value `wheel-up` and vice versa.

Thanks for Po Lu's commit 957b4f826a4 which not only fixed my change
but brought that confusion to my attention.
This patch doesn't fix the problem, but tries to fix the other places
in the code where we did not take it into account.

* doc/lispref/commands.texi (Misc Events): Mention the
wheel-up/down confusion.

* lisp/progmodes/flymake.el (flymake--mode-line-counter-map):
* lisp/completion-preview.el (completion-preview--mouse-map):
Fix wheel-up/down confusion.

* lisp/mwheel.el (mouse-wheel-down-event, mouse-wheel-up-event):
Fix docstrings.

(cherry picked from commit 1f3371b46e8a6a51f88c56785175b48af2a0bed7)

15 months agoFix build when CHECK_LISP_OBJECT_TYPE is set
Stefan Monnier [Wed, 24 Jan 2024 15:21:44 +0000 (10:21 -0500)]
Fix build  when CHECK_LISP_OBJECT_TYPE is set

* src/lisp.h (make_lisp_symbol_internal): Fix last commit.

(cherry picked from commit c9705037e98a398d0e6e145f16e0ce8cdd4a8973)

15 months ago* lisp/emacs-lisp/pcase.el (Commentary:): Add paper reference
Stefan Monnier [Wed, 24 Jan 2024 13:21:26 +0000 (08:21 -0500)]
* lisp/emacs-lisp/pcase.el (Commentary:): Add paper reference

(cherry picked from commit a043cccb62bfd1812cedf107db327039dfdfe89b)

15 months ago(struct composition): Remove dependency on hash-table internals
Stefan Monnier [Wed, 24 Jan 2024 13:16:11 +0000 (08:16 -0500)]
(struct composition): Remove dependency on hash-table internals

`struct composition` kept an index into the internal `key_and_value` array
of hash tables, which only worked because of details of how
hash-tables are handled.  Replace it with a reference to the
key stored at that location in the hash-table, which saves us an
indirection while at it.

* src/composite.h (struct composition): Replace `hash_index` with
the actual `key`.
(COMPOSITION_KEY): Simplify accordingly.
(mark_composite): Declare.
* src/composite.c (get_composition_id): Adjust accordingly.
(mark_composite): New function.

* src/charset.c (mark_charset): Uncomment.
* src/lisp.h (mark_charset): Declare.
* src/alloc.c (garbage_collect): Call `mark_charset` and `mark_composite`.
* src/pdumper.c (hash_table_contents): Remove invalid comment, since
compositions aren't dumped.

(cherry picked from commit cc861fc528b49fc459bb9a1e5054f5fd82e1b689)

15 months ago(DOHASH): Change calling convention
Stefan Monnier [Wed, 24 Jan 2024 13:07:54 +0000 (08:07 -0500)]
(DOHASH): Change calling convention

This leads to simpler code in the users, and more efficient machine
code because we don't repeatedly need to fetch the `table_size`
and `key_and_value` fields of the hash table object.

* src/lisp.h (DOHASH): Rewrite.
* src/composite.c (composition_gstring_lookup_cache): Simplify.
(composition_gstring_cache_clear_font):
* src/print.c (print):
* src/pdumper.c (hash_table_contents):
* src/minibuf.c (Ftest_completion):
* src/json.c (lisp_to_json_nonscalar_1):
* src/emacs-module.c (module_global_reference_p):
* src/comp.c (compile_function, Fcomp__compile_ctxt_to_file):
* src/fns.c (Fmaphash): Adjust to new calling convention.

(cherry picked from commit 3018c6e7ba5d35b756aea5eed7f3981548a597b4)

15 months agoRemove too-tricky make_lisp_symbol optimization
Stefan Monnier [Wed, 24 Jan 2024 07:35:22 +0000 (23:35 -0800)]
Remove too-tricky make_lisp_symbol optimization

Simplify optimization for make_lisp_symbol, so that
it’s less tricky and works well enough for gcc -Og or -O2.
* src/lisp.h (lisp_h_builtin_lisp_symbol): Remove.
(builtin_lisp_symbol) [DEFINE_KEY_OPS_AS_MACROS]: Remove.
(make_lisp_symbol_nodebug): New internal static function,
which is like the old make_lisp_symbol but without the eassert.
(make_lisp_symbol, builtin_lisp_symbol): Use it, so that
make_lisp_symbol has the eassert but builtin_lisp_symbol doesn’t.
Co-authored-by: Paul Eggert <eggert@cs.ucla.edu>
(cherry picked from commit 802821b81ac5ad0dee7f26caa519326251b262c1)

15 months ago(struct charset): Remove dependency on hash-table internals
Stefan Monnier [Wed, 24 Jan 2024 03:30:13 +0000 (22:30 -0500)]
(struct charset): Remove dependency on hash-table internals

`struct charset` kept an index into the internal `key_and_value` array
of hash tables, which only worked because of details of how
hash-tables are handled.  Replace it with a reference to the
value stored at that location in the hash-table, which saves us an
indirection while at it.

* src/charset.h (struct charset): Replace `hash_index` field with
`attributes` field.
(CHARSET_ATTRIBUTES): Simplify accordingly.
(CHARSET_HASH_INDEX): Delete unused macro.
* src/charset.c (Fdefine_charset_internal):
* src/pdumper.c (dump_charset): Adjust accordingly.
(dump_charset_table): Set the referrer since that's needed while
dumping Lisp_Object fields.

(cherry picked from commit 33b8d5b6c5a22bab069cdac4bddda932b3d18b13)

15 months agoFix cus-test-deps
Michael Albinus [Tue, 23 Jan 2024 18:24:29 +0000 (19:24 +0100)]
Fix cus-test-deps

* admin/cus-test.el (cus-test-deps): Add the "quail/" subdirectory
to default-directory, temporarily.

(cherry picked from commit 13c7249105ec0d1a070c6d4e9f73f3c21d905bc8)

15 months agoFurther shrink eglot--{}
Basil L. Contovounesios [Fri, 19 Jan 2024 12:50:29 +0000 (13:50 +0100)]
Further shrink eglot--{}

Up to and including Emacs 29, :size 0 was an alias for :size 1.
Emacs 30 gained support for :size 0 hash tables (bug#68244).

* lisp/progmodes/eglot.el (eglot--{}): Define as truly zero-sized.

(cherry picked from commit 87cf30fba37346a179c6307a29d5d39b39311cef)

15 months ago; Fix DOHASH
Gerd Möllmann [Tue, 23 Jan 2024 05:47:40 +0000 (06:47 +0100)]
; Fix DOHASH

(cherry picked from commit 21e272fe4f336827611c4005a56829a0ab02f3f8)

15 months agoCorrect crash when executing IP within twilight zone
Po Lu [Tue, 23 Jan 2024 02:30:51 +0000 (10:30 +0800)]
Correct crash when executing IP within twilight zone

* src/sfnt.c (sfnt_address_zp2, sfnt_address_zp1)
(sfnt_address_zp0): Don't save into X or Y if the zone is set to
the twilight zone and they are NULL.

(cherry picked from commit 54abf10dfeeb890fa46c43f13e6c7468a0d945e4)

15 months ago* src/sfnt.c (sfnt_mul_f26dot6_fixed): Correct typo in last change.
Po Lu [Tue, 23 Jan 2024 01:41:41 +0000 (09:41 +0800)]
* src/sfnt.c (sfnt_mul_f26dot6_fixed): Correct typo in last change.

(cherry picked from commit a3d10046d9945148c20aa1db4e6ba8ba1bc5eb3e)

15 months ago* src/regex-emacs.c (forall_firstchar_1): Improve corner case
Stefan Monnier [Mon, 22 Jan 2024 20:06:24 +0000 (15:06 -0500)]
* src/regex-emacs.c (forall_firstchar_1): Improve corner case

Fixes a "FORALL_FIRSTCHAR: Broken assumption2!!" warning with:

    "^\\(# *\\)\\([^ ]+?\\) *: *\\(.*?\\(?:\n\\1[ \t]+.*?\\)*\\)[[:space:]]*$"

(cherry picked from commit f821ac29e0cf69316d6c721bafe9b749b47a6db3)

15 months ago; Narrow character name completions by Unicode category
Eshel Yaron [Tue, 23 Jan 2024 10:35:20 +0000 (11:35 +0100)]
; Narrow character name completions by Unicode category

* lisp/international/mule-cmds.el (mule--ucs-names-sort-by-code)
(mule--ucs-names-affixation): Add documentation string.
(mule--ucs-categories-annotation, mule--ucs-names-narrow): New funcs.
(read-char-by-name): Provide 'narrow-completions-function' metadata.

15 months ago; Remove references to obsolete 'help-follow' in documentation
Eshel Yaron [Mon, 22 Jan 2024 18:00:48 +0000 (19:00 +0100)]
; Remove references to obsolete 'help-follow' in documentation

* doc/emacs/help.texi (Help Mode)
* doc/lispintro/emacs-lisp-intro.texi (Conclusion): Replace
'help-follow' with 'push-button'.

15 months ago* src/pdumper.c (dump_object_needs_dumping_p): Simplify
Stefan Monnier [Mon, 22 Jan 2024 14:48:48 +0000 (09:48 -0500)]
* src/pdumper.c (dump_object_needs_dumping_p): Simplify

(hash_table_contents): Use DOHASH.

(cherry picked from commit 797c688f4ab33a196477fd85f83f7438d113dc7d)

15 months agoRevert "* Update a comp test (bug#68523)"
Andrea Corallo [Mon, 22 Jan 2024 07:49:17 +0000 (08:49 +0100)]
Revert "* Update a comp test (bug#68523)"

* test/src/comp-tests.el (comp-tests-ret-type-spec-71): Reverts commit
c5031a52c5c6ad74fab27d3754700e7457717516 to compensate for
50201e03b9c.

(cherry picked from commit 269d3515608e4e91cdd03f90bac9c2a9d5e3d094)

15 months ago* lisp/leim/quail/indian.el (tamil-input): Use `quail' as parent group.
Michael Albinus [Mon, 22 Jan 2024 08:20:46 +0000 (09:20 +0100)]
* lisp/leim/quail/indian.el (tamil-input): Use `quail' as parent group.

(cherry picked from commit e780f98944fbb14a22a2b1e15d0e7cb435f55550)

15 months agoDo not overwrite flags of succeeding points during generic move
Po Lu [Mon, 22 Jan 2024 08:01:13 +0000 (16:01 +0800)]
Do not overwrite flags of succeeding points during generic move

* src/sfnt.c (sfnt_move): Save FLAGS and restore it after X
axis movement loop.

(cherry picked from commit b2366900d4981c13152ef7fe15a44ad9b4b7663b)

15 months agoCorrect values of INSTCTRL flags tested
Po Lu [Mon, 22 Jan 2024 07:29:18 +0000 (15:29 +0800)]
Correct values of INSTCTRL flags tested

* src/sfnt.c (sfnt_mul_f26dot6_round): New function.
(sfnt_mul_f26dot6_fixed): Replace by call to
sfnt_mul_fixed_round.
(MUL): Round result, as the Apple and MS scalers do.
(sfnt_interpret_control_value_program): The instruction control
flag which reverts CVT modifications is 2, not 4.

(cherry picked from commit 05495bfa6c39816e210bf655c0cbd44ba6dfcc7c)

15 months agoAdd an eassert back to XSYMBOL
Paul Eggert [Mon, 22 Jan 2024 04:34:03 +0000 (20:34 -0800)]
Add an eassert back to XSYMBOL

Problem reported by Alan Mackenzie in:
https://lists.gnu.org/r/emacs-devel/2024-01/msg00755.html
* src/lisp.h (XSYMBOL): If the arg is not a bare symbol, then
eassert (symbols_with_pos_enabled).  This shouldn’t affect code
generated for regular builds, and could catch caller errors in
debug builds.  For debug builds although this slows things down
XSYMBOL should still be faster than it was the day before
yesterday, as there’s still no need to eassert (SYMBOLP (a)).

(cherry picked from commit 088afa7e2f08f4eb4e39aae5db4faa33857bf544)

15 months agoSpeed up builtin_lisp_symbol when not optimizing
Paul Eggert [Mon, 22 Jan 2024 01:18:23 +0000 (17:18 -0800)]
Speed up builtin_lisp_symbol when not optimizing

This should help when building with --enable-checking and
compiling with gcc -O0.  Problem reorted by Stefan Monnier in:
https://lists.gnu.org/r/emacs-devel/2024-01/msg00770.html
* src/lisp.h (lisp_h_builtin_lisp_symbol): New macro,
with a body equivalent in effect to the old ‘builtin_lisp_symbol’
but faster when not optimizing.
(builtin_lisp_symbol): Use it.
If DEFINE_KEY_OPS_AS_MACROS, also define as macro.

(cherry picked from commit df7c6211cb960b88bc0aaef85babf7e9384d5f2e)

15 months ago* configure.ac: Cease suppressing detection of utmp.h.
Po Lu [Mon, 22 Jan 2024 00:48:19 +0000 (08:48 +0800)]
* configure.ac: Cease suppressing detection of utmp.h.

(cherry picked from commit 7e490dd63979e2695605205f0bb4fa5131f8c2d9)

15 months agoUpdate from Gnulib
Po Lu [Mon, 22 Jan 2024 00:47:34 +0000 (08:47 +0800)]
Update from Gnulib

(cherry picked from commit 3b7518e3d15ac7474493ea50fd24bb1c5c1685a4)

15 months ago; Fix typos in symbol names
Stefan Kangas [Sun, 21 Jan 2024 14:28:06 +0000 (15:28 +0100)]
; Fix typos in symbol names

(cherry picked from commit 9364c28959a5b00e8ffd5d0d283ff0c0042f1bb0)

15 months agodoc: Delete extraneous quotes around keys
Stefan Kangas [Sun, 21 Jan 2024 13:09:21 +0000 (14:09 +0100)]
doc: Delete extraneous quotes around keys

* lisp/allout.el (allout-outlinify-sticky):
* lisp/auth-source.el (auth-sources):
* lisp/buff-menu.el (Buffer-menu-delete)
(Buffer-menu-delete-backwards, Buffer-menu-save)
(Buffer-menu-execute, Buffer-menu-select):
* lisp/calendar/todo-mode.el (todo-show)
(todo-show-categories-table, todo-top-priorities-overrides):
* lisp/desktop.el (desktop-save-mode):
* lisp/dired-aux.el (dired-do-kill-lines, dired-do-copy):
* lisp/edmacro.el (edit-kbd-macro):
* lisp/emulation/viper-cmd.el (viper-ask-level):
* lisp/emulation/viper-init.el (viper-expert-level):
* lisp/filesets.el (filesets-add-buffer):
* lisp/follow.el (follow-mode):
* lisp/gnus/gnus-group.el (gnus-group-mode):
* lisp/gnus/gnus-sum.el (gnus-summary-mode):
* lisp/ibuffer.el (ibuffer-mode):
* lisp/international/ogonek.el (ogonek-informacja)
(ogonek-information):
* lisp/isearch.el (search-default-mode):
* lisp/macros.el (apply-macro-to-region-lines):
* lisp/mail/supercite.el (sc-mail-field-query)
(sc-insert-reference, sc-insert-citation):
* lisp/play/decipher.el (decipher-make-checkpoint):
(decipher-restore-checkpoint):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/idlwave.el (idlwave-store-inquired-class):
* lisp/progmodes/prolog.el (prolog-mode, prolog-inferior-mode):
* lisp/progmodes/sh-script.el (sh-set-shell):
* lisp/progmodes/vhdl-mode.el (vhdl-compiler-alist)
(vhdl-modify-date-prefix-string)
(vhdl-modify-date-on-saving, vhdl-mode):
* lisp/server.el (server-start):
* lisp/subr.el (locate-library):
* lisp/tempo.el (tempo-marks, tempo-use-tag-list):
* lisp/time.el (world-clock):
* lisp/vc/vc-hooks.el (vc-mode):
* lisp/whitespace.el (whitespace-report-region):
* lisp/windmove.el (windmove-delete-in-direction): Doc fix: Delete
extraneous quotes around keys.

(cherry picked from commit 5c12e988abb24b8240814d3dd3f40face7d48287)

15 months agoChange HASH_UNUSED_ENTRY_KEY from Qunbound to NULL float
Mattias Engdegård [Fri, 19 Jan 2024 17:31:06 +0000 (18:31 +0100)]
Change HASH_UNUSED_ENTRY_KEY from Qunbound to NULL float

This removes hacks from code that had to be careful not to use
Qunbound as a hash table key, at the cost of a minor hack in
the GC marker.

* src/lisp.h (INVALID_LISP_VALUE, HASH_UNUSED_ENTRY_KEY):
Define as a null-pointer float.
* src/alloc.c (process_mark_stack): Add hack to ignore that value.
* src/pdumper.c (dump_object_needs_dumping_p)
(pdumper_init_symbol_unbound, pdumper_load):
* src/print.c (PRINT_CIRCLE_CANDIDATE_P): Remove hacks for Qunbound.

(cherry picked from commit 1d754c79603f1b6e4574c7e64c1bf5fb8c6c190d)

15 months agoMake better use of fixnum range in sxhash etc
Mattias Engdegård [Fri, 19 Jan 2024 15:45:51 +0000 (16:45 +0100)]
Make better use of fixnum range in sxhash etc

Recent hash table changes reduced the range of sxhash, sxhash-eq etc
to [0,2**32) on platforms with 62-bit fixnums.  This change makes them
use the full fixnum range again.  Hash table hashing is unaffected.

* src/fns.c (sxhash_eq, sxhash_eql): New.
(hash_hash_to_fixnum): Replace with...
(reduce_emacs_uint_to_fixnum): ...this.
(hashfn_eq, hashfn_eql, Fsxhash_eq, Fsxhash_eql, Fsxhash_equal)
(Fsxhash_equal_including_properties): Use the new functions.

(cherry picked from commit 50201e03b9c4133296dbd10e6c7ebd5dc2a62d50)

15 months agoClarify permitted mutation in `maphash` documentation
Mattias Engdegård [Fri, 19 Jan 2024 14:52:13 +0000 (15:52 +0100)]
Clarify permitted mutation in `maphash` documentation

* doc/lispref/hash.texi (Hash Access):
* src/fns.c (Fmaphash):
Make it clear what the function passed as argument can do.  Until now
these rules were unwritten, and are still unenforced.

(cherry picked from commit 7a87ca09a73d61b46bfcaca317095ce7545bd3f3)

15 months agoAdd C macro for hash table iteration
Mattias Engdegård [Fri, 19 Jan 2024 14:17:52 +0000 (15:17 +0100)]
Add C macro for hash table iteration

This removes some boilerplate code and further reduces dependencies on
hash table implementation internals.

* src/lisp.h (DOHASH): New.
* src/comp.c (compile_function, Fcomp__compile_ctxt_to_file):
* src/composite.c (composition_gstring_cache_clear_font):
* src/emacs-module.c (module_global_reference_p):
* src/fns.c (Fmaphash):
* src/json.c (lisp_to_json_nonscalar_1):
* src/minibuf.c (Ftest_completion):
* src/print.c (print):
Use it instead of a hand-written loop.

(cherry picked from commit fec87a4b36a67688932e7bb7e1720bd2c4363a61)

15 months ago; Fix bounds check in 'minibuffer-restore-completion-input'
Eshel Yaron [Mon, 22 Jan 2024 16:49:58 +0000 (17:49 +0100)]
; Fix bounds check in 'minibuffer-restore-completion-input'

* lisp/minibuffer.el (minibuffer-force-complete): Don't count the
length of the input-to-restore when checking the bounds of the current
minibuffer contents.  Also, refresh the *Completions* buffer if it is
already visible.

15 months ago; Allow completion tables to adjust 'minibuffer-completion-base'
Eshel Yaron [Mon, 22 Jan 2024 16:39:11 +0000 (17:39 +0100)]
; Allow completion tables to adjust 'minibuffer-completion-base'

This adds a new completion metadata function 'adjust-base-function'
that completion tables can provide in order to adjust
'minibuffer-completion-base' around calls to completions sorting and
annotation functions.  In particular, this allows 'c-r-m' to remove
inputs that end before the current partial input from
'minibuffer-completion-base', to avoid throwing off functions that
treat 'minibuffer-completion-base' as a prefix of the set of
completion candidates, e.g. the directory part in file completion.

* lisp/minibuffer.el (completion-metadata): New completion metadata
entry 'adjust-base-function'.
(completion-all-sorted-completions, minibuffer-completion-help): Use
it to adjust 'minibuffer-completion-base'.

* lisp/emacs-lisp/crm.el (crm--table): Extend metadata with an
'adjust-base-function'.

15 months agoAdjust completion un/requoting in 'completing-read-multiple'
Eshel Yaron [Mon, 22 Jan 2024 14:02:19 +0000 (15:02 +0100)]
Adjust completion un/requoting in 'completing-read-multiple'

Teach 'completing-read-multiple' about 'completion--unquote', so it
can be used with completion tables that perform quoting.  Namely, this
allows reading multiple file names with:

  (completing-read-multiple "Files: " #'completion--file-name-table)

* lisp/emacs-lisp/crm.el (crm--table): New helper function.
(completing-read-multiple): Use it.

15 months agoproject-recompile: New command
Dmitry Gutov [Sun, 21 Jan 2024 05:08:11 +0000 (07:08 +0200)]
project-recompile: New command

* lisp/progmodes/project.el (project-recompile):
New command (bug#68570).

(cherry picked from commit 0a07603ae8db41f69e83b1bfec6e28a92f737852)

15 months ago; * etc/NEWS: Improve mwheel entry.
Po Lu [Sun, 21 Jan 2024 04:49:41 +0000 (12:49 +0800)]
; * etc/NEWS: Improve mwheel entry.

(cherry picked from commit cc8d4b0c9110c1384f5a9c214cf4069b3e99ae9b)

15 months agoDon't invert wheel event directions
Po Lu [Sun, 21 Jan 2024 04:47:24 +0000 (12:47 +0800)]
Don't invert wheel event directions

* lisp/mwheel.el (mwheel--is-dir-p): In Emacs, up means down and
down means up...

(cherry picked from commit 957b4f826a440d3d6fae8e338667530713ddf0ba)

15 months ago* lisp/mwheel.el (mouse-wheel-obey-old-style-wheel-buttons): Simplify
Stefan Monnier [Sun, 21 Jan 2024 04:12:36 +0000 (23:12 -0500)]
* lisp/mwheel.el (mouse-wheel-obey-old-style-wheel-buttons): Simplify

(cherry picked from commit eca7368039d841993ba649bc144017598592fa56)

15 months ago(define-derived-mode): Fix bug#68600
Stefan Monnier [Sun, 21 Jan 2024 04:00:54 +0000 (23:00 -0500)]
(define-derived-mode): Fix bug#68600

* lisp/emacs-lisp/derived.el (define-derived-mode): Use a reference
to the mode symbol instead of the mode's "pretty" name in
the hook variable's docstring.

(cherry picked from commit ca8d451561c5f722f7c3bfc63595961334b7b5f9)

15 months ago; * msdos/sedleim.inp: Adapt to Emacs 30.
Po Lu [Sun, 21 Jan 2024 02:33:30 +0000 (10:33 +0800)]
; * msdos/sedleim.inp: Adapt to Emacs 30.

(cherry picked from commit d88f9717ae6279a7577023f8630bd777d1b153b0)

15 months ago* make-dist (possibly_non_vc_files): Append exec standard files.
Po Lu [Sun, 21 Jan 2024 02:04:02 +0000 (10:04 +0800)]
* make-dist (possibly_non_vc_files): Append exec standard files.

(cherry picked from commit e654f9ce1e6f146346160044a6469e34f25dfeea)

15 months ago; * exec/Makefile.in: Correct typo.
Po Lu [Sun, 21 Jan 2024 01:58:17 +0000 (09:58 +0800)]
; * exec/Makefile.in: Correct typo.

(cherry picked from commit 8da6c8c7c1e25d2d1d511b50c0ff94097e512470)

15 months agoSuppress detection of utmpx.h on Android
Po Lu [Sun, 21 Jan 2024 01:53:55 +0000 (09:53 +0800)]
Suppress detection of utmpx.h on Android

* configure.ac (ac_cv_header_utmpx_h): Predefine to no when
Android is older than 34.

(cherry picked from commit 10ffe161da67a550534c818cab27001b1e75c79f)

15 months ago; * exec/Makefile.in (extraclean): Remove standard files.
Po Lu [Sun, 21 Jan 2024 01:15:55 +0000 (09:15 +0800)]
; * exec/Makefile.in (extraclean): Remove standard files.

(cherry picked from commit 76efd4037eeba53ad5716477c55bdf7ae6ccf6d9)

15 months agoOmit -DHAVE_CONFIG_H
Paul Eggert [Sun, 21 Jan 2024 00:52:31 +0000 (16:52 -0800)]
Omit -DHAVE_CONFIG_H

* configure.ac (CFLAGS): Do not add -DHAVE_CONFIG_H.  It is no
longer needed now that the Android printf hack has been removed.

(cherry picked from commit 416fad04c26d712a0897c7a03566425133c6c7d1)

15 months agoSpeed up make_lisp_symbol when debugging
Paul Eggert [Sun, 21 Jan 2024 00:52:31 +0000 (16:52 -0800)]
Speed up make_lisp_symbol when debugging

* src/lisp.h (make_lisp_symbol): In eassert use XBARE_SYMBOL
rather than XSYMBOL.  This is safe because the symbol must be
bare.  The change speeds up make_lisp_symbol when debugging.

(cherry picked from commit bdcd662a21f4c4265f704b69deb9cf277a663ea7)

15 months agoSimplify and tune XSYMBOL
Paul Eggert [Sun, 21 Jan 2024 00:52:31 +0000 (16:52 -0800)]
Simplify and tune XSYMBOL

* src/lisp.h (XSYMBOL): Simplify and tune.  There is no need to
examine symbols_with_pos_enabled here, since the arg must be a symbol
so if it's not a bare symbol then it must be a symbol_with_pos;
and checking whether a symbol is bare is cheap.

With Ubuntu 23.10 on a Xeon W-1350, this shrank Emacs’s executable
text size by 0.1% and sped up a default build of all *.elc files by
0.4%.

Remove unnecessary eassert, since XBARE_SYMBOL and XSYMBOL_WITH_POS
have easserts that suffice.

(cherry picked from commit cf26f573162130fed73c6e5603cb58e158903add)

15 months agoBe more systematic about parens in C source code
Paul Eggert [Sun, 21 Jan 2024 00:52:31 +0000 (16:52 -0800)]
Be more systematic about parens in C source code

Be more systematic about putting space before paren in calls,
and in avoiding unnecessary parentheses in macros.
This was partly inspired by my wading through gcc -E output
while debugging something else, and seeing too many parens.

This patch does not change the generated .o files on my platform.

(cherry picked from commit b6ed79b71ccb3df8df05531d473ff9510cf9a39f)

15 months agoOmit some parens
Paul Eggert [Sun, 21 Jan 2024 00:52:31 +0000 (16:52 -0800)]
Omit some parens

* src/lisp.h (XBARE_SYMBOL, XSYMBOL): Omit parentheses that are no
longer needed now that we have symbols with positions and these
symbols are never macros.

(cherry picked from commit 0a47a5a4bef0a33c012302346685ecab861cc306)

15 months agoPacify gcc -Wsuggest-attribute=malloc
Paul Eggert [Sun, 21 Jan 2024 00:52:31 +0000 (16:52 -0800)]
Pacify gcc -Wsuggest-attribute=malloc

* src/lisp.h (hash_table_alloc_bytes):
Declare with ATTRIBUTE_MALLOC_SIZE ((1)).

(cherry picked from commit 973c1b8a1838b78d1388437c2aa7f4eb4dceb7d9)

15 months agoFix autogen.sh’s spurious ‘git diff’ output
Paul Eggert [Sun, 21 Jan 2024 00:26:45 +0000 (16:26 -0800)]
Fix autogen.sh’s spurious ‘git diff’ output

Problem reported by Gerd Möllmann (Bug#68464).
* .gitignore: Ignore files in exec that are now copied from build-aux.
* admin/merge-gnulib (avoided_flags): Instead of clearing
autom4te.cache here ...
* autogen.sh (do_git): ... clear it here.
Use config.guess, config.sub and install-sh from
the Emacs repository, as they are more likely to be up to date.
This avoids unnecessary differences among different builders,
and avoids unnecessary ‘git diff’ output after autogen.sh.
Also, copy these files from build-aux to exec since there
should be no difference between the two copies.
* exec/config.guess, exec/config.sub, exec/install-sh:
Remove from repository, as autogen.sh now copies them from build-aux.

(cherry picked from commit afc9cd1721c586f960af5e324a61418775ac4543)

15 months agomwheel.el: Code clean to reduce duplication
Stefan Monnier [Sat, 13 Jan 2024 00:05:24 +0000 (19:05 -0500)]
mwheel.el: Code clean to reduce duplication

* lisp/mwheel.el (mouse-wheel-obey-old-style-wheel-buttons): New var,
extracted from `mouse-wheel-*-event` definitions.
(mouse-wheel-down-event, mouse-wheel-up-event)
(mouse-wheel-left-event, mouse-wheel-right-event): Use it.

(cherry picked from commit 998667f90262432facbf43cdb1f0a96704c84271)

15 months agomwheel.el: Remove `mouse-wheel-*-alternate-event` vars
Stefan Monnier [Fri, 12 Jan 2024 23:52:37 +0000 (18:52 -0500)]
mwheel.el: Remove `mouse-wheel-*-alternate-event` vars

Now that `wheel-DIR` events are hardcoded, we never need more than
one variable (which we actually never needed anyway, we could have
let `mouse-wheel-*-event` vars hold lists of events instead), so
remove the `mouse-wheel-*-alternate-event` vars by merging their
default value into that of the corresponding `mouse-wheel-*-event`.

* lisp/mwheel.el (mouse-wheel-down-event, mouse-wheel-up-event)
(mouse-wheel-left-event, mouse-wheel-right-event): Don't bother holding
`wheel-DIR` events since these are already handled anyway.
Hold the event that would have been held in
`mouse-wheel-DIR-alternate-event` instead.
(mouse-wheel-down-alternate-event, mouse-wheel-up-alternate-event)
(mouse-wheel-left-alternate-event, mouse-wheel-right-alternate-event):
Delete vars.
(mwheel--is-dir-p, mouse-wheel--setup-bindings):
* lisp/edmacro.el (edmacro-fix-menu-commands):
* lisp/completion-preview.el (completion-preview--mouse-map):
Don't use `mouse-wheel-up/down-alternate-event` any more.
* lisp/progmodes/flymake.el (flymake--mode-line-counter-map):
Do nothing, because it already ignored those vars.

(cherry picked from commit 18294854c717a82966090e99130bcb99fc354a5b)

15 months agomwheel.el: Unconditionally use the `wheel-up/down/...` events
Stefan Monnier [Fri, 12 Jan 2024 23:28:12 +0000 (18:28 -0500)]
mwheel.el: Unconditionally use the `wheel-up/down/...` events

The `mouse-wheel-DIR-event` vars were introduced because under X11
we get different `mouse-N` events depending on the users' mouse and
those same events can be used for other things for other rodents, so we
can't unconditionally treat those events as mouse-wheel events.

But this does not apply to the `wheel-up/down/...` events.
So hard code them.

* lisp/mwheel.el (mwheel--is-dir-p): Always consider the `wheel-DIR` events.
(mouse-wheel--setup-bindings): Always bind the `wheel-DIR` events.

* lisp/completion-preview.el (completion-preview--mouse-map):
Unconditionally bind the `wheel-DIR` events.
* lisp/edmacro.el (edmacro-fix-menu-commands): Hard code the
`wheel-DIR` events as mouse events regardless of `mouse-wheel-*-event`s.
* lisp/progmodes/flymake.el (flymake--mode-line-counter-map):
Do nothing, because it's already been done in commit e5be6c7ae309.

* doc/lispref/commands.texi (Misc Events): Document the need to use
`wheel-up/down/left/right` unconditionally.

(cherry picked from commit db8890b3c96289ca95e4ea3ea53f0eda1a948af6)

15 months ago* lisp/completion-preview.el: Fix use in non-GUI session
Stefan Monnier [Fri, 12 Jan 2024 23:08:31 +0000 (18:08 -0500)]
* lisp/completion-preview.el: Fix use in non-GUI session

Fix loading in non-GUI sessions where `mwheel` is not preloaded.
Not requiring `mwheel` would be a lot more complex, since it would
require delaying the construction of `completion-preview--mouse-map`.

* lisp/completion-preview.el (<toplevel>): Require `mwheel`.
Remove correspondingly redundant `defvar`s.
(completion-preview--mouse-map): Use `key-description` rather than mimicking
it with `format`.

(cherry picked from commit 82f71e106afd9bede95cfea3025f7c059d7c2bcf)

15 months ago* lisp/keymap.el (define-keymap): Demote "duplicate def" to a warning
Stefan Monnier [Fri, 12 Jan 2024 23:05:14 +0000 (18:05 -0500)]
* lisp/keymap.el (define-keymap): Demote "duplicate def" to a warning

* test/src/keymap-tests.el (keymap-test-duplicate-definitions):
Adjust accordingly.

(cherry picked from commit eb779ae64677e643d2d78cfc2b016088e8d7ff98)

15 months agoUpdate from Gnulib by running admin/merge-gnulib
Paul Eggert [Sat, 20 Jan 2024 19:45:04 +0000 (11:45 -0800)]
Update from Gnulib by running admin/merge-gnulib

(cherry picked from commit 3add626f1405739aa430adcc0b4c27e587a7c561)

15 months agoAvoid Gnulib ‘access’ module
Paul Eggert [Sat, 20 Jan 2024 19:26:09 +0000 (11:26 -0800)]
Avoid Gnulib ‘access’ module

* admin/merge-gnulib (AVOIDED_MODULES): Add ‘access’,
since I don’t think Emacs cares about the Mac OS X 10.5
bug where faccessat ignores a trailing slash on a symlink
to a directory.  This will matter the next time we run
admin/merge-gnulib.

(cherry picked from commit d276996c4f60395464ca8d5d7de487022b4937fa)

15 months ago(mwheel--is-dir-p): New macro to reduce code duplication
Stefan Monnier [Fri, 12 Jan 2024 22:50:09 +0000 (17:50 -0500)]
(mwheel--is-dir-p): New macro to reduce code duplication

It also slightly reduces memory allocation.

* lisp/mwheel.el (mwheel--is-dir-p): New macro.
(mwheel-scroll, mouse-wheel-text-scale)
(mouse-wheel-global-text-scale): Use it.

(cherry picked from commit a764b503e126a60ff4ea1266da924de7b020637e)

15 months ago(mouse-wheel-*-event): Minor cleanups
Stefan Monnier [Tue, 9 Jan 2024 16:34:05 +0000 (11:34 -0500)]
(mouse-wheel-*-event): Minor cleanups

* lisp/mwheel.el (mwheel-event-button): Mark as obsolete alias.
Change all callers.

* lisp/edmacro.el (mouse-wheel-*-event): Move declarations to ...
(edmacro-fix-menu-commands): ... where we do know that they should
be defined.  Obey `mouse-wheel-*-alternate-event`s as well.

(cherry picked from commit ee2a8fd4cff84cd5bd672fdde8ec3e0800f132be)

15 months ago; * doc/emacs/mini.texi (Completion Multi): Fix typo.
Eshel Yaron [Sun, 21 Jan 2024 07:25:08 +0000 (08:25 +0100)]
; * doc/emacs/mini.texi (Completion Multi): Fix typo.

15 months agoHighlight input separators in 'c-r-m' minibuffers
Eshel Yaron [Sat, 20 Jan 2024 19:03:20 +0000 (20:03 +0100)]
Highlight input separators in 'c-r-m' minibuffers

* lisp/emacs-lisp/crm.el (crm-separator): New face.
(crm-highlight-separators): New function.
(crm-change-separator, completing-read-multiple-mode): Use it.

* doc/emacs/mini.texi (Completion Multi): Mention sep highlighting.

* etc/NEWS: Announce it.

15 months agoEldoc: play nice with mode-line-format-right-align (bug#68547)
Eshel Yaron [Sat, 20 Jan 2024 11:43:27 +0000 (05:43 -0600)]
Eldoc: play nice with mode-line-format-right-align (bug#68547)

* lisp/emacs-lisp/eldoc.el (eldoc-minibuffer-message): Avoid nesting
'mode-line-format', since that breaks 'mode-line-format-right-align'.

(cherry picked from commit 412cc0212d7bf2f2d0f49fdb8a4ff69480b8afed)

15 months ago; Merge NEWS.29.
Eli Zaretskii [Sat, 20 Jan 2024 11:40:54 +0000 (06:40 -0500)]
; Merge NEWS.29.

(cherry picked from commit ce836aafaa581e5b713eb289071dbeed73166c99)

15 months ago; Fix merge snafus
Eli Zaretskii [Sat, 20 Jan 2024 11:37:09 +0000 (06:37 -0500)]
; Fix merge snafus

* lisp/jsonrpc.el:
* lisp/progmodes/eglot.el: Fix merge snafus.

(cherry picked from commit 8bb5525b62163d7c3617a8b61da94f1a12a8d8e8)

15 months ago; Skip commit 3a5ee060571b29474f83ebaee11df6920ea68c6a
Eshel Yaron [Sat, 20 Jan 2024 16:29:43 +0000 (17:29 +0100)]
; Skip commit 3a5ee060571b29474f83ebaee11df6920ea68c6a

15 months agoFix blunder in labeled_narrow_to_region
Gregory Heytings [Thu, 11 Jan 2024 23:38:22 +0000 (23:38 +0000)]
Fix blunder in labeled_narrow_to_region

* src/editfns.c (labeled_narrow_to_region): Record point before,
instead of after, calling narrow-to-region; otherwise point may
already have been changed.  Fixes bug#66764.

(cherry picked from commit 5bb5590dec95e813ed120b3f09734451b4ebb18f)

15 months agoFix documentation of icon-elements
Daniel Martín [Sun, 14 Jan 2024 14:36:16 +0000 (15:36 +0100)]
Fix documentation of icon-elements

* lisp/emacs-lisp/icons.el (icon-elements): The plist key it returns
is `image', not `display'.  (Bug#68451)

(cherry picked from commit 78ddb32fadb61b3e78047400e257d57b2cff7cd8)

15 months ago; Fix typos in symbol names
Stefan Kangas [Sun, 14 Jan 2024 13:56:06 +0000 (14:56 +0100)]
; Fix typos in symbol names

(cherry picked from commit 725a3f32f8ba78ac5fffcd03be5b82cbc2c1b275)

15 months agoImprove two docstrings in ox-latex
Stefan Kangas [Sun, 14 Jan 2024 13:52:17 +0000 (14:52 +0100)]
Improve two docstrings in ox-latex

* lisp/org/ox-latex.el (org-latex-src-block-backend)
(org-latex-engraved-theme): Improve docstring; mention that
engrave-faces is a GNU ELPA package.

(cherry picked from commit 6653ee66ca5ebd42322613a09d4c0d2e35af924b)

15 months agoDoc fix in auth-source-read-char-choice
Stefan Kangas [Sun, 14 Jan 2024 13:47:39 +0000 (14:47 +0100)]
Doc fix in auth-source-read-char-choice

* lisp/auth-source.el (auth-source-read-char-choice): Don't
document 'dropdown-list', which was removed in 2011.

(cherry picked from commit 7d869a04029798410773fe6071e76b556d3a9ee2)

15 months agoFix info-xref-tests
Eli Zaretskii [Sat, 13 Jan 2024 18:38:34 +0000 (20:38 +0200)]
Fix info-xref-tests

* doc/lispintro/emacs-lisp-intro.texi (How let Binds Variables):
Fix cross-reference.  (Bug#68428)

* test/lisp/info-xref-tests.el (info-xref-test-write-file): Fix
test on MS-Windows when run from MSYS Bash.

(cherry picked from commit 1f97a8787957e49f1893b9ac73c95228f6ac1a13)

15 months agoAdd @kindex in manuals for existing keybindings on 'C-x x/w' (bug#13167)
Juri Linkov [Sat, 13 Jan 2024 18:11:21 +0000 (20:11 +0200)]
Add @kindex in manuals for existing keybindings on 'C-x x/w' (bug#13167)

* doc/emacs/buffers.texi (Misc Buffer): Add @kindex for 'C-x x r',
'C-x x u', 'C-x x i'.

* doc/emacs/display.texi (Line Truncation): Add @kindex for 'C-x x t'.

* doc/emacs/files.texi (Reverting): Add @kindex for 'C-x x g'.

* doc/emacs/windows.texi (Change Window): Use new keybinding 'C-x w 0'
instead of 'M-x delete-windows-on'.

* doc/misc/info.texi (Create Info buffer): Add @kindex for 'C-x x n'.

(cherry picked from commit 51f391998b19a94d35d743952006afd71ad7f545)

15 months ago; Make Eshell completion test more robust
Eshel Yaron [Sat, 20 Jan 2024 12:27:08 +0000 (13:27 +0100)]
; Make Eshell completion test more robust

15 months agoRound projs computed executing IP/ISECT instructions and improve IUP
Po Lu [Sat, 20 Jan 2024 01:30:04 +0000 (09:30 +0800)]
Round projs computed executing IP/ISECT instructions and improve IUP

* src/sfnt.c (sfnt_multiply_divide_rounded): New function.
(sfnt_multiply_divide_signed): Always round values, as fonts
which rely on IP to move points in concert with prior motion and
subsequently round such points with MDAP are sensitive to minor
deviations in the behavior of the former instruction.
(load_unscaled): New macro.
(IUP_SINGLE_PAIR, sfnt_interpret_iup_1): Compute ratio w/
unscaled points if possible.

(cherry picked from commit b3e4fbe867f96a28c5dc9db19fcad2af5b4a4b7e)

15 months agotrace.el: Mention the last change in NEWS
Stefan Monnier [Fri, 19 Jan 2024 20:04:50 +0000 (15:04 -0500)]
trace.el: Mention the last change in NEWS

(cherry picked from commit a34b76cd663e39d9f5d30c4b0e49ba246fac0d63)

15 months agotrace.el: Make it usable in batch mode as well
Stefan Monnier [Fri, 19 Jan 2024 20:02:50 +0000 (15:02 -0500)]
trace.el: Make it usable in batch mode as well

While at it, this fixes a bug where a traced function was not
able to set `deactivate-mark`.

* lisp/emacs-lisp/trace.el (trace--insert): New function, extracted
from `trace-make-advice`.  Output to stdout in batch mode.
(trace--entry-message): Rename from `trace-entry-message`.
Change calling convention.  Do the insertion directly from here.
(trace--exit-message): Rename from `trace-exit-message`.
Change calling convention.  Do the insertion directly from here.
(trace-make-advice, trace-values): Simplify accordingly.

(cherry picked from commit 1293aac0df4e2837a141818f225539ec847b6684)

15 months agoFix another cause of superfluous inotify signals on Android
Po Lu [Fri, 19 Jan 2024 12:51:24 +0000 (20:51 +0800)]
Fix another cause of superfluous inotify signals on Android

* src/android.c (android_select): If the event queue isn't
empty upon the initial check, clear all fdsets.

(cherry picked from commit bd5bfc29137b6e452e1900a1fc3cf09e77959133)

15 months ago; (crm-change-separator): Enable recursive minibuffers.
Eshel Yaron [Fri, 19 Jan 2024 19:02:21 +0000 (20:02 +0100)]
; (crm-change-separator): Enable recursive minibuffers.

15 months agoNew command 'crm-complete-and-insert-separator'
Eshel Yaron [Sat, 20 Jan 2024 08:32:29 +0000 (09:32 +0100)]
New command 'crm-complete-and-insert-separator'

* lisp/emacs-lisp/crm.el (crm-complete-and-insert-separator): New
command.
(completing-read-multiple-mode-map): Bind it to 'C-,'.
(crm-canonical-separator, crm-common-separators): New variables.
(completions-multi-mode): Adapt mode line lighter.
(crm-complete-and-exit): Only suggest in 'M-x' in 'minibuffer-mode'.
(crm-change-separator): (Re)set canonical separator.

* doc/lispref/minibuf.texi (Minibuffer Completion): Update.
* doc/emacs/mini.texi (Completion Multi): New subsection.
(Completion Commands): Fix markup.
(Completion)
* doc/emacs/emacs.texi (Top): Add menu entry.

* etc/NEWS: Announce 'crm-complete-and-insert-separator'.

15 months ago; * etc/NEWS: (re-)announce 'completions-auto-update-mode'.
Eshel Yaron [Fri, 19 Jan 2024 09:06:16 +0000 (10:06 +0100)]
; * etc/NEWS: (re-)announce 'completions-auto-update-mode'.

15 months ago; Enable recursive minibuffers for reading completion restrictions
Eshel Yaron [Fri, 19 Jan 2024 08:31:50 +0000 (09:31 +0100)]
; Enable recursive minibuffers for reading completion restrictions

* lisp/minibuffer.el (minibuffer-widen-completions): Let-bind
'enable-recursive-minibuffers' to t.

15 months agoRedo doc strings for ERC's entry point commands
F. Jason Park [Sun, 14 Jan 2024 21:02:27 +0000 (13:02 -0800)]
Redo doc strings for ERC's entry point commands

* lisp/erc/erc.el: Bump Compat version in Package-Requires header to
29.1.4.4.
(erc-select-read-args): Revise doc string, and update name of internal
`--interactive-env--' entry-point parameter.
(erc, erc-tls): Don't use `&interactive-env' as a variable name, in
case it confuses persons or programs.  Overhaul doc string in response
to user complaints.  For `erc' specifically, include literal
`:keyword' symbols to help non-Emacs users understand the required
syntax, which isn't obvious without an example, like `erc-tls' has,
and with only "&key" and upcased metasynctatic variables to go by.
(erc--current-buffer-joined-p): Remove assertion.
* test/lisp/erc/erc-scenarios-keep-place-indicator.el
(erc-scenarios-keep-place-indicator--follow): Try waiting for
intermittently failing condition.
* test/lisp/erc/erc-tests.el (erc-select-read-args): Update name of
internal keyword variable.

(cherry picked from commit dd2caf1a7634ea6fd8aebbdc45ea4caf22d786cd)

15 months agoAdd test for erc-extract-command-from-line
F. Jason Park [Mon, 15 Jan 2024 13:53:24 +0000 (05:53 -0800)]
Add test for erc-extract-command-from-line

* lisp/erc/erc.el (erc-extract-command-from-line): Redo doc string.
* test/lisp/erc/erc-tests.el (erc--parse-isupport-value): Add case for
commonly seen escaped character ?=.
(erc-extract-command-from-line): New test.
; * test/lisp/erc/resources/erc-d/resources/basic.eld: Update.
; Don't send unnegotiated multi-prefixed userhost names.
; * test/lisp/erc/resources/erc-d/resources/dynamic-barnet.eld: Update.
; * test/lisp/erc/resources/erc-d/resources/dynamic-foonet.eld: Update.
; * test/lisp/erc/resources/erc-d/resources/dynamic.eld: Update.
; * test/lisp/erc/resources/erc-d/resources/eof.eld: Update.
; * test/lisp/erc/resources/erc-d/resources/fuzzy.eld: Update.
; * test/lisp/erc/resources/erc-d/resources/incremental.eld: Update.
; * test/lisp/erc/resources/erc-d/resources/linger.eld: Update.
; * test/lisp/erc/resources/erc-d/resources/no-block.eld: Update.
; * test/lisp/erc/resources/erc-d/resources/no-match.eld: Update.
; * test/lisp/erc/resources/erc-d/resources/unexpected.eld: Update.

(cherry picked from commit 13c7933a9d4b26e74e7f5e19d70bb89003239c34)

15 months ago* lisp/international/quail.el (quail-input-method): Fix bug#68338
Stefan Monnier [Thu, 18 Jan 2024 23:28:54 +0000 (18:28 -0500)]
* lisp/international/quail.el (quail-input-method): Fix bug#68338

(cherry picked from commit 81a2212bd52f68045b47d8be9345736655de6607)

15 months ago* lisp/progmodes/elisp-mode.el (elisp-completion-at-point): Fix bug#68514
Stefan Monnier [Thu, 18 Jan 2024 19:05:16 +0000 (14:05 -0500)]
* lisp/progmodes/elisp-mode.el (elisp-completion-at-point): Fix bug#68514

Redo the commit 0db2126d7176 to try and avoid selecting more than
a mere symbol.

(cherry picked from commit a33f3947ea1ba429570e2ecb4c3167341dcae1a2)