Po Lu [Thu, 23 Nov 2023 07:05:31 +0000 (15:05 +0800)]
Prevent tab bar from vanishing on Android
* src/androidfns.c (android_change_tab_bar_height): Amend with
code absent when the function was first transcribed.
* src/haikufns.c (haiku_change_tab_bar_height):
* src/nsfns.m (ns_change_tab_bar_height):
* src/pgtkfns.c (pgtk_change_tab_bar_height):
* src/w32fns.c (w32_change_tab_bar_height):
* src/xfns.c (x_change_tab_bar_height): Revise commentary.
Po Lu [Thu, 23 Nov 2023 00:20:51 +0000 (08:20 +0800)]
; * doc/emacs/input.texi (On-Screen Keyboards): Fix typos.
Andrea Corallo [Wed, 22 Nov 2023 22:51:45 +0000 (17:51 -0500)]
(package-quickstart-refresh): Generate marginally more efficient code
* lisp/emacs-lisp/package.el (package-quickstart-refresh): Include
only one copy of the file names.
Andrea Corallo [Wed, 22 Nov 2023 15:37:16 +0000 (16:37 +0100)]
* Update 'native-comp-never-optimize-functions' version
* lisp/emacs-lisp/comp-common.el (native-comp-never-optimize-functions):
Update version.
Andrea Corallo [Wed, 22 Nov 2023 15:30:01 +0000 (16:30 +0100)]
* configure.ac: Fix non posix (bash only) eq operator
Michael Albinus [Wed, 22 Nov 2023 12:50:06 +0000 (13:50 +0100)]
Unify "."" and ".." handling in tramp-*-file-name-all-completions
* lisp/net/tramp-adb.el (tramp-adb-handle-file-name-all-completions):
* lisp/net/tramp-fuse.el (tramp-fuse-handle-file-name-all-completions):
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-name-all-completions):
Remove special handling of "." an "..".
* lisp/net/tramp.el (tramp-skeleton-file-name-all-completions):
Handle "."" and "..".
Michael Albinus [Wed, 22 Nov 2023 12:48:57 +0000 (13:48 +0100)]
Fix CRLF handling in Tramp
* lisp/net/tramp-sh.el (tramp-send-command-and-read): Use 'space'
instead of 'blank' in rx expression, in order to handle also CR
and alike. Reported by Dominique Quatravaux
<dominique@quatravaux.org>.
Po Lu [Wed, 22 Nov 2023 03:25:23 +0000 (11:25 +0800)]
; * lisp/touch-screen.el (touch-screen-handle-touch): Correct typo.
Po Lu [Wed, 22 Nov 2023 03:10:13 +0000 (11:10 +0800)]
Update touch-screen.el
* lisp/touch-screen.el (touch-screen-handle-aux-point-update):
Wrap exceptionally wide form.
(touch-screen-handle-touch): Guarantee that only tools from the
same frame as the current tool will be considered ancillary
tools. Further guarantee that normal gesture translation can
resume even if a touchscreen-end event is omitted or overlooked.
Po Lu [Wed, 22 Nov 2023 03:07:13 +0000 (11:07 +0800)]
Insert NEWS entry for native compilation changes
* etc/NEWS (Installation Changes in 30.1): Mention that native
compilation has been enabled by default.
Po Lu [Wed, 22 Nov 2023 03:00:04 +0000 (11:00 +0800)]
Disable native compilation in build machine Android binaries
* configure.ac (XCONFIGURE): Set with_native_compilation to no.
Andrea Corallo [Tue, 21 Nov 2023 10:14:15 +0000 (11:14 +0100)]
* Enable native compiler by default when libgccjit is available
* configure.ac: Enable native compiler by default when libgccjit available.
(with_native_compilation): Change default to 'default'.
(libgccjit_not_found_err, libgccjit_dev_not_found_err)
(libgccjit_broken_err): Renamed.
(libgccjit_not_found, libgccjit_dev_not_found, libgccjit_broken):
New functions.
Po Lu [Tue, 21 Nov 2023 06:18:04 +0000 (14:18 +0800)]
Save more information into Android font names
* src/sfntfont.c (sfntfont_open): Besides just the font file
name, also store the interpreter state, UPEM, charset and
instance number in FONT_FULLNAME_INDEX.
Manuel Giraud [Tue, 14 Nov 2023 13:49:37 +0000 (14:49 +0100)]
Add Gnus mode line logo in SVG format
Bug#67174
* etc/images/gnus/gnus-pointer.svg: New Gnus mode line logo in SVG format.
* lisp/gnus/gnus.el (gnus-mode-line-buffer-identification): Use it.
Juri Linkov [Mon, 20 Nov 2023 17:57:57 +0000 (19:57 +0200)]
Improve invisibility handling in isearch-lazy-highlight (bug#40808)
* lisp/isearch.el (isearch-lazy-highlight-invisible): New variable.
(isearch-lazy-highlight-new-loop, isearch-lazy-highlight-search)
(isearch-lazy-highlight-match, isearch-lazy-highlight-buffer-update): Use it.
* lisp/replace.el (replace-highlight): Let-bind isearch-invisible
to search-invisible.
* test/lisp/isearch-tests.el (isearch--test-invisible): New test.
Eli Zaretskii [Mon, 20 Nov 2023 12:45:30 +0000 (14:45 +0200)]
; * etc/TODO: Fix punctuation.
Andrea Corallo [Mon, 20 Nov 2023 09:37:04 +0000 (10:37 +0100)]
* etc/TODO (Native compiler improvements): Add 'Diagnostic' section.
Andrea Corallo [Mon, 20 Nov 2023 09:19:38 +0000 (10:19 +0100)]
* etc/TODO (Native compiler improvements): Move old entry here.
Andrea Corallo [Mon, 20 Nov 2023 09:09:31 +0000 (10:09 +0100)]
* etc/TODO (Native compiler improvements): Add section.
Andrea Corallo [Mon, 20 Nov 2023 08:45:33 +0000 (09:45 +0100)]
* Add 'eval' to 'native-comp-never-optimize-functions' (bug#67141)
* lisp/emacs-lisp/comp-common.el (native-comp-never-optimize-functions):
Add 'eval'.
Jim Porter [Sat, 11 Nov 2023 21:26:44 +0000 (13:26 -0800)]
Forward completion text properties in 'completion-table-with-quoting'
This fixes an issue with 'pcomplete-here-using-help', which passes
annotation strings along as text properties. Previously, those got
clobbered when the completions got requoted (bug#67112).
* lisp/minibuffer.el (completion--twq-all): Apply text properties from
the first character of the unquoted completion to the quoted
completion.
Eli Zaretskii [Sun, 19 Nov 2023 17:31:46 +0000 (19:31 +0200)]
; * doc/emacs/emacs.texi: Add a missing menu to @detailmenu.
Eli Zaretskii [Sun, 19 Nov 2023 09:37:45 +0000 (11:37 +0200)]
; Fix make-obsolete warnings in treesit.el
* lisp/treesit.el (treesit-text-type-regexp)
(treesit-sentence-type-regexp, treesit--things-around)
(treesit-sexp-type-regexp): Fix obsolescence warnings.
Eli Zaretskii [Sun, 19 Nov 2023 09:08:53 +0000 (11:08 +0200)]
; * etc/NEWS: Fix last change.
Kévin Le Gouguec [Sun, 12 Nov 2023 09:55:24 +0000 (10:55 +0100)]
Recognize shebang lines that pass '-S/--split-string' to 'env'
* etc/NEWS: announce the change.
* lisp/files.el (auto-mode-interpreter-regexp): Add optional '-S'
switch to the ignored group capturing the env invocation.
Allow multiple spaces between #!, interpreter and first argument:
empirically, Linux's 'execve' accepts that. (Bug#66902)
* test/lisp/files-tests.el (files-tests--check-shebang): New helper to
generate a temporary file with a given interpreter line, and assert
that the mode picked by 'set-auto-mode' is derived from an expected
mode. Write the 'should' form so that failure reports include useful
context; for example:
(ert-test-failed
((should
(equal (list shebang actual-mode) (list shebang expected-mode)))
:form
(equal ("#!/usr/bin/env -S make -f" fundamental-mode)
("#!/usr/bin/env -S make -f" makefile-mode))
:value nil :explanation
(list-elt 1 (different-atoms fundamental-mode makefile-mode))))
* test/lisp/files-tests.el (files-tests-auto-mode-interpreter): New
test; exercise some aspects of 'interpreter-mode-alist'.
Po Lu [Sun, 19 Nov 2023 04:46:21 +0000 (12:46 +0800)]
; * doc/emacs/emacs.texi: Remove redundant menu.
Po Lu [Sun, 19 Nov 2023 03:38:02 +0000 (11:38 +0800)]
Properly avoid displaying the OSK for calls to read-key-sequence
* lisp/touch-screen.el (touch-screen-handle-point-up): If prompt
is set, throw the input event rather than execute its command.
Po Lu [Sun, 19 Nov 2023 03:02:44 +0000 (11:02 +0800)]
; Correct typo
* doc/emacs/input.texi (Touchscreens): Use pxref where xref was
inserted by mistake.
Po Lu [Sun, 19 Nov 2023 03:00:25 +0000 (11:00 +0800)]
Reorganize documentation relating to touch screens
Chiefly, elevate it from an appendix to a node in the User Input
chapter. I have been approached time and again with questions
from people who have not searched the appendices for such
documentation.
* doc/emacs/emacs.texi: Move Other Input below Commands in the
menu.
* doc/emacs/input.texi (Other Input Devices): Rename to Other
Input. All callers changed.
(Touchscreens, On-Screen Keyboards): Revise and reword
documentation. Homogenize nomenclature for on screen keyboards,
preferring "virtual keyboards" after it has been mentioned once
by the other name.
Stefan Monnier [Sat, 18 Nov 2023 21:34:38 +0000 (16:34 -0500)]
(update_search_regs): Install better fix for bug#67124
The recent fix for the bug in `replace-match-maybe-edit`
was basically a refinement of a previously installed workaround,
whereas the bug was really in `update_search_regs`.
* src/search.c (update_search_regs): Improve handling of `start` positions.
* lisp/replace.el (replace-match-maybe-edit): Remove workaround.
* test/src/search-tests.el (search-test--replace-match-update-data): New test.
F. Jason Park [Wed, 15 Nov 2023 05:10:39 +0000 (21:10 -0800)]
Favor ISUPPORT params for MODE processing in ERC
* etc/ERC-NEWS: Mention shift toward CHANMODES ISUPPORT parameter for
dictating MODE parsing behavior.
* lisp/erc/erc-backend.el (erc--init-channel-modes, erc--update-modes,
erc-set-modes, erc-update-modes): Forward declarations, the last two
being removals.
(erc-server-MODE, erc-server-221): Use `erc--update-modes' instead of
`erc-update-modes'.
(erc-server-324): Use `erc--init-channel-modes' instead of
`erc-set-modes'.
* lisp/erc/erc-common.el (erc--channel-mode-types): New struct for
stashing processed \"CHANMODES\" data for the current server.
* lisp/erc/erc.el (erc-channel-modes): Fix doc string.
(erc-set-initial-user-mode): Display a local notice when requesting
redundant user MODE operations.
(erc-set-modes, erc-parse-modes, erc-update-modes): Deprecate for
reasons explained in associated ERC-NEWS entry.
(erc--update-membership-prefix): New function, a helper for specifying
arguments to the rather unruly `erc-update-current-channel-member'.
(erc--channel-modes): New variable to record channel-mode state in a
hash table.
(erc--channel-mode-types): New variable and getter to stash
and retrieve server-local instance of the struct of the same name.
(erc--process-channel-modes): New function to parse channel-mode
changes, dispatch handlers for unary modes, and update the local
variables `erc-channel-modes' and `erc--channel-modes'.
(erc--user-modes): New local variable for remembering user modes per
server. New function of the same name, a "getter" for the variable.
(erc--parse-user-modes): New function to parse user modes only.
(erc--update-user-modes): New function to update and sort
`erc--user-modes'.
(erc--update-channel-modes): New function to replace much of
`erc-update-modes', currently a thin wrapper around
`erc--process-channel-modes' to ensure it updates status prefixes.
(erc--update-modes): New function to call appropriate mode-updating
function for the current buffer.
(erc--init-channel-modes): New function to update channel mode letters
without status prefixes.
(erc--handle-channel-mode): New generic function, a placeholder for an
eventual API to handle specific "unary" mode letters, meaning those
that specify a single parameter for setting or unsetting.
(erc-update-channel-limit): Update doc string and answer question
posed by ancient comment.
(erc-message-english-user-mode-redundant-add,
erc-message-english-user-mode-redundant-drop): New English catalog
messages.
* test/lisp/erc/erc-scenarios-base-chan-modes.el: New file.
* test/lisp/erc/erc-tests.el (erc-parse-modes,
erc--update-channel-modes, erc--update-user-modes, erc--user-modes,
erc--parse-user-modes): New tests.
* test/lisp/erc/resources/base/modes/chan-changed.eld: New test data
file. (Bug#67220)
F. Jason Park [Tue, 14 Nov 2023 02:24:59 +0000 (18:24 -0800)]
Use caching variant of erc-parse-prefix internally
* lisp/erc/erc-common.el (erc--parsed-prefix): New struct to help with
tasks that depends on the advertised "PREFIX" parameter.
* lisp/erc/erc.el (erc-parse-prefix): Rework slightly for readability.
(erc--parsed-prefix): New variable and function of the same name for
caching the reversed result of `erc-parse-prefix' locally per server.
(erc-channel-receive-names): Use value stored in `erc--parsed-prefix'.
* test/lisp/erc/erc-tests.el (erc-with-server-buffer): Only activate
spy around actual test case forms.
(erc--parse-prefix): New test. (Bug#67220)
F. Jason Park [Tue, 14 Nov 2023 02:24:59 +0000 (18:24 -0800)]
Simplify ISUPPORT-derived data wrangling in ERC
* lisp/erc/erc-backend.el (erc--get-isupport-entry): Check server
buffer for `erc-server-parameters' when (re)initializing value. This
function was previously unreliable from a target buffer on cache
misses.
(erc--with-isupport-data): New macro for accessing and caching data
derived from an ISUPPORT parameter. Late-arriving params break the
cache.
(erc-server-005): Rewrite pattern as `rx' form, factoring out bol/eol.
* lisp/erc/erc-common.el (erc--isupport-data): New struct to be
subclassed for storing cached ISUPPORT-derived data.
* test/lisp/erc/erc-scenarios-display-message.el: Remove stray
`require'. (Bug#67220)
F. Jason Park [Fri, 17 Nov 2023 21:26:00 +0000 (13:26 -0800)]
Add test for erc-cmd-SQUERY
* lisp/erc/erc-backend.el (erc-message): Revise doc string.
* test/lisp/erc/erc-scenarios-base-misc-regressions.el (erc-cmd-MOTD):
Move test to another file specifically for slash commands.
* test/lisp/erc/erc-scenarios-misc-commands.el: New file.
* test/lisp/erc/resources/base/commands/motd.eld: Move file elsewhere.
* test/lisp/erc/resources/commands/motd.eld: "New" file, moved here
reusing the same Git blob from now deleted subdir base/commands.
* test/lisp/erc/resources/commands/squery.eld: New file. (Bug#67209)
Osmo Karppinen [Fri, 17 Nov 2023 10:31:50 +0000 (12:31 +0200)]
Fix command-line parsing for erc-cmd-SQUERY
* lisp/erc/erc.el (erc-cmd-SQUERY): Set symbol property
`do-not-parse-args' to t so additional command-line arguments aren't
parsed but rather included as part of the function's lone (raw) LINE
parameter. (Bug#67209)
Copyright-paperwork-exempt: yes
Michael Albinus [Sat, 18 Nov 2023 13:39:16 +0000 (14:39 +0100)]
Minor Tramp optimization
* lisp/net/tramp.el (tramp-skeleton-file-truename)
(tramp-skeleton-write-region, tramp-handle-file-truename):
* lisp/net/tramp-integration.el (tramp-eshell-directory-change)
(tramp-recentf-exclude-predicate):
* lisp/net/tramp-smb.el (tramp-smb-handle-copy-file):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-do-copy-or-rename-file):
Use `tramp-tramp-file-p' instead of `file-remote-p'.
Eli Zaretskii [Sat, 18 Nov 2023 11:07:48 +0000 (06:07 -0500)]
Merge from origin/emacs-29
d9e43f2197f Document changes in 'edmacro-parse-keys'
3327f36ad95 Add 2 SQLite extensions to allow-list.
8d2012024de * test/lisp/net/tramp-tests.el (tramp--test-timeout-handl...
Eli Zaretskii [Sat, 18 Nov 2023 11:07:48 +0000 (06:07 -0500)]
; Merge from origin/emacs-29
The following commit was skipped:
7b0e07c41ae Make Tramp aware of completion-regexp-list (don't merge)
Eli Zaretskii [Sat, 18 Nov 2023 11:07:47 +0000 (06:07 -0500)]
Merge from origin/emacs-29
232a57a3e32 ; * doc/lispref/debugging.texi (Debugging): Add cross-ref...
c65ddf26a33 ; doc/lispref/debugging.texi: Add reference to Profiler d...
6f884d3aed9 Add 5 docstrings to abbrev.el (bug#67153)
b4d990bd637 ; Clarify wording about arguments in doc strings
c20ae7a30fb ; Improve cross-references in description of 'pcase'
42181b65df1 ; * src/editfns.c (Fline_beginning_position): Doc fix.
5f3309f6b0f ; Improve indexing in ELisp manual
4e406bb4208 Fix CBZ file detection in doc-view-mode
Eli Zaretskii [Sat, 18 Nov 2023 11:07:47 +0000 (06:07 -0500)]
; Merge from origin/emacs-29
The following commit was skipped:
c1251ae1f93 * lisp/progmodes/eglot.el (eglot-server-programs): Fix pr...
Eli Zaretskii [Sat, 18 Nov 2023 11:07:47 +0000 (06:07 -0500)]
Merge from origin/emacs-29
5a1808da5f3 ; * doc/misc/eglot.texi (Eglot Commands): Fix typos (bug#...
Eli Zaretskii [Sat, 18 Nov 2023 11:07:47 +0000 (06:07 -0500)]
; Merge from origin/emacs-29
The following commit was skipped:
260ba357bbe Eglot: Send standard :language-id for typescript-language...
Eli Zaretskii [Sat, 18 Nov 2023 11:07:47 +0000 (06:07 -0500)]
Merge from origin/emacs-29
32a32853ce9 Typofix in the doc/lispref/modes.texi
f98637b51b5 ; Fix 'add-face-text-property' shortdoc
3fff22eb20c Fix spell-checking email message with citations
Eli Zaretskii [Sat, 18 Nov 2023 11:07:47 +0000 (06:07 -0500)]
; Merge from origin/emacs-29
The following commit was skipped:
5bebd292c63 Pass only the local parts of Eshell's $PATH to 'tramp-rem...
Eli Zaretskii [Sat, 18 Nov 2023 11:07:46 +0000 (06:07 -0500)]
Merge from origin/emacs-29
5612fd21a05 Add two doc strings to cl-extra.el
Eli Zaretskii [Sat, 18 Nov 2023 10:11:56 +0000 (12:11 +0200)]
; * etc/NEWS: Fix last change (bug#67225).
Rudi Schlatte [Thu, 16 Nov 2023 09:44:44 +0000 (10:44 +0100)]
Add key translations 'C-x 8 a e' and 'C-x 8 A E'.
* lisp/international/iso-transl.el (iso-transl-char-map): Add
new entries for ae and AE. (Bug#67225)
Eli Zaretskii [Sat, 18 Nov 2023 10:02:25 +0000 (12:02 +0200)]
; Add commentary for exposing a mode hook to Custom
* lisp/progmodes/elixir-ts-mode.el (elixir-ts-mode-hook): Add
commentary about the reasons for exposing the hook to Custom, per
the discussion in bug#67207.
Wilhelm H Kirschbaum [Wed, 15 Nov 2023 18:13:02 +0000 (20:13 +0200)]
Add elixir-ts-mode-hook to elixir-ts-mode
* lisp/progmodes/elixir-ts-mode.el (elixir-ts-mode-hook):
Make hook available to customize. (Bug#67207)
Eli Zaretskii [Sat, 18 Nov 2023 09:52:48 +0000 (11:52 +0200)]
Document changes in 'edmacro-parse-keys'
* lisp/edmacro.el (edmacro-parse-keys): Add a comment for forcing
output to be a vector.
(read-kbd-macro): Adjust the doc string to changes in
'edmacro-parse-keys'. (Bug#67182)
Po Lu [Sat, 18 Nov 2023 09:41:51 +0000 (17:41 +0800)]
Document Battery Optimization challenges on Android
* etc/PROBLEMS (Runtime problems specific to Android): Mention
battery optimization, the way it impacts background execution,
and how it might be disabled.
Eli Zaretskii [Sat, 18 Nov 2023 09:35:15 +0000 (11:35 +0200)]
; * etc/NEWS: Add entry about new input methods. (Bug#66470)
Rahguzar [Sun, 29 Oct 2023 16:14:02 +0000 (17:14 +0100)]
Add input methods for Urdu, Pashto and Sindhi (bug#66470)
* lisp/leim/quail/pakistan.el ("urdu-keyboard")
("urdu-phonetic-keyboard", "urdu-custom", "sindhi-keyboard")
("pashto-keyboard"): New input methods.
(pakistan--define-quail-rules, pakistan--make-setter)
(pakistan--regenerate-translations, pakistan--set-prefixes)
(pakistan--define-numeral-translations)
(pakistan--set-numeral-translations):
Internal helper functions.
(pakistan-urdu-input): New customization group.
(pakistan-urdu-prefixes, pakistan-urdu-translations)
(pakistan-urdu-diacritics-and-other-symbols)
(pakistan-urdu-poetic-symbols, pakistan-urdu-religious-symbols)
(pakistan-extra-balochi-brahui-translations)
(pakistan-extra-pashto-translations)
(pakistan-extra-sindhi-translations)
(pakistan-extra-saraiki-hindko-translations)
(pakistan-urdu-use-roman-digits): New custom variables.
(pakistan): New package.
Eli Zaretskii [Sat, 18 Nov 2023 09:11:04 +0000 (11:11 +0200)]
Add 2 SQLite extensions to allow-list.
* src/sqlite.c (Fsqlite_load_extension): Add 2 Free Software
extensions to the allow-list. For the details, see
https://lists.gnu.org/archive/html/emacs-devel/2023-11/msg00234.html.
Visuwesh [Sun, 29 Oct 2023 14:51:57 +0000 (20:21 +0530)]
Do interactive tagging for dired commands
* lisp/dired-aux.el (dired-diff, dired-backup-diff)
(dired-compare-directories, dired-do-chmod, dired-do-chgrp)
(dired-do-chown, dired-do-touch, dired-do-print, dired-clean-directory)
(dired-do-async-shell-command, dired-do-shell-command, dired-kill-line)
(dired-do-kill-lines, dired-do-compress-to, dired-do-compress)
(dired-do-byte-compile, dired-do-load, dired-do-redisplay)
(dired-reset-subdir-switches, dired-create-directory)
(dired-create-empty-file, dired-do-copy, dired-do-symlink)
(dired-do-relsymlink, dired-do-hardlink, dired-do-rename)
(dired-do-rename-regexp, dired-do-copy-regexp, dired-do-hardlink-regexp)
(dired-do-symlink-regexp, dired-do-relsymlink-regexp, dired-upcase)
(dired-downcase, dired-maybe-insert-subdir, dired-insert-subdir)
(dired-kill-tree, dired-prev-subdir, dired-mark-subdir-files)
(dired-kill-subdir, dired-tree-up, dired-tree-down, dired-hide-subdir)
(dired-hide-all, dired-isearch-filenames, dired-isearch-filenames-regexp)
(dired-do-isearch, dired-do-isearch-regexp, dired-do-search)
(dired-do-query-replace-regexp, dired-do-find-regexp)
(dired-do-find-regexp-and-replace, dired-show-file-type)
(dired-vc-next-action):
* lisp/dired-x.el (dired-mark-extension, dired-mark-suffix)
(dired-flag-extension, dired-clean-patch, dired-clean-tex)
(dired-very-clean-tex, dired-mark-omitted, dired-omit-expunge)
(dired-mark-unmarked-files, dired-do-find-marked-files, dired-vm)
(dired-rmail, dired-do-run-mail, dired-mark-sexp,
dired-x-bind-find-file):
* lisp/dired.el (dired-mouse-drag, dired-undo, dired-toggle-read-only)
(dired-next-line, dired-previous-line, dired-next-dirline)
(dired-prev-dirline, dired-up-directory, dired-get-file-for-visit)
(dired-find-file, dired-find-alternate-file, dired-mouse-find-file)
(dired-mouse-find-file-other-window, dired-mouse-find-file-other-frame)
(dired-view-file, dired-find-file-other-window, dired-display-file)
(dired-copy-filename-as-kill, dired-next-subdir)
(dired-build-subdir-alist, dired-goto-file, dired-do-flagged-delete)
(dired-do-delete, dired-next-marked-file, dired-prev-marked-file)
(dired-mark, dired-unmark, dired-flag-file-deletion)
(dired-unmark-backward, dired-toggle-marks, dired-mark-files-regexp)
(dired-number-of-marked-files, dired-mark-files-containing-regexp)
(dired-flag-files-regexp, dired-mark-symlinks, dired-mark-directories)
(dired-mark-executables, dired-flag-auto-save-files)
(dired-flag-garbage-files, dired-flag-backup-files, dired-change-marks)
(dired-unmark-all-marks, dired-unmark-all-files)
(dired-sort-toggle-or-edit, dired-mark-for-click)
(dired-enable-click-to-select-mode): Tag commands as applicable only
for dired-mode.
Eli Zaretskii [Sat, 18 Nov 2023 08:13:37 +0000 (10:13 +0200)]
Avoid loading cl-lib as result of invoking 'load-library'
* lisp/emacs-lisp/find-func.el (find-function--any-subform-p):
Don't use 'cl-destructuring-bind'.
(find-library--from-load-history): Don't use 'cl-loop'.
* lisp/thingatpt.el (thing-at-point): Don't use 'cl-loop'. This
avoids loading cl-lib whenever thingatpt.el is loaded, for
example, as result of "M-x load-library".
Eli Zaretskii [Sat, 18 Nov 2023 07:01:30 +0000 (09:01 +0200)]
; Improve documentation of recently added functions
* src/androidfns.c (Fandroid_external_storage_available_p)
(Fandroid_request_storage_access):
* lisp/term/android-win.el (android-after-splash-screen): Improve
and clarify wording of doc strings.
Po Lu [Sat, 18 Nov 2023 06:15:55 +0000 (14:15 +0800)]
Offer to grant storage permissions if absent
* java/org/gnu/emacs/EmacsService.java (externalStorageAvailable)
(requestStorageAccess23, requestStorageAccess30)
(requestStorageAccess): New functions.
* lisp/startup.el (fancy-startup-tail, normal-splash-screen):
Call android-win functions for inserting the new storage
permission notice.
* lisp/term/android-win.el
(android-display-storage-permission-popup)
(android-after-splash-screen): New functions.
* src/android.c (android_init_emacs_service): Link to new Java
functions.
(android_external_storage_available_p)
(android_request_storage_access): New functions.
* src/android.h: Update prototypes.
* src/androidfns.c (Fandroid_external_storage_available_p)
(Fandroid_request_storage_access): New functions.
(syms_of_androidfns): Register new subrs.
Stefan Monnier [Fri, 17 Nov 2023 23:12:03 +0000 (18:12 -0500)]
* lisp/emacs-lisp/pcase.el (pcase-mutually-exclusive-predicates): Add `null`
Spencer Baugh [Thu, 16 Nov 2023 16:34:08 +0000 (11:34 -0500)]
Return t from completion-emacs22-try-completion only for completions
The emacs22 completion style ignores the text after point when
computing completions. However, it still needs to take into account
the entire string it's given, to avoid returning incorrect values.
Previously, completion-emacs22-try-completion would return t if the
text before point was an exact completion. But this is effectively
saying that the entire input string was an exact completion, which may
not be correct. This would cause completing-read with REQUIRE-MATCH=t
to return a non-completion.
Now, completion-emacs22-try-completion only returns t if the entire
input string is an exact completion.
* lisp/minibuffer.el (completion-emacs22-try-completion): Return t
only if the entire input string is an exact completion. (Bug#67210)
Michael Albinus [Fri, 17 Nov 2023 17:28:30 +0000 (18:28 +0100)]
Make Tramp aware of completion-regexp-list
* lisp/net/tramp.el (tramp-skeleton-file-name-all-completions):
New defmacro.
(tramp-completion-handle-file-name-all-completions):
* lisp/net/tramp-adb.el (tramp-adb-handle-file-name-all-completions):
* lisp/net/tramp-crypt.el (tramp-crypt-handle-file-name-all-completions):
* lisp/net/tramp-fuse.el (tramp-fuse-handle-file-name-all-completions):
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-name-all-completions):
* lisp/net/tramp-sh.el (tramp-sh-handle-file-name-all-completions):
* lisp/net/tramp-smb.el (tramp-smb-handle-file-name-all-completions):
* lisp/net/tramp-sudoedit.el
(tramp-sudoedit-handle-file-name-all-completions): Use it.
Michael Albinus [Fri, 17 Nov 2023 17:17:28 +0000 (18:17 +0100)]
* test/lisp/net/tramp-tests.el (tramp--test-timeout-handler): Be more verbose.
Michael Albinus [Fri, 17 Nov 2023 17:16:58 +0000 (18:16 +0100)]
Make Tramp aware of completion-regexp-list (don't merge)
* lisp/net/tramp.el (tramp-skeleton-file-name-all-completions):
New defmacro.
(tramp-completion-handle-file-name-all-completions):
* lisp/net/tramp-adb.el (tramp-adb-handle-file-name-all-completions):
* lisp/net/tramp-crypt.el (tramp-crypt-handle-file-name-all-completions):
* lisp/net/tramp-fuse.el (tramp-fuse-handle-file-name-all-completions):
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-name-all-completions):
* lisp/net/tramp-sh.el (tramp-sh-handle-file-name-all-completions):
* lisp/net/tramp-smb.el (tramp-smb-handle-file-name-all-completions):
* lisp/net/tramp-sudoedit.el
(tramp-sudoedit-handle-file-name-all-completions): Use it.
Eli Zaretskii [Fri, 17 Nov 2023 12:28:13 +0000 (14:28 +0200)]
; * doc/lispref/debugging.texi (Debugging): Add cross-references.
Ihor Radchenko [Fri, 17 Nov 2023 09:47:46 +0000 (11:47 +0200)]
; doc/lispref/debugging.texi: Add reference to Profiler docs (bug#67236).
Jeremy Bryant [Wed, 15 Nov 2023 23:15:46 +0000 (23:15 +0000)]
Add 5 docstrings to abbrev.el (bug#67153)
* lisp/abbrev.el (prepare-abbrev-list-buffer, add-abbrev)
(inverse-add-abbrev, abbrev--describe)
(abbrev--possibly-save): Add doc strings.
Eli Zaretskii [Fri, 17 Nov 2023 07:04:20 +0000 (09:04 +0200)]
; Clarify wording about arguments in doc strings
* doc/lispref/tips.texi (Documentation Tips): Clarify "important
arguments". (Bug#67217)
Po Lu [Fri, 17 Nov 2023 03:36:58 +0000 (11:36 +0800)]
Correct initial scale calculation when pinching nonselected window
* lisp/touch-screen.el (touch-screen-pinch): Retrieve present
scale within the window pinched.
(touch-screen-handle-point-update): Expunge inefficacious code
meant to disregard events sent during gesture navigation.
Po Lu [Fri, 17 Nov 2023 03:16:23 +0000 (11:16 +0800)]
Correct generation of touchscreen-pinch events
* lisp/touch-screen.el (touch-screen-pinch): Check that posn-x-y
is available before scrolling to it.
(touch-screen-handle-aux-point-update): Don't provide posns for
windows besides the window where the touch sequence started in
touchscreen-pinch events.
Eli Zaretskii [Thu, 16 Nov 2023 19:55:10 +0000 (21:55 +0200)]
; Improve cross-references in description of 'pcase'
* doc/lispref/control.texi (pcase Macro, Backquote Patterns):
Improve cross-references.
Juri Linkov [Thu, 16 Nov 2023 17:37:21 +0000 (19:37 +0200)]
; * etc/NEWS: Add new section.
Stefan Monnier [Thu, 16 Nov 2023 16:19:56 +0000 (11:19 -0500)]
* etc/NEWS: Mention incompatible change in `pp` (bug#67180)
Stefan Monnier [Thu, 16 Nov 2023 14:57:38 +0000 (09:57 -0500)]
Merge branch 'derived-mode-add-parents'
Stefan Monnier [Thu, 16 Nov 2023 14:50:45 +0000 (09:50 -0500)]
(merge-ordered-lists): Dot a few more `i`s
Suggested by Mattias Engdegård.
* lisp/subr.el (merge-ordered-lists): Don't mutate the arg.
* test/lisp/subr-tests.el (subr-tests--merge-ordered-lists): Make the
test a bit more precise.
Po Lu [Thu, 16 Nov 2023 13:07:01 +0000 (21:07 +0800)]
Disable generation of mouse-1 events after ancillary tool presses
* lisp/touch-screen.el (touch-screen-handle-scroll): Correct
typo in comment.
(touch-screen-handle-point-update): Attempt to detect scroll
gestures and the like also when what is ancillary-tool.
(touch-screen-handle-point-up): Don't needlessly compute
relative xy when transforming aux tool into current tool.
(touch-screen-handle-touch): Set what field to ancillary-tool
rather than clear it when initializing the ancillary tool,
indicating to t-s-h-p-u that it must not generate mouse up
events.
Po Lu [Thu, 16 Nov 2023 09:38:53 +0000 (17:38 +0800)]
Don't pan horizontally when a pinch gesture represents a shrink
* lisp/touch-screen.el (touch-screen-pinch): Don't pan left if
the event represents a shrink.
Po Lu [Thu, 16 Nov 2023 09:31:04 +0000 (17:31 +0800)]
; Commit omitted change
* lisp/completion-preview.el (completion-preview-commands):
Substitute analyze-text-conversion for text-conversion, as this
list enumerates commands, not events.
Andrea Corallo [Thu, 16 Nov 2023 09:19:20 +0000 (10:19 +0100)]
Clean-up some native-comp advice special handling.
* lisp/emacs-lisp/nadvice.el (advice--add-function): Clean-up
nativecomp special handling.
* lisp/emacs-lisp/advice.el (ad-add-advice): Likewise.
Eli Zaretskii [Thu, 16 Nov 2023 09:30:48 +0000 (11:30 +0200)]
; * src/editfns.c (Fline_beginning_position): Doc fix.
Eli Zaretskii [Thu, 16 Nov 2023 09:22:58 +0000 (11:22 +0200)]
Fix scrolling when continuation line starts with a display string
* src/xdisp.c (start_display): Compute continuation_lines_width
for starting display in strings and images as well. (Bug#67201)
Andrea Corallo [Thu, 16 Nov 2023 08:03:20 +0000 (09:03 +0100)]
* lisp/emacs-lisp/nadvice.el (advice--add-function): Move func decl.
Juri Linkov [Thu, 16 Nov 2023 07:25:23 +0000 (09:25 +0200)]
* lisp/mail/emacsbug.el (submit-emacs-patch): Use pop-to-buffer-same-window.
This allows customization with 'display-buffer-alist' (bug#65387).
Eli Zaretskii [Thu, 16 Nov 2023 06:55:08 +0000 (08:55 +0200)]
; * lisp/simple.el (minibuffer-default-add-completions): Doc fix.
Eli Zaretskii [Thu, 16 Nov 2023 06:24:13 +0000 (08:24 +0200)]
; Improve indexing in ELisp manual
* doc/lispref/tips.texi (Documentation Tips, Coding Conventions)
(Key Binding Conventions, Programming Tips, Compilation Tips)
(Warning Tips, Comment Tips, Library Headers): Improve indexing.
Stefan Monnier [Thu, 16 Nov 2023 05:16:31 +0000 (00:16 -0500)]
todo-mode.el: Don't let-bind `buffer-read-only`
Prefer let-binding `inhibit-read-only` so the code can freely change
`buffer-read-only`. While at it, prefer #' to quote function names.
* lisp/calendar/todo-mode.el (todo-rename-category)
(todo-delete-category, todo-delete-item)
(todo-edit-item--diary-inclusion, todo-edit-category-diary-inclusion)
(todo-edit-category-diary-nonmarking, todo-archive-done-item)
(todo-unarchive-items, todo-display-categories)
(todo-update-categories-display, todo-filter-items-1)
(todo-reset-nondiary-marker, todo-reset-done-separator-string)
(todo-reset-done-string, todo-reset-comment-string):
Bind `inhibit-read-only` instead of `buffer-read-only`.
(todo-mode, todo-archive-mode, todo-edit-mode, todo-categories-mode)
(todo-filtered-items-mode): Let `define-derived-mode` take care of
adding the keymap to the docstring.
(todo-mode, todo-archive-mode, todo-categories-mode)
(todo-filtered-items-mode): Let `define-derived-mode` set
`mode-class`.
Po Lu [Thu, 16 Nov 2023 03:29:58 +0000 (11:29 +0800)]
Pan during touch screen pinch gestures
* doc/lispref/commands.texi (Touchscreen Events): Document new
ratio-diff parameter to touchscreen-pinch events.
* lisp/completion-preview.el (completion-preview-commands):
Account text-conversion events preview commands as well.
* lisp/touch-screen.el (touch-screen-aux-tool): Introduce two
new elements.
(touch-screen-pinch): Scroll window in accord with event deltas.
(touch-screen-handle-aux-point-update): Supply the ratio
difference in generated events.
(touch-screen-handle-touch): Create a vector with those two new
elements.
Juri Linkov [Wed, 15 Nov 2023 17:52:10 +0000 (19:52 +0200)]
* lisp/simple.el (minibuffer-default-add-completions): Improve (bug#64656).
Return nil for some popular completions with undefined order that include
obarray. Extend the docstring to explain how to disable this feature.
Juri Linkov [Wed, 15 Nov 2023 17:44:04 +0000 (19:44 +0200)]
Enable completion-in-region-mode in minibuffer-complete-history/defaults
* lisp/minibuffer.el (minibuffer-complete-history)
(minibuffer-complete-defaults): Let-bind completion-in-region-mode-predicate
to lambda that checks if the "*Completions*" buffer window is visible.
This enables completion-in-region-mode that supports arrows
with minibuffer-visible-completions.
Juri Linkov [Wed, 15 Nov 2023 17:37:30 +0000 (19:37 +0200)]
* lisp/minibuffer.el (minibuffer-completion-help): Fix base-suffix for region.
When used with completion-in-region where completion-in-region-mode-predicate
is non-nil, start base-suffix from point (bug#62700).
Eshel Yaron [Thu, 2 Nov 2023 15:58:31 +0000 (16:58 +0100)]
Add Completion Preview mode
This adds a new minor mode, 'completion-preview-mode', that displays
in-buffer completion suggestions with an inline "preview" overlay.
(Bug#66948)
* lisp/completion-preview.el: New file.
* doc/emacs/programs.texi (Symbol Completion): Document it.
* etc/NEWS: Announce it.
Spencer Baugh [Fri, 10 Nov 2023 16:27:10 +0000 (11:27 -0500)]
Don't infinite loop in map-y-or-n-p if at the end of kmacro
Previously, if map-y-or-n-p got -1 from read-event (indicating no
input due to the end of a keyboard macro), it would just infinite
loop.
Now it behaves like other commands which use read-event/read-char/etc,
and just errors when we try to look up -1 in our keymap and find
nothing.
Also, just for the sake of users, print a slightly prettier message
when this happens.
* lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Don't loop if we reach
the end of a keyboard macro. (Bug#67046)
Morgan Smith [Sun, 12 Nov 2023 17:31:39 +0000 (12:31 -0500)]
Fix CBZ file detection in doc-view-mode
* lisp/doc-view.el (doc-view-set-doc-type): Fix CBZ file
detection. (Bug#67133)
This fix is almost identical to the previous fix for ODF file
detection in bug#54947 which resulted in commit
b3ff4905388834994ff26d9d033d6bc62b094c1c
Eli Zaretskii [Wed, 15 Nov 2023 13:58:17 +0000 (15:58 +0200)]
Fix 'tex-compile-commands'
* lisp/textmodes/tex-mode.el (tex-compile-commands): Respect
'tex-start-options' better. (Bug#67030)
Spencer Baugh [Fri, 10 Nov 2023 12:20:09 +0000 (07:20 -0500)]
Signal file-locked on lock conflict with noninteractive=t
Previously we would signal a generic error on lock conflict when
noninteractive=t. That meant that non-interactively handling a lock
conflict would require catching all errors and checking the string in
DATA.
Now we just signal file-locked instead, which matches the interactive
behavior when the user says "q" at the prompt.
Also, when noninteractive, we signal before we write the prompt about
the lock conflict. That prompt usually gets in the way of
noninteractively handling and suppress lock conflict errors. The
signal data contains all the necessary information, we don't need to
write a separate message for noninteractive.
* lisp/userlock.el (ask-user-about-lock): Signal file-locked on
noninteractive lock conflict. (bug#66993)
Eli Zaretskii [Wed, 15 Nov 2023 13:15:35 +0000 (15:15 +0200)]
Fix query-replace at EOB
* lisp/replace.el (replace-match-maybe-edit): Avoid clobbering
match-data with outdated buffer position. (Bug#67124)
Eli Zaretskii [Wed, 15 Nov 2023 13:10:04 +0000 (15:10 +0200)]
Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs
Po Lu [Wed, 15 Nov 2023 13:06:27 +0000 (21:06 +0800)]
; * doc/lispref/commands.texi (Touchscreen Events): Correct typo.
Po Lu [Wed, 15 Nov 2023 12:58:46 +0000 (20:58 +0800)]
Register ``pinch to zoom'' touch screen gestures
* doc/emacs/input.texi (Touchscreens): Address pinch gestures.
* doc/lispref/commands.texi (Touchscreen Events): Address touch
screen pinch events and the process by which they are produced.
* java/org/gnu/emacs/EmacsWindow.java (figureChange)
<ACTION_POINTER_DOWN>: Supply pointer index to getX and getY,
correcting a mistake where the first touch point's coordinate
was saved here in lieu of the pointer that was pressed's.
* lisp/touch-screen.el (touch-screen-current-tool): Revise doc
string.
(touch-screen-aux-tool): New variable.
(touch-screen-scroll-point-to-y, touch-screen-pinch): New
functions.
(global-map): Bind [touchscreen-pinch] to touch-screen-pinch.
(touch-screen-handle-point-update): Revise doc string; set new
tenth field of t-s-c-t to POINT relative to its window, without
regard to whether an event has been sent.
(touch-screen-distance, touch-screen-centrum): New functions.
(touch-screen-handle-aux-point-update): New function; generate
and send touchscreen-pinch if need be.
(touch-screen-handle-point-up): If an ancillary tool exists,
transfer the information there into touch-screen-current-tool
and clear t-s-a-t.
(touch-screen-handle-touch): Call t-s-a-p-u as is proper; set
t-s-a-t if a touchscreen-down event arrives and t-s-c-t is set.
* src/androidterm.c (handle_one_android_event): Properly save
the event's X and Y when a new touch point is registered.
nverno [Sun, 12 Nov 2023 19:36:09 +0000 (11:36 -0800)]
Fix font-lock for string escapes in lua-ts-mode
* lua-ts-mode.el (lua-ts--font-lock-settings): Apply font-lock
to the entire string containing an escape sequence. (Bug#67135)
john muhl [Mon, 13 Nov 2023 22:06:07 +0000 (16:06 -0600)]
Fix flymake integration in lua-ts-mode (Bug#67152)
* lisp/progmodes/lua-ts-mode.el (lua-ts-flymake-luacheck): Use
'flymake-diag-region' to mark highlighted region.