emacs.git
18 months agoAdd ERC module querypoll as monitor placeholder
F. Jason Park [Thu, 23 May 2024 05:59:54 +0000 (22:59 -0700)]
Add ERC module querypoll as monitor placeholder

* doc/misc/erc.texi: Add module `querypoll' to list of built-in
modules'.
* etc/ERC-NEWS: Mention new module `querypoll', and explain new
default behavior for deriving query membership from that of channels.
* lisp/erc/erc-goodies.el (erc--querypoll-ring)
(erc--querypoll-timer): New variables.
(erc-querypoll-exclude-regexp): New option.
(erc-querypoll-mode, erc-querypoll-enable, erc-querypoll-disable): New
module for polling with "WHO" requests for the presence of otherwise
"untracked" query targets.
(erc-querypoll-period-params): New variable.
(erc--querypoll-compute-period)
(erc--querypoll-target-in-chan-p)
(erc--querypoll-get-length)
(erc--querypoll-get-next)
(erc--querypoll-subscribe)
(erc--querypoll-on-352)
(erc--querypoll-send): New functions.
* lisp/erc/erc-speedbar.el (erc-speedbar-buttons): Dispatch queries as
if they were channels when `erc--queries-current-p' returns non-nil.
That is, show head counts alongside query targets as users come and
go.
(erc-speedbar-insert-target): Defer to `erc--queries-current-p' to
know whether to show a query in the style of a channel.  This affects
both the plain speedbar integration as well as the `nickbar' module
added for bug#63595.  Also, use question marks rather than the empty
string for query bullets, so that query and channel items are aligned
vertically.
* lisp/erc/erc.el (erc--queries-current-p): New function.
* test/lisp/erc/erc-goodies-tests.el
(erc--querypoll-compute-period)
(erc--querypoll-target-in-chan-p)
(erc--querypoll-get-length)
(erc--querypoll-get-next): New tests.  (Bug#70928)

18 months agoRetain client's own user in erc-server-users
F. Jason Park [Thu, 25 Apr 2024 12:16:23 +0000 (05:16 -0700)]
Retain client's own user in erc-server-users

* lisp/erc/erc-backend.el (erc-server-KICK, erc-server-PART): Use new
function `erc--remove-channel-user-but' instead of
`erc-remove-channel-users'.  In `erc-server-KICK', remove sender's
channel membership data after displaying the message so that nicks are
buttonized.  Return nil.  In `erc-server-PART', don't run
`erc-remove-channel-member' when the client itself has parted.
* lisp/erc/erc-common.el (erc--remove-user-from-targets): New
function.
* lisp/erc/erc.el (erc-remove-server-user): Redo doc string.
(erc--forget-server-user-function): New variable.
(erc--forget-server-user): New function.
(erc--forget-server-user-ignoring-queries): New function, the default
value of `erc--forget-server-user-function'.
(erc-remove-channel-user): Defer to `erc--forget-server-user-function'
to do the actual removal.
(erc-remove-user): Defer to `erc--remove-user-from-targets'.
(erc-remove-channel-users): Redo doc
(erc--remove-channel-users-but): New function.  The only use case thus
far is for protecting the client's own `erc-server-users' entry from
removal when draining `erc-channel-members' tables after the client
leaves a target buffer or quits.
(erc-kill-buffer-function): Don't remove own user from
`erc-server-users'.
* test/lisp/erc/erc-scenarios-base-renick.el
(erc-scenarios-base-renick-queries-solo): Assert own client parting
its only channel doesn't remove own user from server.  Also assert
that another user parting their only channel removes them from all
queries.  (Bug#70928)

18 months agoTether query rolls to channel membership in ERC
F. Jason Park [Thu, 9 May 2024 02:04:13 +0000 (19:04 -0700)]
Tether query rolls to channel membership in ERC

* lisp/erc/erc-backend.el (erc-server-JOIN): Update query membership
via `erc--ensure-query-member' when someone else joins a channel.
(erc-server-NICK): Update query membership via
`erc--ensure-query-member' after someone else changes their nick.
(erc-server-PRIVMSG): After printing a query message from some other
person, remove their nick's data from the query buffer's user table if
they're "untracked," i.e., not a member of a channel.
(erc-server-263, erc-server-263-functions): New function and variable,
a default response handler and hook for "RPL_TRYAGAIN", which servers
send for things like rejecting "WHO" and "WHOX" responses due to rate
limiting.
(erc-server-311): Fix call to `erc-update-user-nick' so the userhost
login component is no longer supplied as the `info' parameter but
rather, correctly, as the `login'.
(erc--extract-352-full-name): Factor out trailing hop-count and GECOS
parsing for use by overriding handlers or those for adjacent numerics.
(erc-server-352): Refactor to handle asterisk as `channel' parameter,
which indicates a nick rather than a channel target.
(erc-server-366): Update membership in all query buffers via
`erc--ensure-query-members' after all names have been received.
(erc-server-401): Forget a known user completely when the server
reports them as nonexistent.
* lisp/erc/erc-common.el (erc--get-server-user): New function, a thin
wrapper around `erc-get-server-user' for cases were inlining would
require declaring symbols not defined in erc-common.
* lisp/erc/erc.el (erc-channel-members): Mention that instances are
used for query-participant tables as well.
(erc--decouple-query-and-channel-membership-p): New variable, a
compatibility flag to access pre-5.6 query bookkeeping behavior.
(erc--ensure-query-member, erc--ensure-query-members): New functions.
(erc-cmd-QUERY): Ensure parties are present in the query buffer's
membership table if they're known to be on the server by simple virtue
of being present in some joined channel.
(erc-message-english-s352-you): New variable.
* test/lisp/erc/erc-scenarios-base-query-participants.el
(erc-scenarios-base-query-participants)
(erc-scenarios-base-query-participants/legacy): Rename former to
latter.  Enable compat flag to activate legacy query behavior in which
channel membership does not impact query membership.
(erc-scenarios-base-query-participants/coupled): New test asserting
new behavior in which channel membership dictates query
membership.  (Bug#70928)

18 months agoReuse old query buffers for reassumed nicks in ERC
F. Jason Park [Thu, 9 May 2024 02:04:13 +0000 (19:04 -0700)]
Reuse old query buffers for reassumed nicks in ERC

* lisp/erc/erc-backend.el
(erc--wrangle-query-buffers-on-nick-change): New function for handling
buffer renaming and message routing triggered by a nick change.  Such
twiddling used to reside in `erc-server-NICK' but has been separated
out for use by built-in modules overriding `erc-server-NICK'.  The
behavior has also changed to favor always reusing an existing query
buffer whenever possible instead of creating a new, <N>-suffixed
buffer.  This addresses some arguably unfinished business from
bug#48598.
(erc-server-NICK): Fix erroneous call to `erc-update-user-nick' that
passed the sender's login as the function's INFO argument.  Move
buffer renaming logic to `erc--wrangle-query-buffers-on-nick-change'
for use by "NICK" handlers managed by modules.  Also, print the notice
in all query buffers when the client changes its own nick.
(erc-server-QUIT): Show messages in all query buffers when the client
itself quits, but prevent `track' from updating the mode line with
redundant noise.
* lisp/erc/erc.el (erc-generate-new-buffer-name): Fix typo in doc.
(erc--query-list): New function.
* test/lisp/erc/erc-scenarios-base-query-participants.el: New file.
* test/lisp/erc/erc-scenarios-base-renick.el
(erc-scenarios-base-renick-queries-solo): Revise slightly to use
modern helper API.
(erc-scenarios-base-renick-queries/reassume): New test.
(erc-scenarios-base-renick-self/merge-query): New test.
* test/lisp/erc/resources/base/query-participants/legacy.eld: New file.
* test/lisp/erc/resources/base/reconnect/options-again.eld: Adjust
timeout.
* test/lisp/erc/resources/base/renick/queries/reassume.eld: New file.
* test/lisp/erc/resources/base/renick/self/manual.eld: Update timeouts.
* test/lisp/erc/resources/base/renick/self/merge-query-a.eld: New file.
* test/lisp/erc/resources/base/renick/self/merge-query-b.eld: New file.
(Bug#70928)

18 months agoMention if an ERC module is local in its doc string
F. Jason Park [Fri, 24 May 2024 03:50:20 +0000 (20:50 -0700)]
Mention if an ERC module is local in its doc string

* lisp/erc/erc-common.el (erc--assemble-toggle)
(define-erc-module): Update language of doc string to indicate if a
module is local.
* test/lisp/erc/erc-tests.el (define-erc-module--global)
(define-erc-module--local)
(define-erc-module--local/permanent-locals): Update expected output.

18 months agoDelete original speedbar frame in erc-nickbar-mode
F. Jason Park [Tue, 21 May 2024 12:37:39 +0000 (05:37 -0700)]
Delete original speedbar frame in erc-nickbar-mode

* lisp/erc/erc-speedbar.el (erc-speedbar-buttons): Disable
`erc-nickbar-mode' when it's not displayed in a window.
(erc-speedbar--highlight-self-and-ops): Check `status' slot of
`erc-channel-user' object instead of calling accessors.
(erc-speedbar--hidden-speedbar-frame)
(erc-speedbar--emulate-speedbar): Add doc string.
(erc-speedbar--handle-delete-frame): New function.
(erc-speedbar--toggle-nicknames-sidebar): Remove function because its
conditional logic was needlessly complicated and is no longer needed.
(erc-speedbar--ensure): Create `speedbar-buffer' when needed, and
delete the original frame, but still keep a reference to it in
`erc-speedbar--hidden-speedbar-frame'.  Set
`dframe-delete-frame-function' to own handler.
(erc-speedbar--shutting-down-p): Remove unused variable.
(erc-speedbar--run-timer-on-post-insert)
(erc-speedbar--prod-dframe-timer): Rename former to latter.  Return
nil, and accept any number of args.
(erc-nickbar-mode, erc-nickbar-disable): Tear down completely when
disabling, regardless of universal argument.  This changes user-facing
behavior that was originally introduced with this module as part of
bug#63595.  Run `erc-speedbar--prod-dframe-timer' on
`erc-server-PONG-functions' as well as `erc-insert-post-hook' so that
the panel will eventually update if no messages are being received.
(erc-speedbar--dframe-controlled): Don't make frame visible because
it's been deleted and was never made invisible.
* test/lisp/erc/erc-scenarios-status-sidebar.el
(erc-scenarios-status-sidebar--nickbar): Update assertions.

18 months agoReturn nil from more ERC response handlers
F. Jason Park [Mon, 20 May 2024 06:04:49 +0000 (23:04 -0700)]
Return nil from more ERC response handlers

* etc/ERC-NEWS: Mention that certain aberrant response handlers now
return nil.
* lisp/erc/erc-backend.el (define-erc-response-handler): Mention that
body should explicitly return nil.
(erc-server-PART)
(erc-server-PING): Return nil.
* lisp/erc/erc-sasl.el (erc-sasl--destroy): Return nil.
* lisp/erc/erc.el (erc-display-message): Mention in doc string that
the return value is undefined.
(erc-kill-channel-hook): Fix package-version.
* test/lisp/erc/erc-networks-tests.el (erc-networks--set-name): Ensure
`erc--route-insertion' returns nil because this influences whether
response-handler hooks continue running.
* test/lisp/erc/erc-sasl-tests.el
(erc-sasl-create-client-ecdsa): Fix regression that made test
unusable, although it's still relatively useless and therefore skipped
by default.
* test/lisp/erc/erc-services-tests.el
(erc-services-tests--auth-source-standard)
(erc-services-tests--auth-source-announced): Clarify annotations.
* test/lisp/erc/erc-tests.el (erc-message): Don't return non-nil in
mocked `erc-display-message'.
(erc-send-modify-hook): Shadow `erc-send-modify-hook' because
`erc-stamp--date-mode' modifies it locally.

18 months agoEglot: run eglot-managed-mode-hook when turning off (bug#70958)
João Távora [Mon, 27 May 2024 21:58:48 +0000 (16:58 -0500)]
Eglot: run eglot-managed-mode-hook when turning off (bug#70958)

* lisp/progmodes/eglot.el (eglot--managed-mode): Run
  eglot-managed-mode-hook.

18 months ago; Fix thinko in my last change
Stefan Kangas [Mon, 27 May 2024 20:38:28 +0000 (22:38 +0200)]
; Fix thinko in my last change

* lisp/progmodes/which-func.el (which-func-update-delay): Fix
thinko.

18 months ago* Rework 'comp-normalize-valset' (bug#71116)
Andrea Corallo [Mon, 27 May 2024 15:38:22 +0000 (17:38 +0200)]
* Rework 'comp-normalize-valset' (bug#71116)

* lisp/emacs-lisp/comp-cstr.el (comp-normalize-valset): Rework to
improve consistency.

18 months agominibuffer-allow-text-properties can be buffer-local and affects completions
Juri Linkov [Mon, 27 May 2024 18:18:17 +0000 (21:18 +0300)]
minibuffer-allow-text-properties can be buffer-local and affects completions

* doc/lispref/minibuf.texi (Text from Minibuffer): Mention that
minibuffer-allow-text-properties can be let-bound or buffer-local
in the minibuffer.  Correct the description of
minibuffer-allow-text-properties to explain what it did
even before applying code changes in this patch.
Remove wrong example for read-no-blanks-input.

* lisp/imenu.el (imenu--completion-buffer): Set buffer-local
minibuffer-allow-text-properties to t.
(imenu--completion-buffer): Get text property 'imenu-choice'.
(imenu--flatten-index-alist): Propertize annotation
with text property 'imenu-choice'.

* lisp/simple.el (choose-completion): Don't remove text properties
from the returned completion string since the value of
minibuffer-allow-text-properties is already respected
in completion--replace.

* src/minibuf.c (read_minibuf): Preserve text properties not only
when allow_props is non-nil but also in case when
minibuffer_allow_text_properties is non-nil.
(Fread_from_minibuffer): Mention in the docstring that
minibuffer-allow-text-properties can be buffer-local in the minibuffer.
(minibuffer-allow-text-properties): Improve docstring to describe
when text properties are discarded.

https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg00949.html

18 months agoDon't let pp fall back to prin1 for conses
Michael Heerdegen [Sun, 26 May 2024 14:31:26 +0000 (16:31 +0200)]
Don't let pp fall back to prin1 for conses

* lisp/emacs-lisp/pp.el (pp--insert-lisp): Don't `prin1' non-list
conses; use our pp function for cons and list printing
`pp--format-list' instead.

18 months agoDon't try to pretty-print non-lists as binding list
Michael Heerdegen [Sun, 12 May 2024 17:58:14 +0000 (19:58 +0200)]
Don't try to pretty-print non-lists as binding list

* lisp/emacs-lisp/pp.el (pp--format-definition): Ensure that what we try
to print as a list of bindings has an appropriate format.  This avoids
raising an error for SEXPs like (let X Y) inside `pcase' forms where our
heuristic expects a binding list in the X position.

18 months ago; * src/lread.c (syms_of_lread) <load-no-native>: Doc fix (bug#70914).
Eli Zaretskii [Mon, 27 May 2024 11:54:01 +0000 (14:54 +0300)]
; * src/lread.c (syms_of_lread) <load-no-native>: Doc fix (bug#70914).

18 months agoFix minor issues in textconv.c
Po Lu [Mon, 27 May 2024 09:59:36 +0000 (17:59 +0800)]
Fix minor issues in textconv.c

* src/textconv.c (really_commit_text): Introduce a few
additional debugging printouts.
(locate_and_save_position_in_field): Fix typo.

18 months ago; * src/lread.c (load-no-native): Improve docstring.
Andrea Corallo [Mon, 27 May 2024 09:32:19 +0000 (11:32 +0200)]
; * src/lread.c (load-no-native): Improve docstring.

18 months ago; Silence byte-compiler
Stefan Kangas [Mon, 27 May 2024 08:54:46 +0000 (10:54 +0200)]
; Silence byte-compiler

18 months agoMake `idle-update-delay` obsolete
Stefan Kangas [Mon, 27 May 2024 08:51:54 +0000 (10:51 +0200)]
Make `idle-update-delay` obsolete

This user option was introduced in 2003, and was advertised as a general
variable for a "delay before updating various things on the screen".
But this has never been true: it was only used by 'which-function-mode',
and, to make matters worse, users of that mode would basically never
know that this user option existed without reading the code.

Conversely, users that did find the user option would be surprised to
see that it only took effect in 'which-func-mode'.

The lack of other users of 'idle-update-delay' reveals that it has not
been considered generally useful.  Thus, it makes more sense to
introduce a new mode specific user option `which-func-update-delay`, and
to mark the old one obsolete.

* lisp/simple.el (idle-update-delay): Make obsolete.
* lisp/progmodes/which-func.el (which-func-update-delay): New defcustom.
(which-function-mode): Use above new defcustom instead of
'idle-update-delay'.

18 months ago* lisp/progmodes/project.el: Up xref dependency and bump the version
Dmitry Gutov [Sun, 26 May 2024 22:23:30 +0000 (01:23 +0300)]
* lisp/progmodes/project.el: Up xref dependency and bump the version

18 months ago* lisp/progmodes/xref.el: Bump the version to 1.7.0
Dmitry Gutov [Sun, 26 May 2024 22:21:40 +0000 (01:21 +0300)]
* lisp/progmodes/xref.el: Bump the version to 1.7.0

18 months agoPrevent crashes due to redisplay while realizing the default face
Eli Zaretskii [Sun, 26 May 2024 16:41:30 +0000 (19:41 +0300)]
Prevent crashes due to redisplay while realizing the default face

* src/xfaces.c (Finternal_merge_in_global_face)
(realize_default_face): Prevent redisplay while the default face
is being realized.  (Bug#71176)

18 months agoRemove Emacs 19 compat code in mm-util.el
Stefan Kangas [Sun, 26 May 2024 13:25:21 +0000 (15:25 +0200)]
Remove Emacs 19 compat code in mm-util.el

* lisp/gnus/mm-util.el (mm-preferred-coding-system): Remove Emacs
19 compat code.

18 months agoFurther tweak pp code printing
Michael Heerdegen [Sun, 12 May 2024 17:55:30 +0000 (19:55 +0200)]
Further tweak pp code printing

This fixes an aspect of Bug#70868.

* lisp/emacs-lisp/pp.el (pp--insert-lisp): Print characters with
`prin1-char'.  In all other cases consistently print with `prin1'.

18 months agoFix --enable-checking build with macOS clang 15.0.0
Naofumi Yasufuku [Sun, 26 May 2024 08:53:42 +0000 (17:53 +0900)]
Fix --enable-checking build with macOS clang 15.0.0

search.c:3428:7: error: call to undeclared library function 'free' ...

configure:9131: checking for C compiler version
configure:9140: gcc --version >&5
Apple clang version 15.0.0 (clang-1500.3.9.4)
Target: arm64-apple-darwin23.5.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

* src/search.c: Include stdlib.h for free(), and stdio.h for
open_memstream(), fclose().

Copyright-paperwork-exempt: yes

18 months agoClean up legacy bytecode loading
Mattias Engdegård [Sun, 26 May 2024 09:13:50 +0000 (11:13 +0200)]
Clean up legacy bytecode loading

Complete some unfinished work from the elimination of lazy bytecode
loading in 9bcc9690a8: remove code which became unreachable by that
reform.  This simplifies some of the lower-level parts of the reader
which helps performance somewhat.

* src/doc.c (read_bytecode_pointer, read_bytecode_char)
(read_doc_string): Remove.
(get_doc_string): Remove last argument, all callers adapted.  Simplify.
* src/lread.c (readbyte_for_lambda, readbyte_from_string)
(readbyte_for_lambda, readbyte_from_string): Remove.
(readchar, unreadchar): Remove unused code paths for Qlambda and cons
arguments.
(bytecode_from_rev_list): Remove last use of a quirky code path,
decoding force-loaded lazy bytecode explicitly.

18 months agoUpdate documentation for 'width' slot of vtable ':column' object
Joost Kremers [Sat, 25 May 2024 19:55:29 +0000 (21:55 +0200)]
Update documentation for 'width' slot of vtable ':column' object

Bug#71167

18 months agoEnhance 'python-shell-send-block' for convenience
Lin Sun [Mon, 20 May 2024 06:55:31 +0000 (06:55 +0000)]
Enhance 'python-shell-send-block' for convenience

* lisp/progmodes/python.el (python-shell-send-block):
'python-shell-send-block' will now send block without header
by default.
* test/lisp/progmodes/python-tests.el
(python-test--shell-send-block): Update the test case.
(Bug#71083)

18 months ago; Fix merge error (bug#71093).
kobarity [Sun, 26 May 2024 00:56:29 +0000 (09:56 +0900)]
; Fix merge error (bug#71093).

18 months ago; Fix Calc manual
Eli Zaretskii [Sun, 26 May 2024 07:28:35 +0000 (10:28 +0300)]
; Fix Calc manual

* doc/misc/calc.texi (History and Acknowledgments)
(Musical Notes): Fix markup due to makeinfo 4.13 support.

18 months ago; Merge from origin/emacs-29
Eli Zaretskii [Sun, 26 May 2024 07:01:29 +0000 (03:01 -0400)]
; Merge from origin/emacs-29

The following commit was skipped:

21b2954c90e ; Fix markup in manuals

18 months ago; Fix markup in manuals
Eli Zaretskii [Sun, 26 May 2024 06:49:52 +0000 (09:49 +0300)]
; Fix markup in manuals

* doc/emacs/files.texi (Visiting):
* doc/lispref/processes.texi (Filter Functions, Sentinels): Fix
markup and punctuation.  Reported by Andrés Ramírez
<rrandresf@hotmail.com>.

18 months agoAddress compilation errors and warnings on x86 Solaris 10 systems
Po Lu [Sun, 26 May 2024 03:50:13 +0000 (11:50 +0800)]
Address compilation errors and warnings on x86 Solaris 10 systems

* doc/misc/ede.texi (Extending EDE):

* doc/misc/flymake.texi (Top, Using Flymake): Insert punctuation
after xrefs.

* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Print
number of files being scraped.

* src/dired.c (directory_files_internal):

* src/eval.c (Fmake_interpreted_closure, Fdefvaralias):

* src/fns.c (Fassoc): Work around optimizer failures.

18 months agoImprove navigation to cl-defgeneric uses
Dmitry Gutov [Sun, 26 May 2024 02:56:14 +0000 (05:56 +0300)]
Improve navigation to cl-defgeneric uses

* lisp/emacs-lisp/cl-generic.el
(cl--generic-find-defgeneric-regexp):
Use "symbol end" boundary (bug#71068).

18 months agoxref-revert-buffer: Make inhibit-modification-hooks binding a bit safer
Dmitry Gutov [Sat, 25 May 2024 21:58:57 +0000 (00:58 +0300)]
xref-revert-buffer: Make inhibit-modification-hooks binding a bit safer

* lisp/progmodes/xref.el (xref-revert-buffer): Make sure that the
inhibit-modification-hooks binding does not cover xref--fetcher
funcall.  Only the printing step (issue mentioned in bug#53749).

18 months agoFix a race condition when evaluating Eshell commands
Jim Porter [Sat, 25 May 2024 20:46:24 +0000 (13:46 -0700)]
Fix a race condition when evaluating Eshell commands

* lisp/eshell/esh-cmd.el (eshell-do-eval): Don't defer when all the
processes are done.

* test/lisp/eshell/esh-cmd-tests.el
(esh-cmd-test/pipeline-wait/nested-pipes): New test.

18 months agoMake Tramp's async processes more robust
Michael Albinus [Sat, 25 May 2024 15:23:30 +0000 (17:23 +0200)]
Make Tramp's async processes more robust

* lisp/simple.el (shell-command-sentinel): Check process property
`remote-command' first.

* lisp/net/tramp.el (tramp-handle-make-process):
* lisp/net/tramp-androidsu.el (tramp-androidsu-handle-make-process):
Set sentinel `ignore'.  (Bug#71049)

* test/lisp/net/tramp-tests.el
(tramp--test-deftest-direct-async-process): Don't suppress
internal sentinel.
(tramp-test32-shell-commanddirect-async): Don't tag it :unstable.

18 months ago* src/Makefile.in (ELN_DESTDIR, BIN_DESTDIR): Give a default (bug#70842).
Andrea Corallo [Sat, 25 May 2024 15:12:22 +0000 (17:12 +0200)]
* src/Makefile.in (ELN_DESTDIR, BIN_DESTDIR): Give a default (bug#70842).

18 months agoMerge from origin/emacs-29
Eli Zaretskii [Sat, 25 May 2024 12:00:48 +0000 (08:00 -0400)]
Merge from origin/emacs-29

4f0121f8dbe Avoid assertion violations in displaying under 'outline-m...
1bf65836622 Improve documentation of 'no-special-glyphs' frame parameter
3647645e948 Fix Python font lock of chained assignment statement
3291dea441f Fix example in Calc manual
350ae75f5c1 Avoid crashes on MS-Windows due to invalid UNC file names
ccf8dba44a3 ; * lisp/face-remap.el (text-scale-adjust): Doc fix.
5ab144c77cd ; Improve documentation of backing up files

18 months agoAvoid assertion violations in displaying under 'outline-minor-mode'
Eli Zaretskii [Sat, 25 May 2024 11:23:43 +0000 (14:23 +0300)]
Avoid assertion violations in displaying under 'outline-minor-mode'

* src/xdisp.c (init_from_display_pos): Initialize BYTEPOS
correctly, since 'init_iterator' no longer computes it from
CHARPOS as needed.  This fixes a change made on Mar 13, 2013.
(Bug#71194)

18 months agoOmit `store-substring` from lisp manual (bug#70784)
Mattias Engdegård [Sat, 25 May 2024 10:20:30 +0000 (12:20 +0200)]
Omit `store-substring` from lisp manual (bug#70784)

* doc/lispref/strings.texi (Modifying Strings): Remove `store-substring`
which is not really useful enough to merit a mention here.

18 months agoImprove documentation of 'no-special-glyphs' frame parameter
Eli Zaretskii [Sat, 25 May 2024 10:22:45 +0000 (13:22 +0300)]
Improve documentation of 'no-special-glyphs' frame parameter

* doc/lispref/frames.texi (Layout Parameters): Document
limitations of support for 'no-special-glyphs' frame parameter.
(Bug#71163)
* doc/lispref/display.texi (Truncation): Update for when
'fringe-mode' is off.

18 months agoImprove documentation of sending commands to shells
Eli Zaretskii [Sat, 25 May 2024 10:02:20 +0000 (13:02 +0300)]
Improve documentation of sending commands to shells

* doc/lispref/processes.texi (Synchronous Processes):
* lisp/subr.el (call-shell-region):
* lisp/simple.el (shell-command-on-region)
(shell-command-to-string): Document system-dependent aspects of
sending commands to shells.  (Bug#71081)

18 months agoAdapt Tramp's progress-reporter messages
Michael Albinus [Sat, 25 May 2024 09:34:04 +0000 (11:34 +0200)]
Adapt Tramp's progress-reporter messages

* lisp/net/tramp-androidsu.el (tramp-androidsu-maybe-open-connection):
* lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
Adapt progress-reporter message.

* lisp/net/tramp-sh.el (tramp-maybe-open-connection):
Divide progress-reporter into two parts.  (Bug#70901)

18 months ago; Improve doc strings in textsec.el
Eli Zaretskii [Sat, 25 May 2024 08:59:21 +0000 (11:59 +0300)]
; Improve doc strings in textsec.el

* lisp/international/textsec.el (textsec-email-address-suspicious-p)
(textsec-email-address-header-suspicious-p, textsec-scripts)
(textsec-single-script-p, textsec-covering-scripts)
(textsec-restriction-level, textsec-mixed-numbers-p)
(textsec-resolved-script-set)
(textsec-single-script-confusable-p)
(textsec-mixed-script-confusable-p)
(textsec-whole-script-confusable-p)
(textsec-local-address-suspicious-p)
(textsec-bidi-controls-suspicious-p, textsec-name-suspicious-p)
(textsec-suspicious-nonspacing-p): Doc fixes.

18 months agoAvoid rare errors in dabbrev.el
Eli Zaretskii [Sat, 25 May 2024 07:33:07 +0000 (10:33 +0300)]
Avoid rare errors in dabbrev.el

* lisp/dabbrev.el (dabbrev-expand, dabbrev--find-expansion): Make
sure 'dabbrev--last-buffer' is a live buffer before using its
value.  (Bug#70824)

18 months agoFix encoding of text when saving a gpg-encoded file
Eli Zaretskii [Sat, 25 May 2024 06:12:42 +0000 (09:12 +0300)]
Fix encoding of text when saving a gpg-encoded file

* lisp/epa-file.el (epa-file-write-region): Revert inadvertent
change from July 15, 2020 which broke selection of a correct
encoding for stuff sent to 'gpg'.  (Bug#71080)

18 months agoErase existing duplicates in eshell-history-ring
Robin Joy [Fri, 24 May 2024 12:26:39 +0000 (14:26 +0200)]
Erase existing duplicates in eshell-history-ring

Erase all existing duplicates instead of just the last duplicate entry
when 'eshell-hist-ignoredups' is set to 'erase'.  Multiple duplicates
can exist in case 'eshell-hist-ignoredups' was set to something else
than 'erase' in the past or if the history file contains duplicates
(bug#71107).

* lisp/eshell/em-hist.el (eshell-add-input-to-history): Remove all
duplicates from history ring.

* test/lisp/eshell/em-hist-tests.el
(em-hist-test/add-to-history/erase-existing-dups): New test.

18 months ago; Fix previous fix for bug#70796
Tassilo Horn [Fri, 24 May 2024 21:04:33 +0000 (23:04 +0200)]
; Fix previous fix for bug#70796

18 months agoFix usage of cons cells in grep-find-ignored-files
Spencer Baugh [Wed, 22 May 2024 12:28:07 +0000 (08:28 -0400)]
Fix usage of cons cells in grep-find-ignored-files

grep-find-ignored-files is documented to also include cons
cells, not just globs, but there were two places outside grep.el
where we were using it as if it was only a string list.

To fix this, add a helper function named grep-find-ignored-files
which handles grep-find-ignored-files properly and returns the
list of globs, and use it everywhere.

* lisp/progmodes/grep.el (grep--filter-list-by-dir)
(grep-find-ignored-files): New functions.
(rgrep-find-ignored-directories): Use grep--filter-list-by-dir.
(lgrep, rgrep-default-command):
Use grep-find-ignored-files function.
* lisp/dired-aux.el (dired-do-find-regexp):
Use grep-find-ignored-files function.
* lisp/progmodes/project.el (project-ignores):
Use grep-find-ignored-files function, if bound. (bug#71115)

18 months agobug-reference: signal fontified bounds back to jit-lock (bug#70796)
Tassilo Horn [Fri, 24 May 2024 19:52:34 +0000 (21:52 +0200)]
bug-reference: signal fontified bounds back to jit-lock (bug#70796)

* lisp/progmodes/bug-reference.el (bug-reference-fontify): Signal
fontified bounds back to jit-lock in order to allow for redisplay
optimizations (bug#70796).

18 months ago* lisp/dired.el (dired-mode-map): Bind "E" to 'dired-do-open' (bug#18132).
Juri Linkov [Fri, 24 May 2024 17:55:30 +0000 (20:55 +0300)]
* lisp/dired.el (dired-mode-map): Bind "E" to 'dired-do-open' (bug#18132).

(dired-mode-immediate-menu): Add menu item "Display Externally"
for 'dired-do-open'.

* lisp/dired-aux.el (dired-do-open): Add autoload cookie.

18 months agoNew variable shell-command-guess-dired-optional (bug#18132)
Juri Linkov [Fri, 24 May 2024 17:48:42 +0000 (20:48 +0300)]
New variable shell-command-guess-dired-optional (bug#18132)

* doc/emacs/dired.texi (Shell Command Guessing):
Add dired-guess-shell-alist-optional.

* lisp/dired.el (dired-guess-shell-alist-user):
* lisp/dired-aux.el (dired-do-shell-command):
Add dired-guess-shell-alist-optional to docstring.
(dired-guess-shell-alist-default): Move media commands to
'dired-guess-shell-alist-optional'.
(dired-guess-shell-alist-optional): New variable.
(dired-guess-default): Add 'dired-guess-shell-alist-optional'
to the end after 'dired-guess-shell-alist-user'
and 'dired-guess-shell-alist-default'.
(shell-command-guess-functions): Add more options.
(shell-command-guess-dired): Remove function.
(shell-command-guess-dired-user)
(shell-command-guess-dired-default)
(shell-command-guess-dired-optional): New functions.

18 months agoFix Python font lock of chained assignment statement
kobarity [Fri, 24 May 2024 13:50:12 +0000 (22:50 +0900)]
Fix Python font lock of chained assignment statement

* lisp/progmodes/python.el
(python-font-lock-keywords-maximum-decoration): Allow chaining
of single assignment statements.
* test/lisp/progmodes/python-tests.el
(python-font-lock-assignment-statement-20): New test.
(Bug#71093)

18 months ago; Refine 'completion-preview-exact' face
Eshel Yaron [Sat, 27 Apr 2024 18:39:19 +0000 (20:39 +0200)]
; Refine 'completion-preview-exact' face

* lisp/completion-preview.el (completion-preview-exact): Use
different underline color to further distinguish this face from
'completion-preview-common', and improve legibility with dark
background color.

18 months ago; Exclude a few more modes in 'global-completion-preview-mode'
Eshel Yaron [Wed, 1 May 2024 16:59:45 +0000 (18:59 +0200)]
; Exclude a few more modes in 'global-completion-preview-mode'

* lisp/completion-preview.el (global-completion-preview-mode):
Exclude a few non-edit major modes whose definition sets
'major-mode' directly, rather than using 'define-derived-mode'.

18 months agoFix example in Calc manual
Brad Knotwell [Fri, 24 May 2024 07:00:37 +0000 (00:00 -0700)]
Fix example in Calc manual

* doc/misc/calc.texi (Defining Simple Commands): Fix typo in
command names.  (Bug#71166)

Copyright-paperwork-exempt: yes

18 months ago* src/comp.c (check_comp_unit_relocs): Remove unneccesary double access.
Andrea Corallo [Fri, 24 May 2024 06:37:41 +0000 (08:37 +0200)]
* src/comp.c (check_comp_unit_relocs): Remove unneccesary double access.

18 months agoFix argument name highlighting in 'describe-function' output
Eshel Yaron [Thu, 23 May 2024 19:59:38 +0000 (21:59 +0200)]
Fix argument name highlighting in 'describe-function' output

This fixes a regression introduced in
dd38097f0b9458eea882043fa06b27248e505b22, which prevented proper
argument name highlighting in function docstrings in the output
buffer of 'describe-function'.

* lisp/help-fns.el (help-do-arg-highlight): New optional arg
that says if we're highlighting arguments in the usage string or
in the docstring.  Tweak generated regex to only expect argument
name to be preceded by function name in usage string.
(help-highlight-arguments): Use new argument for usage string.

18 months agoFix 'help-view-source' for variables defined in C
Eshel Yaron [Thu, 23 May 2024 13:02:05 +0000 (15:02 +0200)]
Fix 'help-view-source' for variables defined in C

This fixes an issue that Juri Linkov mentioned in Bug#71117.

* lisp/help-mode.el (help-function-def--button-function): When
searching for the definition of a variable, make sure to call
'help-C-file-name' with KIND argument set to 'var'.

18 months agoImprove Dired context menu
Eli Zaretskii [Thu, 23 May 2024 18:14:13 +0000 (21:14 +0300)]
Improve Dired context menu

* lisp/dired.el (dired-context-menu): Add 'w32-shell-execute' menu
item on MS-Windows.  Improve help-echo.

18 months agoDocumentation followup for last change
Eli Zaretskii [Thu, 23 May 2024 13:23:57 +0000 (16:23 +0300)]
Documentation followup for last change

* etc/NEWS: Announce the change in 'key-translate'.

* doc/lispref/commands.texi (Event Mod): Update documentation of
'key-translate'.  (Bug#70139)

18 months agoImprove 'key-translate' to support removing translations
Charalampos Mitrodimas [Tue, 2 Apr 2024 19:02:46 +0000 (19:02 +0000)]
Improve 'key-translate' to support removing translations

This patch enhances the key-translate function to allow removing
keyboard translations by passing nil as the second argument (TO).
If TO is nil, any existing translation for the FROM key will be
removed.  The compiler macro is updated to only check TO when it
is non-nil.  This change makes key-translate more consistent with
the behavior of 'keyboard-translate', providing a way to remove
translations without having to specify the same key for both FROM
and TO.
The documentation string is updated to reflect the new behavior.

* lisp/keymap.el (key-translate): Support removing translations
by passing nil as the second argument (TO).  Also signal an error
if multiple items are passed.  (Bug#70139)

18 months agoEnhance python-tests to adapt different Python interpreters (bug#70815)
Lin Sun [Fri, 3 May 2024 06:52:22 +0000 (06:52 +0000)]
Enhance python-tests to adapt different Python interpreters (bug#70815)

* test/lisp/progmodes/python-tests.el
(python-tests-get-shell-interpreter): New function to get Python
interpreter for testing; and also introduce new env variable
EMACS_PYTHON_INTERPRETER to support customer Python interpreter.

Co-authored-by: kobarity <kobarity@gmail.com>
18 months agoFix uncompressing a .tar.gz archive whose files have no leading dir
Eli Zaretskii [Thu, 23 May 2024 09:51:19 +0000 (12:51 +0300)]
Fix uncompressing a .tar.gz archive whose files have no leading dir

* lisp/dired-aux.el (dired-compress): Handle the case when
NEW-FILE is not produced in the current directory by uncompressing
a compressed file.  (Bug#47058)

18 months agoWork around one Android bug and document another
Po Lu [Thu, 23 May 2024 09:46:48 +0000 (17:46 +0800)]
Work around one Android bug and document another

* etc/PROBLEMS (Runtime problems specific to Android): Document
deficiency of "Android Keyboard (AOSP)."

* java/org/gnu/emacs/EmacsView.java (showOnScreenKeyboard):
Revert yesterday's change.

* java/org/gnu/emacs/EmacsWindow.java (toggleOnScreenKeyboard):
Sync with the UI thread after displaying the on-screen keyboard.

18 months agoRestore specbound keyboard-locals in the correct KBOARD
Po Lu [Thu, 23 May 2024 07:19:46 +0000 (15:19 +0800)]
Restore specbound keyboard-locals in the correct KBOARD

* doc/lispref/variables.texi (Intro to Buffer-Local): Fix typo
in documentation.

* src/data.c (KBOARD_OBJFWDP): Move to lisp.h.
(kboard_for_bindings): New variable.
(do_symval_forwarding, store_symval_forwarding): Call
kboard_for_bindings rather than retrieving this value directly.
(set_default_internal): New argument WHERE; if valcontents be a
Lisp_Kboard_Objfwd and WHERE be specified, save the binding
there.  All callers changed.

* src/eval.c (specpdl_where): Adjust for changes in structure
layout.
(specpdl_kboard): New function.
(do_specbind): Clear let->where.kbd in ordinary SPECPDL_LETs,
and set it to the kboard where the binding will be installed if
binding keyboard forwards.
(specbind, do_one_unbind, specpdl_unrewind): Provide
specpdl_kboard in invocation of set_default_internal.

* src/keyboard.c (delete_kboard): Clean thread specpdls of
references to kboards.

* src/keyboard.h (KBOARD_OBJFWDP): Move from data.c.

* src/lisp.h (union specbinding) <let.where>: Convert into
union of KBOARD and Lisp_Object.

* src/thread.c (all_threads): Export.

* src/thread.h: Adjust correspondingly.

18 months ago; * src/unexelf.c (unexec): Fix compiler warning.
Po Lu [Thu, 23 May 2024 05:54:48 +0000 (13:54 +0800)]
; * src/unexelf.c (unexec): Fix compiler warning.

18 months ago; Fix typo in NEWS (bug#71130).
Manuel Giraud [Wed, 22 May 2024 19:53:47 +0000 (21:53 +0200)]
; Fix typo in NEWS (bug#71130).

18 months ago; Fix recently-added documentation
Eli Zaretskii [Wed, 22 May 2024 18:43:43 +0000 (21:43 +0300)]
; Fix recently-added documentation

* doc/lispref/parsing.texi (Tree-sitter Major Modes): Mention
'treesit-indent-function'.  (Bug#71086)

18 months ago* lisp/emacs-lisp/pcase.el (pcase--subtype-bitsets): Fix bootstrap failure
Stefan Monnier [Wed, 22 May 2024 17:27:50 +0000 (13:27 -0400)]
* lisp/emacs-lisp/pcase.el (pcase--subtype-bitsets): Fix bootstrap failure

`rm lisp/emacs-lisp/cl-preloaded.elc src/bootstrap-emacs`
followed by `make` ended up loading right after defining
`built-in-class-p` but before actually defining the
built-in-classes so the computation of bitsets failed.

18 months agoImprove compatibility with Android's default text editor
Po Lu [Wed, 22 May 2024 14:00:02 +0000 (22:00 +0800)]
Improve compatibility with Android's default text editor

* java/org/gnu/emacs/EmacsView.java (showOnScreenKeyboard):
Request a selection update if `inputConnection' has been
established, to more closely emulate the OS text editing widget.
(onCreateInputConnection) [EmacsService.DEBUG_IC]: Print current
selection values before reporting them.

18 months agoAvoid crashes on MS-Windows due to invalid UNC file names
Eli Zaretskii [Wed, 22 May 2024 11:10:53 +0000 (14:10 +0300)]
Avoid crashes on MS-Windows due to invalid UNC file names

* src/w32.c (parse_root): Avoid crashes due to invalid (too short)
UNC names, such as "\\".  (Bug#70914)

* test/src/fileio-tests.el (fileio-tests-invalid-UNC): New test.

18 months ago; Fix last tree-sitter changes in Elisp manual.
Basil L. Contovounesios [Wed, 22 May 2024 10:02:35 +0000 (12:02 +0200)]
; Fix last tree-sitter changes in Elisp manual.

18 months agoImprove treesit-major-mode-setup indentation setup (bug#71086)
Yuan Fu [Wed, 22 May 2024 06:15:00 +0000 (23:15 -0700)]
Improve treesit-major-mode-setup indentation setup (bug#71086)

* lisp/treesit.el (treesit-major-mode-setup): Setup indentation when
treesit-indent-function is set.
* doc/lispref/modes.texi (Parser-based Indentation): Fix manual.

18 months agoFontify namespace in constant face in c++-ts-mode (bug#71070)
Yuan Fu [Wed, 22 May 2024 06:01:33 +0000 (23:01 -0700)]
Fontify namespace in constant face in c++-ts-mode (bug#71070)

* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Use
constant face.

18 months agoAddress a common pitfall in tree-sitter's manual section (bug#71048)
Yuan Fu [Wed, 22 May 2024 05:40:32 +0000 (22:40 -0700)]
Address a common pitfall in tree-sitter's manual section (bug#71048)

* doc/lispref/parsing.texi (Multiple Languages): Add example for
treesit-language-at-point-function.

18 months agoetags-regen-program: Use more robust default value
Dmitry Gutov [Tue, 21 May 2024 23:51:51 +0000 (02:51 +0300)]
etags-regen-program: Use more robust default value

* lisp/progmodes/etags-regen.el (etags-regen-program):
Default to the value of the variable etags-program-name.

18 months agoUse read-from-minibuffer instead of read-string for dired-do-touch
Juri Linkov [Tue, 21 May 2024 17:22:31 +0000 (20:22 +0300)]
Use read-from-minibuffer instead of read-string for dired-do-touch

* lisp/dired-aux.el (dired-mark-read-string): Use read-from-minibuffer
instead of read-string when op-symbol is 'touch', since it's more clear
when read-from-minibuffer returns an empty string for RET,
and it was used in dired-mark-read-string initially (bug#70725).

18 months agoFix some Tramp oddities
Michael Albinus [Tue, 21 May 2024 16:13:40 +0000 (18:13 +0200)]
Fix some Tramp oddities

* lisp/net/tramp-container.el: Move connection-local settings
where they belong to.

* lisp/net/tramp-sshfs.el (tramp-connection-properties): Do not
set connection property "direct-async-process".
(tramp-direct-async-process): Set connection-local value.

* test/lisp/net/tramp-tests.el (comp-warn-primitives): Declare.
(tramp-test18-file-attributes): Use it.

18 months ago; Avoid byte-compiler warning in todo-mode.el differently
Stephen Berman [Tue, 21 May 2024 13:04:43 +0000 (15:04 +0200)]
; Avoid byte-compiler warning in todo-mode.el differently

* lisp/calendar/todo-mode.el (todo-mode-map): Define it without a
value before its use in 'todo-insert-item--next-param' to pacify
the byte-compiler.
(todo-insert-item--next-param): Move back to its previous location
to keep it under the outline heading with related code.

18 months ago; * lisp/face-remap.el (text-scale-adjust): Doc fix.
Eli Zaretskii [Tue, 21 May 2024 12:40:51 +0000 (15:40 +0300)]
; * lisp/face-remap.el (text-scale-adjust): Doc fix.

18 months ago; Improve documentation of backing up files
Eli Zaretskii [Tue, 21 May 2024 12:34:50 +0000 (15:34 +0300)]
; Improve documentation of backing up files

* doc/emacs/files.texi (Backup Copying): Mention that
'backup-by-copying' is safer.  Document 'file-precious-flag'.
(Bug#71074)

18 months ago; Avoid byte-compiler warning in todo-mode.el
Eli Zaretskii [Tue, 21 May 2024 11:17:24 +0000 (14:17 +0300)]
; Avoid byte-compiler warning in todo-mode.el

* lisp/calendar/todo-mode.el (todo-insert-item--next-param): Move
to after the definition of 'todo-mode-map', which this function
uses.  This avoids byte-compiler warning.

18 months agoFix todo-mode item insertion bug (bug#70937)
Stephen Berman [Tue, 21 May 2024 09:04:17 +0000 (11:04 +0200)]
Fix todo-mode item insertion bug (bug#70937)

* lisp/calendar/todo-mode.el (todo-insert-item--next-param):
Initially assign each key in todo-mode-map a function identifying
it as invalid for item insertion, thus preventing mistakenly
pressing a key from executing an unwanted different todo-mode
command; the actual item insertion keys are redefined when looping
over the item insertion parameters.

18 months agoUse read-string instead of completing-read for dired-do-touch
Juri Linkov [Tue, 21 May 2024 06:20:01 +0000 (09:20 +0300)]
Use read-string instead of completing-read for dired-do-touch

* lisp/dired-aux.el (dired-mark-read-string): Use read-string
when op-symbol is 'touch' (bug#70725).

18 months agoFix for 'vc-default-patch-addressee' recently added to .dir-locals.el
Juri Linkov [Tue, 21 May 2024 06:16:18 +0000 (09:16 +0300)]
Fix for 'vc-default-patch-addressee' recently added to .dir-locals.el

* lisp/vc/vc.el: Add autoloaded setting of 'safe-local-variable' property
for 'vc-default-patch-addressee' exactly like it's already done
for 'vc-prepare-patches-separately'.

18 months agoDo not message for repeated enable/disable of tab-line-mode
Jared Finder [Tue, 21 May 2024 02:21:29 +0000 (19:21 -0700)]
Do not message for repeated enable/disable of tab-line-mode

tab-line-mode should not inform the user of an unexpected change
when enabling the mode if already enabled.  For example, when
running (tab-line-mode 1) repeatedly (bug#68765).

* lisp/tab-line.el (tab-line-mode): Modify case when user is informed.

18 months ago; * lisp/eshell/em-unix.el (eshell-grep): Fix "plain grep" behavior.
Jim Porter [Tue, 21 May 2024 00:38:00 +0000 (17:38 -0700)]
; * lisp/eshell/em-unix.el (eshell-grep): Fix "plain grep" behavior.

18 months agoSupport text overlays for thingatpt provider helpers
Jim Porter [Mon, 20 May 2024 19:45:13 +0000 (12:45 -0700)]
Support text overlays for thingatpt provider helpers

* lisp/thingatpt.el (thing-at-point-for-text-property)
(forward-thing-for-text-property)
(bounds-of-thing-at-point-for-text-property): Rename to...
(thing-at-point-for-char-property)
(forward-thing-for-char-property)
(bounds-of-thing-at-point-for-char-property): ... and add overlay
support.  Update callers.

* test/lisp/thingatpt-tests.el (thing-at-point-providers)
(forward-thing-providers, bounds-of-thing-at-point-providers): Test
overlays too.

* test/lisp/progmodes/bug-reference-tests.el (test-thing-at-point): Test
'bounds-of-thing-at-point' and 'forward-point'.

* etc/NEWS: Update function names in announcement.

18 months agoImprove implementation of 'forward-thing' using custom providers
Jim Porter [Mon, 20 May 2024 19:37:22 +0000 (12:37 -0700)]
Improve implementation of 'forward-thing' using custom providers

Now, call all the custom providers for each step, using the provider
that moves point the smallest non-zero amount.  This allows multiple
providers for a given "thing" to work nicely together.

* lisp/thingatpt.el (forward-thing-provider-alist): Update docstring.
(forward-thing): New implementation to call each provider N times.
(forward-thing-for-text-property): Take BACKWARD instead of N.  Update
callers.

* test/lisp/thingatpt-tests.el (thing-at-point-providers)
(forward-thing-providers): Add more checks.
(consecutive-things-at-point): New test.

18 months agoSync m4/byteswap.m4 from Gnulib
Paul Eggert [Mon, 20 May 2024 17:12:56 +0000 (10:12 -0700)]
Sync m4/byteswap.m4 from Gnulib

* m4/byteswap.m4: Copy from Gnulib.  This fixes a configure
glitch on macOS reported by Mattias Engdegård

19 months agoTramp code cleanup
Michael Albinus [Mon, 20 May 2024 14:22:17 +0000 (16:22 +0200)]
Tramp code cleanup

* lisp/net/tramp-sh.el (tramp-find-shell, tramp-find-inline-compress)
(tramp-get-remote-path):
* lisp/net/tramp-smb.el (tramp-smb-handle-process-file):
Use `tramp-warning'.

* test/lisp/net/tramp-tests.el (tramp--test-container-p):
Add "kubernetes", "run0" and "nspawn".
(tramp--test-toolbox-p): New defun.
(tramp-test45-asynchronous-requests): Use it.
(tramp--test-check-files): Adapt regexp.

19 months agoAdapt last change to Android
Po Lu [Mon, 20 May 2024 13:13:44 +0000 (21:13 +0800)]
Adapt last change to Android

* src/sfntfont.c (sfnt_parse_style): Replace unrepresentable
characters in DESC->adstyle with ` '.

19 months agoCircumvent bug#70989
Po Lu [Mon, 20 May 2024 12:59:32 +0000 (20:59 +0800)]
Circumvent bug#70989

* src/ftfont.c (get_adstyle_property): Substitute a space for
unrepresentable adstyle characters.  (bug#70989)

19 months agoFix visiting zip archives inside tar archives
Eli Zaretskii [Mon, 20 May 2024 12:29:39 +0000 (15:29 +0300)]
Fix visiting zip archives inside tar archives

* lisp/tar-mode.el (tar-archive-from-tar): New local variable.
(tar-extract): Set it non-nil for an extracted member that happens
to be arc-mode archive.
* lisp/arc-mode.el (tar-archive-from-tar): Defvar it.
(archive-unique-fname): Make sure FNAME can be created in DIR,
even if FNAME is provided as an absolute file name (this happens
if the archive is a member of a Tar archive, for example).
(archive-extract): Set 'archive-remote' for archives that were
extracted from Tar archives.  (Bug#70987)

19 months ago; * .dir-locals.el: Set 'vc-default-patch-addressee'
Philip Kaludercic [Tue, 13 Feb 2024 09:52:24 +0000 (10:52 +0100)]
; * .dir-locals.el: Set 'vc-default-patch-addressee'

19 months agoNew tests for nested archives (bug#70987)
Juri Linkov [Mon, 20 May 2024 06:22:10 +0000 (09:22 +0300)]
New tests for nested archives (bug#70987)

* test/lisp/tar-mode-tests.el (tar-mode-test-tar-extract-zip-and-gz):
* test/lisp/arc-mode-tests.el (arc-mode-test-zip-extract-tar-and-gz):
New tests.
* test/data/decompress/tzg.tar.gz:
* test/data/decompress/ztg.zip:
New data files to test decompressing of different combinations
of nested tar and zip archives.

19 months agoTell direction in prompts for '(previous|next)-matching-history-element'
Jim Porter [Sat, 11 May 2024 18:41:11 +0000 (11:41 -0700)]
Tell direction in prompts for '(previous|next)-matching-history-element'

Previously, this always said "Previous" for
'previous-matching-history-element' (likewise "Next").  Now, the prompt
accounts for a negative prefix argument changing the search direction
(bug#70882).

* lisp/simple.el (previous-matching-history-element)
(next-matching-history-element): Consult numeric prefix argument to
determine the prompt string.

19 months agoAllow defining custom providers for more "thingatpt" functions
Jim Porter [Mon, 29 Apr 2024 04:19:53 +0000 (21:19 -0700)]
Allow defining custom providers for more "thingatpt" functions

This also fixes an issue in EWW and bug-reference-mode where
(thing-at-point 'url) at the end of a URL would return nil.

See <https://lists.gnu.org/archive/html/emacs-devel/2024-02/msg00200.html>.

* lisp/thingatpt.el (forward-thing-provider-alist)
(bounds-of-thing-at-point-provider-alist): New variables...
(forward-thing, bounds-of-thing-at-point): ... use them.
(text-property-search-forward, text-property-search-backward)
(prop-match-beginning, prop-match-end): Declare.
(thing-at-point-for-text-property, forward-thing-for-text-property)
(bounds-of-thing-at-point-for-text-property): New functions.

* lisp/net/eww.el (eww--url-at-point): Use
'thing-at-point-for-text-property'.
(eww--bounds-of-url-at-point, eww--forward-url): New functions...
(eww-mode): ... use them.

* lisp/progmodes/bug-reference.el (bug-reference--url-at-point): Use
'thing-at-point-for-text-property'.
(bug-reference--bounds-of-url-at-point, bug-reference--forward-url): New
functions...
(bug-reference--init): ... use them.

* test/lisp/thingatpt-tests.el (thing-at-point-providers)
(forward-thing-providers, bounds-of-thing-at-point-providers): New
tests.

* etc/NEWS: Announce this change.

19 months ago; Stylistic adjustments to sfnt.c
Po Lu [Mon, 20 May 2024 01:10:57 +0000 (09:10 +0800)]
; Stylistic adjustments to sfnt.c

* src/sfnt.c (sfnt_map_table, sfnt_read_table): Adapt to coding
style of another project using this module.