Mattias Engdegård [Mon, 29 May 2023 15:49:48 +0000 (17:49 +0200)]
Clean up defcustom type quote check
* lisp/emacs-lisp/bytecomp.el
(byte-compile--suspicious-defcustom-choice): Rename to...
(byte-compile--defcustom-type-quoted): ...this and rewrite to make
more sense. All callers updated.
(byte-compile-nogroup-warn): Better warning message.
* test/lisp/emacs-lisp/bytecomp-tests.el
(test-bytecomp-defgroup-choice): This never failed because it wasn't
actually a test. Turn it into...
(bytecomp-test-defcustom-type-quoted): ...this, which is.
Michael Albinus [Tue, 30 May 2023 07:46:46 +0000 (09:46 +0200)]
* test/infra/gitlab-ci.yml (test-tree-sitter): Fix file list.
Protesilaos Stavrou [Tue, 30 May 2023 06:37:24 +0000 (09:37 +0300)]
Update modus-themes to their version 4.2.0
* doc/misc/modus-themes.org: Update the manual.
* etc/themes/modus-operandi-tritanopia-theme.el:
* etc/themes/modus-vivendi-tritanopia-theme.el: Add new themes
optimized for users with blue-yellow color deficiency (tritanopia).
* etc/themes/modus-operandi-deuteranopia-theme.el:
* etc/themes/modus-operandi-theme.el:
* etc/themes/modus-operandi-tinted-theme.el:
* etc/themes/modus-vivendi-deuteranopia-theme.el:
* etc/themes/modus-vivendi-theme.el:
* etc/themes/modus-vivendi-tinted-theme.el: Update theme files.
* etc/themes/modus-themes.el: Update main file to the latest version.
* etc/NEWS: Rephrase the announcement about the new Modus themes to
also mention the tritanopia-optimized items.
Detailed release notes here:
<https://protesilaos.com/codelog/2023-05-30-modus-themes-4-2-0/>.
F. Jason Park [Mon, 29 May 2023 04:16:39 +0000 (21:16 -0700)]
Preserve prompt in erc-cmd-CLEAR
* etc/ERC-NEWS: Mention behavioral changes to functionality provided
by the `truncate' and `log' modules and also the "/CLEAR" command.
* lisp/erc/erc-log.el (erc-truncate-buffer-on-save): Deprecate option
because three's a crowd, and ERC already has a dedicated module as
well as a slash command for this purpose. And although this commit
restores functionality, this option has been unusable since at least
the release of ERC 5.5, with no known complaints received thus far.
Also, the doc string of `erc-save-buffer-in-logs' makes no mention of
this feature WRT interactive invocations or otherwise.
(erc-log-mode, erc-log-enable, erc-log-disable): Subscribe to
new internal hook `erc--pre-clear-functions'.
(erc-log--save-in-progress-p): New variable to help restore
`erc-truncate-buffer-on-save' and promote code reuse.
(erc-logging-enabled): Guard with `erc-log--saved-in-progress-p'.
(erc-save-buffer-in-logs): Overload `buffer' parameter to allow
various hooks to supply a non-buffer as well. Warn when people use
`erc-truncate-buffer-on-save', which is now deprecated.
* lisp/erc/erc-stamp.el (erc-stamp-mode, erc-stamp-enable,
erc-stamp-disable): Subscribe to `erc--pre-clear-functions'.
(erc-stamp--update-saved-position): New function for updating
last-logged marker on `erc-stamp--insert-date-function'.
(erc-stamp--reset-on-clear): New function to forget last inserted
stamps when truncating.
* lisp/erc/erc-truncate.el (erc-truncate-mode, erc-truncate-enable,
erc-truncate-disable): Use `erc-insert-done-hook' instead of
`erc-insert-post-hook', as implicitly suggested by an ancient comment,
which ponders whether truncating the buffer at the insertion phase may
be harmful to other hook members.
(erc-truncate-buffer-to-size): Set truncation boundary at message
break instead of line break. Run `erc--pre-clear-functions'.
(erc-truncate-buffer): Save excursion. This should probably be
handled by `erc-truncate-buffer-to-size' instead, but that's
likelier to cause breakage in third-party code.
* lisp/erc/erc.el (erc--pre-clear-functions): New internal hook.
(erc-cmd-CLEAR): Run `erc--pre-clear-functions' before clearing, and
don't blow away prompt. The latter was a regression caused by
05f6fdb9e78 "Preserve ERC prompt and its bounding markers".
* test/lisp/erc/erc-scenarios-log.el: New file. (Bug#60936)
F. Jason Park [Fri, 19 May 2023 06:47:27 +0000 (23:47 -0700)]
Recompute erc-prompt when inserting messages
* lisp/erc/erc.el (erc--refresh-prompt): New function for redrawing
the prompt in a couple select places.
(erc-display-line-1, erc-display-msg): Replace the prompt after
inserting messages.
* test/lisp/erc/erc-tests.el (erc--refresh-prompt): New
test. (Bug#60936)
F. Jason Park [Tue, 23 May 2023 06:42:11 +0000 (23:42 -0700)]
Simplify erc-tab interface
* etc/ERC-NEWS: Improve section mentioning `erc-tab'.
* lisp/erc/erc-button.el (erc-button-alist): Restore a commented out
version of the "<URL ...>" entry, which was dropped in
5adda2f4683
"Revise FORM-as-function interface in erc-button-alist" for being
redundant. This may help unlikely objectors better adapt to the
churn.
(erc-button-next, erc-button-previous): Don't bother accommodating raw
prefix arguments; expect numeric arguments only.
* lisp/erc/erc.el (erc-tab): Change interactive spec to lowercase
"p". (Bug#60933)
F. Jason Park [Tue, 23 May 2023 04:43:29 +0000 (21:43 -0700)]
Add command to view ERC-NEWS
* etc/ERC-NEWS: Mention `erc-news' command.
* lisp/erc/erc.el (erc--news-url, erc--news-temp-file, erc-news): Add
new command and supporting variable.
F. Jason Park [Tue, 23 May 2023 04:43:29 +0000 (21:43 -0700)]
Document recommended way to use ERC over Tor
* doc/misc/erc.texi: Add new SOCKS section to the chapter on
Integrations. Also bump version in front matter.
* lisp/erc/erc.el (erc-open-socks-tls-stream): New convenience
function to connect over Tor via SOCKS proxy.
Andrea Corallo [Mon, 29 May 2023 16:06:33 +0000 (18:06 +0200)]
Revert "* Nativecomp disable propagation of pre slot access type check..."
This reverts commit
c8e527cbeeea6be9bb713af33a3f40408b261234 as
56a8d57d032 fixes the root cause.
Andrea Corallo [Sun, 28 May 2023 12:49:19 +0000 (14:49 +0200)]
comp: Recompute type slots after byte compilation for user types
* lisp/emacs-lisp/comp-cstr.el (comp--compute-typeof-types)
(comp--compute--pred-type-h): New functions.
(comp-cstr-ctxt): Make use of.
(comp-cstr-ctxt-update-type-slots): New function.
* lisp/emacs-lisp/comp.el (comp-spill-lap): Use
`comp-cstr-ctxt-update-type-slots'.
Michael Albinus [Mon, 29 May 2023 15:26:46 +0000 (17:26 +0200)]
Add tree-sitter tests to emba
* admin/notes/emba: Add docker image emacs-tree-sitter. Improve
docker call.
* test/infra/Dockerfile.emba (emacs-tree-sitter): New image.
* test/infra/gitlab-ci.yml (.tree-sitter-template): New template.
(build-image-tree-sitter, test-tree-sitter): New jobs.
Michael Albinus [Mon, 29 May 2023 09:37:33 +0000 (11:37 +0200)]
Fix regression when saving tramp-default-proxies-alist
* lisp/net/tramp.el (tramp-add-hops): Suppress `signal-hook-function'.
Save `tramp-default-proxies-alist' only when changed.
Andrea Corallo [Sun, 28 May 2023 12:51:58 +0000 (14:51 +0200)]
* Nativecomp disable propagation of pre slot access type check (bug#63710)
* lisp/emacs-lisp/comp.el (comp-add-cond-cstrs): Temporary disable
propagation of pre slot access type check.
Laurence Warne [Sun, 21 May 2023 17:59:43 +0000 (18:59 +0100)]
Fix unstable proced test
Fix unstable proced test by omitting the revert parameter in
'proced-update'. This was caused by the process being refined on
exiting between the initial 'proced' call and the successive
'proced-update' call. This resulted in proced skipping the refinement
in 'proced-update', causing all processes to be shown again and the
test to fail.
* test/lisp/proced-tests.el (proced-refine-with-update-test): Do not
use revert parameter when calling 'proced-update'.
Michael Albinus [Sat, 27 May 2023 08:14:50 +0000 (10:14 +0200)]
Minor Tramp fixes
* lisp/net/tramp-sh.el (tramp-sh-handle-process-file): Set `env'
explicitly.
(tramp-barf-if-no-shell-prompt): Still add optional trailing
`ansi-color-control-seq-regexp'.
* lisp/net/tramp.el (tramp-make-tramp-file-name): Keep hop while
in file name completion.
* test/lisp/net/tramp-tests.el
(tramp-test26-interactive-file-name-completion): Adapt test.
Stefan Monnier [Fri, 26 May 2023 16:23:59 +0000 (12:23 -0400)]
package-tests.el: Add test for last change
* test/lisp/emacs-lisp/package-tests.el (package-test-desc-from-buffer):
Make sure the absence of the terminating comment does not matter.
Stefan Monnier [Fri, 26 May 2023 15:18:49 +0000 (11:18 -0400)]
* lisp/emacs-lisp/package.el (package-buffer-info): Fix last change
The code that follows expects point to be at/near the end of the buffer.
Alan Mackenzie [Fri, 26 May 2023 14:32:07 +0000 (14:32 +0000)]
Fontify Java constructor names and arglists
This fixes bug#63328.
* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): New
variable got-stmt-block. After scanning an arglist, set
got-arglist to t. When we have as yet no identifier,
got-arglist, and scan an open brace, test the "type" for being
the name of the enclosing class.
(c-directly-in-class-called-p): Test the two names for
equality, not merely one being the head of the other.
Mattias Engdegård [Fri, 26 May 2023 12:33:12 +0000 (14:33 +0200)]
; * lisp/progmodes/project.el: avoid warning in loaddefs
Mattias Engdegård [Fri, 26 May 2023 10:28:15 +0000 (12:28 +0200)]
Add more function declarations
* lisp/subr.el (buffer-narrowed-p, sha1, match-substitute-replacement)
(version-to-list, version<, version<=, version=)
(function-get, subregexp-context-p, split-string)
(combine-and-quote-strings, split-string-and-unquote)
(replace-regexp-in-string, syntax-after)
(string-trim-left, string-trim):
* lisp/emacs-lisp/subr-x.el (hash-table-empty-p, hash-table-keys)
(hash-table-values, string-glyph-split)
(string-clean-whitespace, string-fill, string-limit)
(string-pixel-width):
* lisp/env.el (substitute-env-vars, substitute-env-in-file-name)
(setenv-internal):
* lisp/emacs-lisp/rx.el (rx-to-string):
* lisp/emacs-lisp/regexp-opt.el (regexp-opt-depth)
(regexp-opt-charset):
Add appropriate declarations: pure, side-effect-free, and/or
important-return-value.
Spencer Baugh [Wed, 19 Apr 2023 21:44:54 +0000 (17:44 -0400)]
Support setting PAGER=cat in comint.el (bug#62958)
Paging can be undesirable in comint-derived commands such as
async-shell-command and M-x shell. It is a frequent footgun for new
Emacs users when they try to run commands which start a pager in such
modes.
Simply adding (setenv "PAGER" "cat") globally is not correct, since
that will break modes like term, which support paging quite well.
It's only and exactly the comint-derived modes which don't need
paging.
* lisp/comint.el (comint-pager): Add. (bug#62958)
(comint-exec-1): Use comint-pager to set PAGER.
Eli Zaretskii [Fri, 26 May 2023 11:04:03 +0000 (07:04 -0400)]
Merge from origin/emacs-29
aa5158630e7 Use 'font-lock-extend-region-functions' in python-mode
b7b82ecb2b4 Fix python-info-docstring-p
f42de74ebea ; * src/lread.c (read0, skip_lazy_string): Fix commentary...
b6b384023a9 Fix cancellation of Wdired
916c2a19bde Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
f535c0e49d5 Handle #@00 in new reader in a compatible way (bug#63722)
40a758f5ceb ; Minor fixes in documentation of recently-changed VC com...
c0d7447e9dc ; * etc/NEWS: Describe the Cairo XCB option. (Bug#63589)
42052686752 Don't mark selection request events
9f5249d5c8d Disable cairo-xcb support by default
e5f42706ce2 * lisp/progmodes/project.el: Move :safe from defcustom to...
3afe4a42e90 * lisp/vc/vc-annotate.el (vc-annotate-mode-menu): Quote v...
b62a2b08b80 Add vc-create/switch/print-branch to menu and update docu...
d292d282292 Fix rare crashes in 'try_window_reusing_current_matrix'
709d9020021 Make last Tramp change less invasive
a72a1f24fcb ; Fix last change.
5c6517a115d ; * lisp/menu-bar.el (popup-menu): Doc fix.
212884f2bfe ; Fix last change.
1b9812af80b ; * etc/PROBLEMS: Document problem with GnuPG 2.4.1. (Bu...
765edc204d4 ; Support SQLite3 extensions on macOS
5aadb87d6f6 Fix 'use-dialog-box-p' and friends
# Conflicts:
# etc/NEWS
Eli Zaretskii [Fri, 26 May 2023 11:03:56 +0000 (07:03 -0400)]
; Merge from origin/emacs-29
The following commit was skipped:
0abb79ca09a Avoid duplicates when adding package dirs to load-path
Eli Zaretskii [Fri, 26 May 2023 11:03:07 +0000 (07:03 -0400)]
Merge from origin/emacs-29
6f6071c5261 Avoid duplicate load-path entry when generating package a...
117b29c6f66 ; Improve documentation of Isearch command properties
a347b26cba2 Disable loading SQLite3 extensions when SQLite3 version i...
fe22bf503fb ; * lisp/progmodes/project.el (project-switch-use-entire-...
64dbbde3b77 Fix visiting HTML files encoded in iso-2022 variants
5c95239aca2 ; Fix markup of some treesit vars in Elisp manual.
6ad041939be Support 'isearch-allow-scroll' in 'pixel-scroll-precision...
ecccdc07a09 shr: allow moving between adjacent anchors
504ef25ef36 ; * etc/NEWS: Fix typos.
d6fb868cdd3 Fix multihop file name expansion in Tramp
dd3e4e14fdc Remove obsolete information from Gnus manual
2a5c946f879 Preserve mark in comint-history-isearch
6b60c8142ea Fix systemd unit completion for old versions of systemd
8c56557cd9d Fix Skeletons menu-bar menu in Python modes
58eb38cfb47 ; * etc/NEWS: missing definite article
cf403628692 ; * etc/NEWS: PGTK cannot switch to -new automatically (b...
ead3a2abbfc Fix loading SQLite extensions
a6bddd17658 ; * etc/NEWS: Fix typos.
f49fe936abd * etc/NEWS: Note dotimes loop variable scoping change (bu...
cec9333dc52 Fix c-ts-mode--top-level-declarator
f571e8f1bb6 Improve c-ts-mode font-lock for function names (bug#63390)
42a28ffdc27 * lisp/tab-bar.el: Don't use 'minibuffer-selected-window'...
8e61d23f71e Split windows horizontally in places that use split to cr...
459d08c7fe7 Fix tree-sitter test (bug#63481)
3bc5efb87e5 ; * lisp/emacs-lisp/benchmark.el (benchmark-progn): Fix d...
# Conflicts:
# etc/NEWS
Eli Zaretskii [Fri, 26 May 2023 10:20:56 +0000 (13:20 +0300)]
Fix emacsclient when there are irrecoverable file-visiting errors
* lisp/server.el (server-process-filter, server-return-error):
Display the error message to be sent to the client as a regular
message, to give the user the opportunity to see it. Delete the
terminal immediately after sending the error message to the
client, to make sure the terminal's modes are restored.
(Bug#63629)
kobarity [Wed, 24 May 2023 13:06:51 +0000 (22:06 +0900)]
Use 'font-lock-extend-region-functions' in python-mode
* lisp/progmodes/python.el (python-font-lock-extend-region): Change
arguments and return value for 'font-lock-extend-region-functions'.
(python-mode): Change from
'font-lock-extend-after-change-region-function' to
'font-lock-extend-region-functions'. (Bug#63622)
kobarity [Wed, 24 May 2023 13:01:12 +0000 (22:01 +0900)]
Fix python-info-docstring-p
* lisp/progmodes/python.el (python-info-docstring-p): Stop using
python-rx string-delimiter.
* test/lisp/progmodes/python-tests.el
(python-font-lock-escape-sequence-bytes-newline)
(python-font-lock-escape-sequence-hex-octal)
(python-font-lock-escape-sequence-unicode)
(python-font-lock-raw-escape-sequence): Mark as expected failures
until another bug in 'python-info-docstring-p' is corrected.
(python-info-docstring-p-7): New test. (Bug#63622)
Eli Zaretskii [Fri, 26 May 2023 09:30:40 +0000 (12:30 +0300)]
; * src/lread.c (read0, skip_lazy_string): Fix commentary wording.
Eli Zaretskii [Fri, 26 May 2023 09:23:19 +0000 (12:23 +0300)]
Fix cancellation of Wdired
* lisp/wdired.el (wdired-abort-changes): Call 'dired-revert'.
Patch by Stephen Berman <stephen.berman@gmx.net>. (Bug#63676)
Eli Zaretskii [Fri, 26 May 2023 09:20:26 +0000 (12:20 +0300)]
Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/emacs into emacs-29
Eshel Yaron [Mon, 15 May 2023 18:04:21 +0000 (21:04 +0300)]
Add customization options for dictionary-search
Allow users to customize 'dictionary-search' via several new
customization options.
* lisp/net/dictionary.el (dictionary-define-word)
(dictionary-match-word, dictionary-completing-read-word)
(dictionary-dictionaries, dictionary-completing-read-dictionary)
(dictionary-display-definition-in-help-buffer): New functions.
(dictionary-read-word-prompt)
(dictionary-display-definition-function)
(dictionary-read-word-function)
(dictionary-read-dictionary-function)
(dictionary-search-interface): New user options.
(dictionary-search): Use them.
(dictionary-read-dictionary-default)
(dictionary-read-word-default): New functions, extracted from
'dictionary-search'.
* etc/NEWS: Announce.
Mattias Engdegård [Thu, 25 May 2023 20:28:25 +0000 (22:28 +0200)]
Handle #@00 in new reader in a compatible way (bug#63722)
This was a regression from Emacs 28.
* src/lread.c (skip_lazy_string, read0): Make #@00 read as nil, which
is a quirk from the old reader that we preserve for compatibility.
* test/src/lread-tests.el (lread-skip-to-eof): Verify it.
Reported by Richard Newton.
Eli Zaretskii [Fri, 26 May 2023 08:09:14 +0000 (11:09 +0300)]
; Minor fixes in documentation of recently-changed VC commands
* lisp/vc/vc.el (vc-print-branch-log, vc-create-branch)
(vc-create-tag, vc-retrieve-tag, vc-switch-branch): Doc fixes.
* lisp/vc/vc-hooks.el (vc-menu-map): Minor wording change in :help
text.
* doc/emacs/maintaining.texi (VC Change Log, Creating Branches):
Minor wording and markup changes.
Eli Zaretskii [Fri, 26 May 2023 07:07:34 +0000 (10:07 +0300)]
; * etc/NEWS: Describe the Cairo XCB option. (Bug#63589)
Po Lu [Fri, 26 May 2023 00:43:18 +0000 (08:43 +0800)]
Don't mark selection request events
* src/pgtkterm.c (mark_pgtkterm): Prevent crash by not marking
selection request events, which don't have Lisp_Object members.
Po Lu [Fri, 26 May 2023 00:41:31 +0000 (08:41 +0800)]
Disable cairo-xcb support by default
* INSTALL (--with-cairo-xcb): Document new option.
* configure.ac (USE_CAIRO_XCB): Implement new option.
Juri Linkov [Thu, 25 May 2023 18:40:38 +0000 (21:40 +0300)]
* lisp/progmodes/project.el: Move :safe from defcustom to autoload (bug#63469)
(project-vc-ignores, project-vc-merge-submodules)
(project-vc-include-untracked, project-vc-name)
(project-vc-extra-root-markers, project-kill-buffers-display-buffer-list):
Autoload the line that puts 'safe-local-variable' property on defcustom symbol
instead of using the :safe keyword.
Juri Linkov [Thu, 25 May 2023 18:33:11 +0000 (21:33 +0300)]
* lisp/vc/vc-annotate.el (vc-annotate-mode-menu): Quote vc-annotate-backend.
When unquoted it might get the nil value when vc-annotate.el is loaded
in non-vc-controlled buffer (bug#63689).
Juri Linkov [Thu, 25 May 2023 18:24:23 +0000 (21:24 +0300)]
Add vc-create/switch/print-branch to menu and update documentation (bug#63690)
* doc/emacs/maintaining.texi (VC Change Log):
Add 'C-x v b l' (vc-print-branch-log).
(Creating Branches): Add @kindex and @findex for vc-create-branch.
(Switching Branches): Add @kindex and @findex for vc-switch-branch.
* lisp/vc/vc-hooks.el (vc-menu-map): Add menu items for new
commands vc-create-branch and vc-switch-branch, and also
vc-print-branch-log.
* lisp/vc/vc.el (vc-print-branch-log): Improve docstring.
Eli Zaretskii [Thu, 25 May 2023 17:50:46 +0000 (20:50 +0300)]
Fix rare crashes in 'try_window_reusing_current_matrix'
* src/xdisp.c (try_window_reusing_current_matrix): Make sure we
never use a mode-line glyph row to start displaying scrolled-in
rows. (Bug#63711)
Mattias Engdegård [Thu, 25 May 2023 08:22:54 +0000 (10:22 +0200)]
; eieio-test-persist.el: namespace hygiene
* test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el
(hash-equal): Rename to `eieio-test--hash-equal`.
Michael Albinus [Thu, 25 May 2023 13:40:45 +0000 (15:40 +0200)]
Make last Tramp change less invasive
* lisp/net/tramp.el (tramp-dissect-file-name): Revert last change.
(tramp-handle-file-name-as-directory)
(tramp-handle-file-name-directory): Let-bind `tramp-default-proxies-alist'.
João Távora [Thu, 25 May 2023 13:29:45 +0000 (14:29 +0100)]
Eglot: fix execution of CodeAction commands
Reported in
https://github.com/joaotavora/eglot/discussions/1225.
* lisp/progmodes/eglot.el (eglot-execute): Fix typo.
Brian Leung [Sat, 20 May 2023 08:43:52 +0000 (01:43 -0700)]
Eglot: Add nickel-mode configuration
* lisp/progmodes/eglot.el (eglot-server-programs): Add nls for nickel-mode.
Eli Zaretskii [Thu, 25 May 2023 05:58:42 +0000 (08:58 +0300)]
; Fix last change.
Eli Zaretskii [Thu, 25 May 2023 05:57:28 +0000 (08:57 +0300)]
; * lisp/menu-bar.el (popup-menu): Doc fix.
Mattias Engdegård [Wed, 24 May 2023 20:36:19 +0000 (22:36 +0200)]
Fix apparently wrong `delete` and `delq` value discards (bug#61730)
* lisp/startup.el (normal-top-level):
Update process-environment in case the DISPLAY variable comes first.
Also stop iterating over initial-environment once the first DISPLAY
is found.
* lisp/allout.el (allout-get-configvar-values):
* lisp/org/org.el (org-display-inline-remove-overlay):
* lisp/progmodes/gdb-mi.el (gdb-get-location):
* lisp/progmodes/idlwave.el
(idlwave-convert-xml-clean-routine-aliases)
(idlwave-convert-xml-clean-sysvar-aliases):
* lisp/textmodes/reftex.el (reftex-ref-style-toggle):
Update the base variable after performing a destructive deletion,
where it was obvious that this was intended.
Michael Albinus [Wed, 24 May 2023 18:52:25 +0000 (20:52 +0200)]
Use `small-temporary-file-directory' in Tramp
* lisp/net/tramp-fuse.el (tramp-fuse-mount-point):
* lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options):
Use `small-temporary-file-directory'.
Andrea Corallo [Wed, 24 May 2023 15:05:26 +0000 (17:05 +0200)]
Fix nativecomp ICE compiling structure related code (bug#63674)
* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Define the predicate to
be effective at compile time as native comp relies on `cl-typep' that
relies o predicates to work.
* test/src/comp-resources/comp-test-funcs.el (cl-lib): Require.
(comp-test-struct): Define struct.
(comp-test-63674-1-f): Add new test.
Stefan Monnier [Wed, 24 May 2023 13:47:27 +0000 (09:47 -0400)]
* lisp/loadup.el: Don't accidentally reduce `max-lisp-eval-depth`
Mattias Engdegård [Wed, 24 May 2023 09:30:53 +0000 (11:30 +0200)]
Use return values of assq-delete-all and assoc-delete-all
* lisp/allout-widgets.el (allout-widgets-mode):
* lisp/progmodes/eglot.el (eglot-handle-notification):
Update variables with the new value, which was probably the intention
here.
Eli Zaretskii [Tue, 23 May 2023 15:05:07 +0000 (18:05 +0300)]
; Fix last change.
Eli Zaretskii [Tue, 23 May 2023 15:04:24 +0000 (18:04 +0300)]
; * etc/PROBLEMS: Document problem with GnuPG 2.4.1. (Bug#63256)
Eli Zaretskii [Tue, 23 May 2023 14:53:07 +0000 (17:53 +0300)]
; Support SQLite3 extensions on macOS
* src/sqlite.c (Fsqlite_load_extension): Support *.dylib
extensions. (Bug#63653)
Eli Zaretskii [Tue, 23 May 2023 14:44:23 +0000 (17:44 +0300)]
Fix 'use-dialog-box-p' and friends
* lisp/subr.el (use-dialog-box-p): Use dialog boxes also when
invoked from some window-system gesture. (Bug#63655)
(y-or-n-p): Fix the description in the doc string of conditions
under which a dialog box will be used.
* src/fns.c (Fyes_or_no_p): Use the same condition for dialog
boxes as in 'use-dialog-box-p'. Fix the description in the doc
string of conditions under which a dialog box will be used.
* doc/lispref/minibuf.texi (Multiple Queries, Yes-or-No Queries):
Fix the description of conditions under which a dialog box will be
used.
Andrea Corallo [Tue, 23 May 2023 13:13:08 +0000 (15:13 +0200)]
* test/src/comp-tests.el: Add some ret type tests for non builtin types
Andrea Corallo [Wed, 17 May 2023 16:00:24 +0000 (18:00 +0200)]
comp: Propagate pre slot access type check
* lisp/loadup.el (max-lisp-eval-depth): Increase
`max-lisp-eval-depth' to 3400.
* lisp/emacs-lisp/comp.el (comp-add-cond-cstrs): Pattern match pre
slot access type check and add constraint.
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-cl-tag-p)
(comp-cstr-cl-tag): New functions.
* lisp/emacs-lisp/comp.el (make-comp-mvar): Add neg parameter.
Andrea Corallo [Wed, 24 Aug 2022 21:31:28 +0000 (23:31 +0200)]
comp: Make use of predicates in propagation for non builtin types
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-ctxt): Add `pred-type-h'
slot.
* lisp/emacs-lisp/comp.el (comp-known-predicate-p)
(comp-pred-to-cstr): Update.
Andrea Corallo [Wed, 24 Aug 2022 16:41:19 +0000 (18:41 +0200)]
* lisp/emacs-lisp/comp.el (comp-fwprop-call): Extend to understand `record'
Andrea Corallo [Wed, 24 Aug 2022 16:08:37 +0000 (18:08 +0200)]
comp: Account non builtin types in type hierarchy
* lisp/emacs-lisp/cl-macs.el (cl--struct-all-parents): Add comment.
* lisp/emacs-lisp/cl-preloaded.el (cl--struct-get-class): Likewise.
* lisp/emacs-lisp/comp-cstr.el (comp--cl-class-hierarchy)
(comp--all-classes): New functions.
(comp-cstr-ctxt): Add `typeof-types' field.
* lisp/emacs-lisp/comp-cstr.el (comp-supertypes)
(comp-union-typesets): Update to use non builtin types.
Michael Albinus [Tue, 23 May 2023 13:32:20 +0000 (15:32 +0200)]
Improve check for ANSI control escape sequences in Tramp
* lisp/net/tramp-sh.el (tramp-barf-if-no-shell-prompt):
Remove `ansi-color-control-seq-regexp'.
* lisp/net/tramp.el (tramp-terminal-type): Fix docstring.
(tramp-process-one-action): Delete ANSI control escape sequences
in buffer. (Bug#63539)
Robert Pluim [Tue, 23 May 2023 13:01:11 +0000 (15:01 +0200)]
Stop adding the package directory to the load path
The generated autoloads files for packages have been updating the
load-path for the last decade.
* lisp/emacs-lisp/package.el (package-activate-1): Don't update
load-path with package directory.
Stefan Monnier [Mon, 22 May 2023 16:49:26 +0000 (18:49 +0200)]
Avoid duplicates when adding package dirs to load-path
Do not merge to master, we're going to delete this code there.
* lisp/emacs-lisp/package.el (package-activate-1): Check if the path
we're about to add is already in 'load-path', since package autoload
files have been updating 'load-path' for a decade.
Robert Pluim [Mon, 22 May 2023 13:44:21 +0000 (15:44 +0200)]
Avoid duplicate load-path entry when generating package autoloads
'file-name-directory' produces a path ending in '/', so that needs to be
run through 'directory-file-name' to avoid duplicate entries in
'load-path'. (Bug#63625)
* lisp/emacs-lisp/package.el (package-generate-autoloads): Call
'directory-file-name' on the directory of 'load-file-name'.
Eli Zaretskii [Tue, 23 May 2023 11:58:39 +0000 (14:58 +0300)]
; Improve documentation of Isearch command properties
* doc/emacs/display.texi (Scrolling):
* doc/emacs/search.texi (Not Exiting Isearch): Improve
documentation and indexing of 'scroll-command', 'isearch-scroll',
and 'isearch-move' properties.
Eli Zaretskii [Tue, 23 May 2023 11:30:31 +0000 (14:30 +0300)]
Disable loading SQLite3 extensions when SQLite3 version is too old
* src/sqlite.c (HAVE_LOAD_EXTENSION): Define to 1 only if
enabling/disabling extension loading is supported as well.
(load_dll_functions, Fsqlite_load_extension): Condition on
HAVE_LOAD_EXTENSION, not on HAVE_SQLITE3_LOAD_EXTENSION.
(Bug#63653)
Spencer Baugh [Fri, 12 May 2023 19:28:06 +0000 (15:28 -0400)]
Use faster option for running vc-hg status (Bug#63470)
In modern Mercurial, removing the "re:" "-I" "." options provides a
10x-20x speedup because it allows the Rust implementation of "hg
status" to be used.
* lisp/vc/vc-hg.el (vc-hg--program-version): Add.
(vc-hg-dir-status-files): Use --config commands.status.relative=1 to
make paths relative when available.
Eli Zaretskii [Mon, 22 May 2023 18:31:56 +0000 (21:31 +0300)]
; * lisp/progmodes/project.el (project-switch-use-entire-map): Doc fix.
Eli Zaretskii [Mon, 22 May 2023 18:23:58 +0000 (21:23 +0300)]
Fix visiting HTML files encoded in iso-2022 variants
* lisp/international/mule.el (sgml-xml-auto-coding-function)
(sgml-html-meta-auto-coding-function): Handle coding-systems whose
coding-system-type is iso-2022. (Bug#63644)
Alan Mackenzie [Mon, 22 May 2023 16:09:07 +0000 (16:09 +0000)]
Fix syntax bugs involving escaped newlines in comments
This fixes bug#63535
* src/syntax.c (forw_comment): take the initial syntax from the
argument PREV_SYNTAX rather than checking the buffer position
for a backslash. Update the state at each character scanned.
(scan_sexps_forward): When the end position is escaped after a
call to forw_comment, return this status to the caller.
Mattias Engdegård [Mon, 22 May 2023 14:27:00 +0000 (16:27 +0200)]
Attempt to speed up filenotify-tests
* test/lisp/filenotify-tests.el (file-notify-test04-autorevert):
Run with a lower `auto-revert-interval` (1 s) and adjust the
a timeout value. This should lower the time for this particular
test from 25 to below 10 s.
Basil L. Contovounesios [Mon, 22 May 2023 14:23:39 +0000 (15:23 +0100)]
; Fix markup of some treesit vars in Elisp manual.
* doc/lispref/modes.texi (Parser-based Font Lock):
(Parser-based Indentation):
* doc/lispref/parsing.texi (Multiple Languages): Use @code in place
of @var when the argument is not a metavariable.
Michael Albinus [Mon, 22 May 2023 14:08:23 +0000 (16:08 +0200)]
Support existing sshfs and rclone mount points in Tramp
* lisp/net/tramp-fuse.el (tramp-fuse-mount-point, tramp-fuse-mounted-p):
Support existing mount points.
Eli Zaretskii [Mon, 22 May 2023 11:20:38 +0000 (14:20 +0300)]
Support 'isearch-allow-scroll' in 'pixel-scroll-precision-mode'
* lisp/pixel-scroll.el (pixel-scroll-precision)
(pixel-scroll-down, pixel-scroll-up): Put the 'scroll-command'
property on these commands. (Bug#63640)
Andreas Schwab [Mon, 22 May 2023 11:08:33 +0000 (13:08 +0200)]
shr: allow moving between adjacent anchors
* lisp/net/shr.el (shr-urlify): Put shr-tab-stop only over first
position.
Michael Albinus [Mon, 22 May 2023 10:56:45 +0000 (12:56 +0200)]
Mark failing filenotify test as :unstable
* test/lisp/filenotify-tests.el (file-notify-test04-autorevert-remote):
Tag as :unstable.
Michael Albinus [Mon, 22 May 2023 10:20:44 +0000 (12:20 +0200)]
; * etc/NEWS: Fix typos.
Michael Albinus [Mon, 22 May 2023 10:20:27 +0000 (12:20 +0200)]
Fix multihop file name expansion in Tramp
* lisp/net/tramp.el (tramp-dissect-file-name): Set hop to nil if
NODEFAULT. (Bug#63578)
Po Lu [Mon, 22 May 2023 03:52:33 +0000 (11:52 +0800)]
Plug various leaks and fix input method initialization
* src/image.c (free_bitmap_record): Free bm->name correctly even
if the display connection has been closed.
* src/xfns.c (x_window): Use dpyinfo-specific `use_xim' flag.
* src/xterm.c (use_xim): Remove global variable.
(xim_destroy_callback): Free `xim_styles' if present, and set it
to NULL to be on the safe side.
(xim_open_dpy): Consult dpyinfo->use_xim instead. Don't leak
`xim_styles' if an IM was previously opened.
(xim_initialize): Use dpyinfo-specific `use_xim' flag.
(xim_close_dpy): Check if `dpyinfo->xim_callback_data' is set
before unregistering the instantiation callback.
(x_term_init): Determine whether or not to use XIM for each
display opened, instead of using the resources of the last
display opened to toggle a global flag.
(x_delete_terminal): Always call `image_destroy_all_bitmaps' and
`xim_close_dpy'. Free storage used to hold bitmap records.
* src/xterm.h (struct x_display_info): New field `use_xim'.
F. Jason Park [Fri, 19 May 2023 06:47:27 +0000 (23:47 -0700)]
Fix custom type of erc-autojoin-channels-alist
* lisp/erc/erc-join.el (erc-autojoin-channels-alist): In ERC 5.4, the
type of this option changed to accept symbols signifying IRC network
names. However, the option's definition was not updated to reflect
that. See commit
9bb8d90cddf "Allow irc network symbols in
erc-autojoin-channels-alist".
F. Jason Park [Fri, 19 May 2023 06:47:27 +0000 (23:47 -0700)]
; Silence byte compiler in erc-netsplit-JOIN
* etc/ERC-NEWS: Partially revert edit from
c9f1ad2a870 "Revive option
erc-query-on-unjoined-chan-privmsg".
* lisp/erc/erc-netsplit.el (erc-netsplit-JOIN): Silence byte compiler
warning re ignored return value from `delete' when removing nicks.
Could probably suppress rather than reconstitute since the CAR of an
`erc-netsplit-list' entry originates from the trailing "reason" param
of the instigating "QUIT" command and should look something like
"irc.example.org chat.example.org", which cannot be confused for a
nickname.
* test/lisp/erc/resources/erc-scenarios-common.el: Fix wording in
Commentary.
Eli Zaretskii [Sun, 21 May 2023 10:57:14 +0000 (13:57 +0300)]
New Rmail commands for reading mailing-lists
* lisp/mail/rmail.el (rmail--mailing-list-message): New internal
function.
(rmail-mailing-list-help, rmail-mailing-list-post)
(rmail-mailing-list-unsubscribe, rmail-mailing-list-archive): New
commands.
(rmail-mode-map): Add menu items for the new commands.
* etc/NEWS: Announce the new Rmail commands.
Jens Schmidt [Sat, 20 May 2023 21:46:42 +0000 (23:46 +0200)]
Remove obsolete information from Gnus manual
The Gnus manual was still referencing long-removed external
marks in section "Archiving Mails". Without external marks,
that section is almost pointless, so remove it completely.
* doc/misc/gnus.texi (Archiving Mail): Remove section.
(Top, Browsing the Web): Remove references to "Archiving
Mail". (Bug#63497)
Jens Schmidt [Sat, 20 May 2023 21:03:29 +0000 (23:03 +0200)]
Preserve mark in comint-history-isearch
This preserves mark in `comint-history-isearch-backward' and
friends, which tend to set the mark on completion of the isearch
to unexpected positions.
* lisp/comint.el (comint-history-isearch-end): Set `isearch-opoint'
to point. (Bug#63616)
Mattias Engdegård [Sat, 20 May 2023 18:34:55 +0000 (20:34 +0200)]
Declare more mutating functions
* lisp/emacs-lisp/bytecomp.el (mutating-fns):
Add assoc-delete-all, assq-delete-all and rassq-delete-all.
* lisp/emacs-lisp/shortdoc.el (alist, list):
Don't mutate constants in examples illustrating use of
assoc-delete-all, assq-delete-all and rassq-delete-all.
Mattias Engdegård [Sat, 20 May 2023 16:24:53 +0000 (18:24 +0200)]
Declare more functions as having important-return-value
* lisp/subr.el (assoc-delete-all, assq-delete-all, rassq-delete-all)
(alist-get): Declare as important-return-value.
* lisp/emacs-lisp/bytecomp.el (important-return-value-fns):
Add `assoc-string`.
Mattias Engdegård [Sat, 20 May 2023 10:06:46 +0000 (12:06 +0200)]
Minor optimisation of string-trim-left and string-trim-right
* lisp/subr.el (string-trim-left, string-trim-right):
Use a constant string when no REGEXP argument is given.
Liu Hui [Wed, 17 May 2023 08:39:18 +0000 (16:39 +0800)]
Fix systemd unit completion for old versions of systemd
* lisp/pcmpl-linux.el (pcmpl-linux--systemd-units): Use '--no-legend'
for compatibility with older versions of systemctl. (Bug#63411)
Eli Zaretskii [Sat, 20 May 2023 14:56:40 +0000 (17:56 +0300)]
Fix Skeletons menu-bar menu in Python modes
* lisp/progmodes/python.el (python-mode, python-ts-mode): Call
'python-skeleton-add-menu-items' here, not in 'python-base-mode',
since the "Python" menu is not yet set up in the latter.
(Bug#63598)
Eli Zaretskii [Sat, 20 May 2023 14:26:52 +0000 (17:26 +0300)]
Fix async invocations in Dired with 'fish' shell
* lisp/dired-aux.el (dired-shell-stuff-it): Separate '&' and ';'
by blanks, for the sake of shells such as 'fish'. Suggested by
Lycomedes 1814 <lycomedes1814@yandex.com>.
Mattias Engdegård [Sat, 20 May 2023 13:04:06 +0000 (15:04 +0200)]
; * etc/NEWS: missing definite article
Eli Zaretskii [Sat, 20 May 2023 12:53:21 +0000 (15:53 +0300)]
; * etc/NEWS: PGTK cannot switch to -new automatically (bug#6355).
Eli Zaretskii [Sat, 20 May 2023 12:43:44 +0000 (15:43 +0300)]
Fix loading SQLite extensions
* src/sqlite.c (sqlite3_db_config) [WINDOWSNT]: Load from the DLL.
(Fsqlite_load_extension): Use 'sqlite3_db_config' to enable and
disable loading of extensions. Add a few free extensions to the
allow-list. Fix testing for the ".dll" extension. (Bug#63590)
* test/src/sqlite-tests.el (sqlite-load-extension): Fix the test
to require successful load if the extension does exist.
Michael Albinus [Sat, 20 May 2023 12:00:56 +0000 (14:00 +0200)]
; * etc/NEWS: Fix typos.
Michael Albinus [Sat, 20 May 2023 10:13:09 +0000 (12:13 +0200)]
Improve handling of ANSI control sequences in Tramp
* lisp/net/tramp-compat.el (ansi-color): Require.
* lisp/net/tramp-sh.el (tramp-display-escape-sequence-regexp)
(tramp-device-escape-sequence-regexp): Delete.
(tramp-sh-handle-insert-directory, tramp-barf-if-no-shell-prompt)
(tramp-wait-for-output): Use `ansi-color-control-seq-regexp'.
* lisp/net/tramp.el (tramp-shell-prompt-pattern): Remove escape
characters.
(tramp-process-one-action, tramp-convert-file-attributes):
Use `ansi-color-control-seq-regexp'. (Bug#63539)
* test/lisp/net/tramp-tests.el (tramp-display-escape-sequence-regexp):
Dont't declare.
(tramp-test28-process-file, tramp-test32-shell-command):
Use `ansi-color-control-seq-regexp'.
(tramp-test45-asynchronous-requests): Adapt test.
Mattias Engdegård [Thu, 18 May 2023 15:33:15 +0000 (17:33 +0200)]
Use `delq` return value (bug#61730)
* lisp/calc/calc-graph.el (calc-graph-compute-2d):
* lisp/calendar/appt.el (appt-activate):
* lisp/progmodes/cc-styles.el (c-make-styles-buffer-local):
Make use of what `delq` returns, to stave off possible mistakes or at
least make clear that there isn't any.
Mattias Engdegård [Sat, 20 May 2023 08:50:25 +0000 (10:50 +0200)]
* etc/NEWS: Note dotimes loop variable scoping change (bug#63586)
Yuan Fu [Sat, 20 May 2023 07:45:39 +0000 (00:45 -0700)]
Fix c-ts-mode--top-level-declarator
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--top-level-declarator): Don't use treesit-node-match-p.
Yuan Fu [Fri, 19 May 2023 23:09:17 +0000 (16:09 -0700)]
Improve c-ts-mode font-lock for function names (bug#63390)
When a function definition has preproc directives in its body, it
can't correctly parse into a function_definition. This fix tries to
recognize this case and highlight the function_declarator correctly.
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--font-lock-settings): New rule.
(c-ts-mode--top-level-declarator): New function.
Juri Linkov [Fri, 19 May 2023 18:14:16 +0000 (21:14 +0300)]
* lisp/tab-bar.el: Don't use 'minibuffer-selected-window' (bug#62427).
(tab-bar-select-tab, tab-bar-new-tab-to):
Use 'window-minibuffer-p' instead of 'minibuffer-selected-window'.
And switch to 'get-mru-window' instead of 'minibuffer-selected-window'.