]> git.eshelyaron.com Git - emacs.git/log
emacs.git
21 months agoIgnore some handlers in ange-ftp.el
Michael Albinus [Mon, 19 Dec 2022 09:23:14 +0000 (10:23 +0100)]
Ignore some handlers in ange-ftp.el

* lisp/net/ange-ftp.el: Return nil for `file-acl',
`file-notify-add-watch', `file-notify-rm-watch',
`file-notify-valid-p', `file-system-info',
`list-system-processes', `memory-info', `process-attributes',
`set-file-acl', `set-file-selinux-context'.

21 months agoImprove earlier changes to xterm.c
Po Lu [Mon, 19 Dec 2022 05:40:54 +0000 (13:40 +0800)]
Improve earlier changes to xterm.c

* etc/PROBLEMS: Update for renamed variable.
* src/xterm.c (x_make_frame_visible): Better respect
`x-lax-frame-positioning'.

21 months ago; Fix merge errors in etc/NEWS
Stefan Kangas [Mon, 19 Dec 2022 04:00:38 +0000 (05:00 +0100)]
; Fix merge errors in etc/NEWS

21 months agoMerge from origin/emacs-29
Stefan Kangas [Mon, 19 Dec 2022 03:42:19 +0000 (04:42 +0100)]
Merge from origin/emacs-29

12e26cc0c1b ; * admin/git-bisect-start: Add mistakenly ommitted commi...
9a751e0a38b ruby-mode: Support endless singleton method definitions too
ce7b7e5af3d Remove comment-start-skip preset in tree-sitter indentati...
c1e015ae320 Fix recent change in tramp-smb.el
cf1b771864a ; * etc/NEWS: Fix typos.
50d18bb6ea7 Make tramp-archive autoloads robust for older Emacs versions
3941cc29df3 ; Improve documentation of 'setopt'
6f88de109c8 ruby-mode: Support endless methods (bug#54702)
91dd893e343 ; * lisp/progmodes/sql.el (sql-product-interactive): Doc ...
138d9dc4cb0 * lisp/cus-edit.el (setopt--set): Warn instead of rasing ...
d1e0542f336 Allow customising windmove user options with an empty prefix
c2375e77914 Improve and extend admin/git-bisect-start
7cc2313eb0a Make 'rmail-summary-by-thread' faster
88e59b16cbe ; Improve documentation of installing tree-sitter and gra...
897f33bf316 Fix the MS-DOS build
660e941235d Avoid crashes in PGTK build due to signal in 'note_mouse_...
0fc5fb2d054 Fix MS-Windows build broken by recent treesit.c changes
5b2e6d04ce2 Fix wrong capture in typescript-ts-mode (bug#60167)
cb8ccdd2670 Add rust-ts-mode (Bug#60136)
9fcf764dd73 Indentation fixes for jsx/tsx (bug#60169)
69f2c71135f Fix treesit-query-validate problem with view-mode
1fc7535546c Use cursor API in treesit-node-parent
5f0286c0afa Switch to use cursor API in treesit.c
a275e436df4 Add treesit_assume_true and treesit_cursor_helper
a54c7a8df0c Remove file-exists-in-trash-p
3e02029642c Update to Org 9.6-49-g47d129
4a8ff671b0e Don’t assume make-directory handler returns nil
44c83b239d3 Fix copy-directory bug when dest dir exists
bef1edc9cac make-directory now returns t if dir already exists
8a9579ca29d Use make-directory handlers uniformly
627e7e0243d Improve documentation of 'file-exists-p'
c9015ef55ff Fix resizing of mini-windows by 'set-minibuffer-message'
5a245bc786e Prevent Abort dialogs from async-compiling jobs on Windows
4d1e4a48938 Fix 'window-max-chars-per-line' when there are no fringes
d65beb820cc ; Revert "; * lisp/subr.el (internal--with-narrowing): Si...
1c0b90e5f7d ruby-mode: Recognize instance or global var as first arg ...
3356c0cb163 Fix end-of-defun in ruby-mode

# Conflicts:
# etc/NEWS

21 months ago; Merge from origin/emacs-29
Stefan Kangas [Mon, 19 Dec 2022 03:42:18 +0000 (04:42 +0100)]
; Merge from origin/emacs-29

The following commit was skipped:

d9add661617 ; * lisp/subr.el (internal--with-narrowing): Simplify

21 months agoMerge from origin/emacs-29
Stefan Kangas [Mon, 19 Dec 2022 03:42:18 +0000 (04:42 +0100)]
Merge from origin/emacs-29

67bc96c9d94 Remove treesit-defun-prefer-top-level and friends
4f9bccef556 Add yaml-ts-mode (Bug#60105)
f9cb144d45a Fix indentation in json-ts-mode (bug#60123)
3d348c46e78 ; Handle nil ARG in treesit-beginning/end-of-defun
1a66435dda3 New input method 'cyrillic-chuvash'
b9227c502d7 ; Improve wording of 'format' doc string

21 months ago; Merge from origin/emacs-29
Stefan Kangas [Mon, 19 Dec 2022 03:42:18 +0000 (04:42 +0100)]
; Merge from origin/emacs-29

The following commit was skipped:

65b0040f9fc Backport: ; * lisp/bs.el: Small doc and whitespace fixes

21 months agoMerge from origin/emacs-29
Stefan Kangas [Mon, 19 Dec 2022 03:42:18 +0000 (04:42 +0100)]
Merge from origin/emacs-29

de2239a584a Revert "alist-get testfn argument evaluation correction"
856d889f3a8 Revert "Elide broken but unnecessary `if` optimisations"
8e42e20ed7f Revert "Use equal and member instead of eq and memq"

21 months ago; Merge from origin/emacs-29
Stefan Kangas [Mon, 19 Dec 2022 03:42:18 +0000 (04:42 +0100)]
; Merge from origin/emacs-29

The following commits were skipped:

f4b430140f0 Use equal and member instead of eq and memq
13aa376e935 Elide broken but unnecessary `if` optimisations
17d65c99cd8 alist-get testfn argument evaluation correction

21 months agoMerge from origin/emacs-29
Stefan Kangas [Mon, 19 Dec 2022 03:42:18 +0000 (04:42 +0100)]
Merge from origin/emacs-29

b01d0246d71 * lisp/term/xterm.el (xterm-function-map): Add M-SPC.  (B...
303d6ac1423 Fix moving to trash files that overwrite dangling symlink...
dc78779c0cd Fix SVG scaling (bug#59802)
10415d9651b ; Add useful hint to which-func documentation
c26ab22cf4e ; Improve doc strings of minibuffer-history commands
80f410d281c ; Fix last changes in buffer.c
f04680e067b Fix some naming issues involving query buffers in ERC
173e02f4eb4 ; Fix doc string in ERC's module-activation commands
5a9263a8725 Increment erc-debug-irc-protocol-version to 2
89f54e81576 A better fix for bug#60096
1b9ca1e5e64 ; Fix printing Lisp types in .gdbinit
7575c85efd2 Bump Eglot version to 1.10
a0806bc7ea9 Eglot: fix discrepant eglot-guess-contact/eglot-command-h...
8bf4cdcf79b Avoid recursive process filters in lisp/jsonrpc.el (bug#6...

21 months agobs.el: Use the right buffer context to compute the mode name
Juanma Barranquero [Mon, 19 Dec 2022 01:40:50 +0000 (02:40 +0100)]
bs.el: Use the right buffer context to compute the mode name

* lisp/bs.el (bs--get-mode-name): The function is already called
with the correct buffer as current-buffer; and anyway, START-BUFFER
is usually the wrong one to pass to `format-mode-line'.  This fixes
a bug introduced in 48d33090d0 and c2699583be (back in 2008-01-04).

21 months ago; * admin/git-bisect-start: Add mistakenly ommitted commits to skip
Gregory Heytings [Mon, 19 Dec 2022 01:07:16 +0000 (01:07 +0000)]
; * admin/git-bisect-start: Add mistakenly ommitted commits to skip

21 months agoruby-mode: Support endless singleton method definitions too
Dmitry Gutov [Mon, 19 Dec 2022 00:21:51 +0000 (02:21 +0200)]
ruby-mode: Support endless singleton method definitions too

* lisp/progmodes/ruby-mode.el (ruby-endless-method-head-re):
Update to match not only 'self.' but 'xyz.' as well (bug#54702).

* test/lisp/progmodes/ruby-mode-resources/ruby.rb (Bar#foo=):
Update example.

21 months agoRemove comment-start-skip preset in tree-sitter indentation engine
Yuan Fu [Sun, 18 Dec 2022 22:11:54 +0000 (14:11 -0800)]
Remove comment-start-skip preset in tree-sitter indentation engine

Comment indentation should use a adaptive-fill-based indent, rather
than comment-start-skip.

Also remove manual description of removed variables in treesit.el and
add documentation for n-p-gp upon request.

* doc/lispref/modes.texi (Parser-based Indentation)
* lisp/treesit.el (treesit-simple-indent-presets): Add n-p-gp, remove
treesit-comment-start/end, remove comment-start-skip.

* doc/lispref/parsing.texi (Tree-sitter major modes): Remove
treesit-comment-start/end.

21 months agoImprove rename-file fix (bug#34069)
Paul Eggert [Sun, 18 Dec 2022 20:57:57 +0000 (12:57 -0800)]
Improve rename-file fix (bug#34069)

* src/fileio.c (Frename_file): No need for a special case to
rename a fifo, since we already tried and failed to rename it.
Also improve symlink handling, in that if readlink fails report an
error rather than trying to treat the link as a regular file.

21 months agoDon’t hang when copying FIFOs
Paul Eggert [Sun, 18 Dec 2022 19:45:06 +0000 (11:45 -0800)]
Don’t hang when copying FIFOs

* src/fileio.c (Fcopy_file): Open the input file with O_NONBLOCK.
This prevents a hang if the input file is a FIFO.
If it’s a regular file O_NONBLOCK has no effect;
otherwise the file is soon rejected anyway.

21 months agoFix recent change in tramp-smb.el
Michael Albinus [Sun, 18 Dec 2022 19:17:06 +0000 (20:17 +0100)]
Fix recent change in tramp-smb.el

* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
Ignore `make-directory-internal'.
(tramp-smb-handle-make-directory): Move implementation from
`tramp-smb-handle-make-directory-internal' here.

* lisp/net/tramp.el (tramp-file-name-for-operation):
Rearrange `make-directory-internal'.

21 months ago; Fix calls to treesit functions
Eli Zaretskii [Sun, 18 Dec 2022 17:13:10 +0000 (19:13 +0200)]
; Fix calls to treesit functions

* lisp/progmodes/prog-mode.el (treesit-available-p): Declare.
(prog-fill-reindent-defun): Only call treesit.c functions if
treesit-available-p returns non-nil.  Reported by Eduardo Ochs
<eduardoochs@gmail.com>.

21 months ago; * etc/NEWS: Fix typos.
Michael Albinus [Sun, 18 Dec 2022 15:43:05 +0000 (16:43 +0100)]
; * etc/NEWS: Fix typos.

21 months agoMake tramp-archive autoloads robust for older Emacs versions
Michael Albinus [Sun, 18 Dec 2022 15:42:51 +0000 (16:42 +0100)]
Make tramp-archive autoloads robust for older Emacs versions

* lisp/net/tramp-archive.el (tramp-archive-file-name-regexp):
Use `eval-when-compile'.  Set it explicitly for older Emacs versions.

21 months agoSuppress memql warning in test
Mattias Engdegård [Sat, 17 Dec 2022 18:13:13 +0000 (19:13 +0100)]
Suppress memql warning in test

* test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-adjoin-test):
Suppress warning about `memql` argument inside expansion of
`cl-adjoin`.

21 months agoWarn about lambda expressions in comparisons
Mattias Engdegård [Sat, 17 Dec 2022 13:48:34 +0000 (14:48 +0100)]
Warn about lambda expressions in comparisons

Lambda expressions are not comparable; warn about calls such as
(eq x (lambda ...)) etc.

* lisp/emacs-lisp/bytecomp.el (bytecomp--dodgy-eq-arg): Rename to...
(bytecomp--dodgy-eq-arg-p): ...this.  Use pcase.  Add lambda checks.
(bytecomp--value-type-description, bytecomp--arg-type-description)
(bytecomp--check-eq-args, bytecomp--check-memq-args): Add function
checks.  Update calls.  Make compiler-macro arguments optional to
avoid crashes in malformed code.
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp--with-warning-test): Simplify argument.  Run each
compilation with a fresh (empty) warning cache.  Add ert-info for
easier debugging.
(bytecomp-warn-dodgy-args-eq, bytecomp-warn-dodgy-args-memq):
Add lambda tests.

21 months agoFix compiler macro expansion bug
Mattias Engdegård [Sat, 17 Dec 2022 17:20:48 +0000 (18:20 +0100)]
Fix compiler macro expansion bug

* lisp/emacs-lisp/macroexp.el (macroexp--expand-all):
When a compiler-macro handler is re-invoked (after macro-expanding
arguments), actually use the result instead of pointlessly dropping it
on the floor.

21 months ago; lisp/progmodes/verilog-mode.el: Collected updates from verilog-mode upstream.
Wilson Snyder [Sun, 18 Dec 2022 13:35:12 +0000 (08:35 -0500)]
; lisp/progmodes/verilog-mode.el: Collected updates from verilog-mode upstream.

* lisp/progmodes/verilog-mode.el (verilog-align-typedef-regexp):
Fix defcustom type to allow nil.
(verilog-at-constraint-p)
(verilog-cparenexp-indent-level, verilog-typedef-enum-re): Fix
test-custom-opts issues.

Co-authored-by: Mattias Engdegård <mattiase@acm.org>
21 months ago; Improve documentation of 'setopt'
Eli Zaretskii [Sun, 18 Dec 2022 12:26:54 +0000 (14:26 +0200)]
; Improve documentation of 'setopt'

* doc/lispref/variables.texi (Setting Variables): Note about the
differences between 'setopt' and 'customize-set-variable'.

21 months agoruby-mode: Support endless methods (bug#54702)
Dmitry Gutov [Sun, 18 Dec 2022 12:01:47 +0000 (14:01 +0200)]
ruby-mode: Support endless methods (bug#54702)

* lisp/progmodes/ruby-mode.el (ruby-endless-method-head-re):
New constant.
(ruby-smie-grammar): New token.
(ruby-smie--forward-token, ruby-smie--backward-token):
Recognize it.
(ruby-smie-rules): Indentation support.
(ruby-add-log-current-method): Support here too.

* test/lisp/progmodes/ruby-mode-tests.el
(ruby-add-log-current-method-after-endless-method): New test.

* test/lisp/progmodes/ruby-mode-resources/ruby.rb: New examples.

21 months ago; * lisp/progmodes/sql.el (sql-product-interactive): Doc fix (bug#60175)
Eli Zaretskii [Sun, 18 Dec 2022 11:54:43 +0000 (13:54 +0200)]
; * lisp/progmodes/sql.el (sql-product-interactive): Doc fix (bug#60175)

21 months ago* lisp/cus-edit.el (setopt--set): Warn instead of rasing an error
Philip Kaludercic [Sat, 17 Dec 2022 16:29:24 +0000 (17:29 +0100)]
* lisp/cus-edit.el (setopt--set): Warn instead of rasing an error

(Bug#60162)

21 months agoAllow customising windmove user options with an empty prefix
Philip Kaludercic [Sat, 17 Dec 2022 14:54:40 +0000 (15:54 +0100)]
Allow customising windmove user options with an empty prefix

* lisp/windmove.el (windmove--default-keybindings-type): Handle nil
as a prefix value.  (Bug#60161)

21 months agoImprove and extend admin/git-bisect-start
Gregory Heytings [Sun, 18 Dec 2022 10:46:48 +0000 (10:46 +0000)]
Improve and extend admin/git-bisect-start

* admin/git-bisect-start: Use 'git bisect skip' instead of 'git
bisect good' for merges of external trees, which is equivalent but
faster in some cases.  Improve the explanation on external tree
merges.  Add list of commits in the last six years on which
building Emacs fails, and call 'git bisect skip' on them.  Also
document how the script can be called automatically when 'git
bisect start' is called in the Emacs repository.

* admin/notes/repo (Bisecting): Adapt the explanation of the
script accordingly.

21 months agoMake 'rmail-summary-by-thread' faster
Andrea Monaco [Fri, 9 Dec 2022 20:22:22 +0000 (21:22 +0100)]
Make 'rmail-summary-by-thread' faster

* lisp/mail/rmailsum.el (rmail-summary-message-parents-vector)
(rmail-summary-message-descendants-vector): Doc fixes.
(rmail-summary-message-descendants-vector): New variable.
(rmail-summary-fill-message-parents-and-descs-vectors): Renamed
from 'rmail-summary-fill-message-parents-vector' and rewritten.
(rmail-summary-direct-descendants): Function deleted.

21 months ago; Improve documentation of installing tree-sitter and grammars.
Eli Zaretskii [Sun, 18 Dec 2022 10:08:22 +0000 (12:08 +0200)]
; Improve documentation of installing tree-sitter and grammars.

* etc/NEWS: Enhance tree-sitter sections wrt grammar libraries.

21 months agoFix the MS-DOS build
Po Lu [Sun, 18 Dec 2022 10:05:57 +0000 (18:05 +0800)]
Fix the MS-DOS build

* src/lread.c (syms_of_lread): Make the MS-DOS build work again.

21 months agoAvoid crashes in PGTK build due to signal in 'note_mouse_highlight'
Eli Zaretskii [Sun, 18 Dec 2022 08:29:34 +0000 (10:29 +0200)]
Avoid crashes in PGTK build due to signal in 'note_mouse_highlight'

* src/xdisp.c (string_buffer_position): Make sure the TO argument
of 'string_buffer_position_lim' is always inside [BEGV..ZV].
Otherwise 'string_buffer_position_lim' might call
'get-char-property' and friends with invalid position, which will
just signal an error and do nothing useful.  (Bug#60144)

21 months agoRemove Gnulib explicit_bzero module
Paul Eggert [Sun, 18 Dec 2022 08:21:30 +0000 (00:21 -0800)]
Remove Gnulib explicit_bzero module

It’s no longer needed, as it is now merely a thin layer around
C23-style memset_explicit and we might as well just call the
C23 standard function; that’s more forward-looking.
* admin/merge-gnulib (GNULIB_MODULES):
Remove explicit_bzero, and add memset_explicit.
* lib/explicit_bzero.c, m4/explicit_bzero.m4:
Remove these files, which were copied from Gnulib.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
* src/gnutls.c (gnutls_symmetric_aead):
Use memset_explicit instead of explicit_bzero.

21 months agoUpdate from Gnulib by running admin/merge-gnulib
Paul Eggert [Sun, 18 Dec 2022 07:11:55 +0000 (23:11 -0800)]
Update from Gnulib by running admin/merge-gnulib

21 months agoPort better to glibc 2.28+ renameat2
Paul Eggert [Sun, 18 Dec 2022 05:40:02 +0000 (21:40 -0800)]
Port better to glibc 2.28+ renameat2

* configure.ac: Check for renameat2.
* src/sysdep.c (renameat_noreplace): Prefer renameat2 (supplied by
glibc 2.28 and later) to doing the syscall by hand.

21 months agoFix MS-Windows build broken by recent treesit.c changes
Eli Zaretskii [Sun, 18 Dec 2022 05:57:34 +0000 (07:57 +0200)]
Fix MS-Windows build broken by recent treesit.c changes

* src/treesit.c (init_treesit_functions, ts_tree_cursor_copy)
(ts_tree_cursor_delete): Add boilerplate for using new tree-sitter
functions.
(ts_node_parent): Delete boilerplate of unused function.

21 months agoFix wrong capture in typescript-ts-mode (bug#60167)
Theodor Thornhill [Sat, 17 Dec 2022 19:07:59 +0000 (20:07 +0100)]
Fix wrong capture in typescript-ts-mode (bug#60167)

An example of the issue could be:

    <Menu.Item>
        {({ active }) => (
          link
            ? <Link to={link}> {text}</Link>
            : <a href="#" onClick={onClick}>{text}</a>
        )}
    </Menu.Item>

Here 'link' as well as a lot of the other constructs inside of the
parenthesized expression will be font-locked with
'font-lock-variable-name-face'.  We only want to capture the
identifier.

* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings): Make the variable capture
only capture the identifier, and not the whole expression.

21 months agoAdd rust-ts-mode (Bug#60136)
Randy Taylor [Fri, 16 Dec 2022 21:05:29 +0000 (16:05 -0500)]
Add rust-ts-mode (Bug#60136)

* etc/NEWS: Mention it.
* lisp/progmodes/eglot.el (eglot-server-programs): Add it.
* lisp/progmodes/rust-ts-mode.el: New major mode with
tree-sitter support.

21 months agoIndentation fixes for jsx/tsx (bug#60169)
Theodor Thornhill [Sat, 17 Dec 2022 22:11:57 +0000 (23:11 +0100)]
Indentation fixes for jsx/tsx (bug#60169)

* lisp/progmodes/js.el (js--treesit-indent-rules): Simplify the rules.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): Simplify the rules.

21 months agoFix treesit-query-validate problem with view-mode
Theodor Thornhill [Sat, 17 Dec 2022 19:23:02 +0000 (20:23 +0100)]
Fix treesit-query-validate problem with view-mode

* lisp/treesit.el (treesit-query-validate): Move the (view-mode) into
the correct scope.

21 months agoUse cursor API in treesit-node-parent
Yuan Fu [Sat, 17 Dec 2022 23:14:02 +0000 (15:14 -0800)]
Use cursor API in treesit-node-parent

This is the last part of the change that fixes bug#60054.  The
previous change fixes it for searching functions, this fixes for
treesit-node-parent.

* src/treesit.c (Ftreesit_node_parent): Use the new cursor API.

21 months agoSwitch to use cursor API in treesit.c
Yuan Fu [Sat, 17 Dec 2022 23:01:57 +0000 (15:01 -0800)]
Switch to use cursor API in treesit.c

ts_node_parent has bugs (bug#60054), using cursor API avoids that.
Tree-sitter's author might remove ts_node_parent in the future, so
might as well switch to use cursors now.  We are basically
reimplementing some of the logic of ts_node_prev_sibling and
ts_node_parent in the sibling helper and cursor helper functions.

See also https://github.com/tree-sitter/tree-sitter/issues/1992

* src/treesit.c (treesit_traverse_sibling_helper)
(treesit_traverse_child_helper)
(treesit_traverse_match_predicate): Reimplemented to use the cursor API.
(treesit_search_dfs)
(treesit_search_forward): Use the new cursor helper functions.
(Ftreesit_search_subtree)
(Ftreesit_search_forward)
(Ftreesit_induce_sparse_tree): Use cursors.

* test/src/treesit-tests.el (treesit-search-subtree): New test.
(treesit--ert-search-setup): New macro.
(treesit-search-forward)
(treesit-search-forward-named-only)
(treesit-search-backward)
(treesit-search-backward-named-only)
(treesit-cursor-helper-with-missing-node): New tests.

21 months agoAdd treesit_assume_true and treesit_cursor_helper
Yuan Fu [Sat, 17 Dec 2022 22:59:01 +0000 (14:59 -0800)]
Add treesit_assume_true and treesit_cursor_helper

This is part 1 of the change to change node API to cursor API.  See
the second part for more detail.  (I splitted the change to make the
diff more sane.)

* src/treesit.c (treesit_assume_true)
(treesit_cursor_helper): New functions.

21 months agoRemove file-exists-in-trash-p
Paul Eggert [Sat, 17 Dec 2022 22:41:48 +0000 (14:41 -0800)]
Remove file-exists-in-trash-p

* lisp/files.el (file-exists-in-trash-p): Remove, as this name is
not suitable for users.  All uses replaced by file-attributes,
which is good enough here.

21 months agoUpdate to Org 9.6-49-g47d129
Kyle Meyer [Sat, 17 Dec 2022 22:18:40 +0000 (17:18 -0500)]
Update to Org 9.6-49-g47d129

21 months agoDon’t assume make-directory handler returns nil
Paul Eggert [Sat, 17 Dec 2022 22:09:03 +0000 (14:09 -0800)]
Don’t assume make-directory handler returns nil

* lisp/files.el (make-directory): Ignore what the make-directory
handler returns, as its return value was not documented in Emacs 28.

21 months agoFix copy-directory bug when dest dir exists
Paul Eggert [Sat, 17 Dec 2022 20:15:30 +0000 (12:15 -0800)]
Fix copy-directory bug when dest dir exists

* lisp/files.el (copy-directory): Set ‘follow’ depending on
whether we made the directory, not based on a guess that is
sometimes wrong.  When NEWNAME is a directory name and
COPY-CONTENTS is nil, do not object merely because the adjusted
NEWNAME is already a directory.  (Bug#58919).
* test/lisp/files-tests.el (files-tests-copy-directory):
Test for the bug.

21 months agomake-directory now returns t if dir already exists
Paul Eggert [Sat, 17 Dec 2022 20:15:30 +0000 (12:15 -0800)]
make-directory now returns t if dir already exists

This new feature will help fix a copy-directory bug (Bug#58919).
Its implementation does not rely on make-directory handlers
supporting the new feature, as it no longer uses a make-directory
handler H in any way other than (funcall H DIR), thus using
only the intersection of the old and new behavior for handlers.
This will give us time to fix handlers at our leisure.
* lisp/files.el (files--ensure-directory): New arg MKDIR.
All uses changed.
(files--ensure-directory, make-directory):
Return non-nil if DIR is already a directory.  All uses changed.
* test/lisp/files-tests.el (files-tests-make-directory):
Test new return-value convention.

21 months agoUse make-directory handlers uniformly
Paul Eggert [Sat, 17 Dec 2022 20:15:30 +0000 (12:15 -0800)]
Use make-directory handlers uniformly

Formerly, the code supported both make-directory and
make-directory-internal handlers. This led to confusion and meant than
in a few cases (nnmaildir, ido) remote directories could not be used in
some cases.  Fix this by using only make-directory handlers.

Perhaps there used to be a reason for why there were both
make-directory and make-directory-internal handlers, but whatever that
reason was, it seems to have vanished even before now.

There is no longer any need for make-directory-internal handlers, as
the few remaining callers that use make-directory-internal do so only
when there are no handlers.  However, this change keeps the existing
make-directory-internal handlers for now, in case this code is ever
used in older Emacs versions that still call those handlers.

* lisp/gnus/nnmaildir.el (nnmaildir--mkdir):
* lisp/ido.el (ido-file-internal):
* lisp/net/tramp-smb.el (tramp-smb-handle-make-directory):
Use make-directory, not make-directory-internal.
* lisp/net/tramp-smb.el (tramp-smb-handle-make-directory-internal):
Now obsolete.
* src/fileio.c (Fmake_directory_internal): Do not look for or
use a make-directory-internal handler.
* test/lisp/files-tests.el:
(files-tests-file-name-non-special-make-directory-internal):
Remove, as this test incorrectly assumes that make-directory-internal
must support handlers.

21 months agoImprove documentation of 'file-exists-p'
Eli Zaretskii [Sat, 17 Dec 2022 20:14:40 +0000 (22:14 +0200)]
Improve documentation of 'file-exists-p'

* doc/lispref/files.texi (Testing Accessibility): Document better
how to test for existing dangling symlinks.  (Bug#60146)

21 months ago; lisp/progmodes/verilog-mode.el: Collected updates from verilog-mode upstream.
Wilson Snyder [Sat, 17 Dec 2022 20:00:34 +0000 (15:00 -0500)]
; lisp/progmodes/verilog-mode.el: Collected updates from verilog-mode upstream.

* lisp/progmodes/verilog-mode.el (verilog-beg-block-re-ordered)
(verilog-forward-sexp, verilog-leap-to-head): Support of hideshow
for ifdef/ifndef blocks (#1819).
(verilog-cparenexp-indent-level): Improve multiline indentation
with verilog-indent-lists set to nil.  Indent uvm statements and
system tasks and functions according to the argument position in
the parenthesized expression.
(verilog-extended-complete-re): Fix verilog-beg-of-statement on
local methods.
(verilog-beg-of-statement): Fix indentation of properties inside
ifdef (#1817).
(verilog-declaration-varname-matcher, verilog-fontify-variables):
Add option to enable/disable variable fontification.
(verilog-declaration-varname-matcher): Fix bug in highlighting of
vars on func/task arguments.
(verilog-mark-defun): Fix behavior of verilog-mark-defun (#1805).
(verilog-pretty-declarations): Add support to align
declarations/expressions within the region (#1806).
(verilog-align-typedef-regexp, verilog-align-typedef-words): Add
support for alignment of user defined types (#1803).
(verilog-pretty-declarations): Limit alignment of members of a
struct to consecutive valid declarations.
(verilog-typedef-enum-re): Update minor bug in typedef enum regex.
(verilog-indent-declaration): Fix compiler warning on
verilog-indent-declaration.
(verilog-batch-error-wrapper) (verilog-warn-error,
verilog-warn-fatal) (verilog-warn-fatal-internal): Make
`verilog-warn-fatal' safe for local variables (#1799).  Reported
by Rich-Cloutier.
(verilog-align-comment-distance, verilog-align-comments)
(verilog-align-decl-expr-comments)
(verilog-align-declaration-comments): Support alignment of
parameter/localparam expressions.  Support for expression
alignment in parameter lists.  Support declaration/expression
alignment of 'type' parameters.  Support alignment of inline
comments after `verilog-pretty-expr'.  Alignment of expressions
that do not have blanks before/after operator char Fix on
functions that did not work as expected for this use case.  Use
markers in verilog-pretty-expr to avoid bugs while iterating.
(verilog-pretty-expr): Fix bug in alignment of expressions
(#1797).
(verilog-cparenexp-indent-level): Improve indentation of defun
parameters when indent-lists is nil (#1795).
(verilog-align-assign-expr): Add support to align expressions of
continuous assignments (#1793).
(verilog-pretty-expr): Fix bug in boundaries of
verilog-pretty-expr (#1792) and prevent verilog-pretty-expr from
executing on multiline assignments
(verilog-do-indent): Fix indentation of assignments and enums with
indent-lists nil (#1790).
(verilog-do-indent): Fix alignment of structs and enums
(#1789).
(verilog-backward-sexp, verilog-forward-sexp): Add precedence to
paren expressions for sexp funcs navigation (#1788).
(verilog-declaration-varname-matcher): Fix fontifying of variable
names and overriding of keywords (#1787).
(verilog-do-indent): Fix indentation of paren expr if
verilog-indent-lists is nil (#1785).
(verilog-backward-ws&directives): Fix indentation after double
comment (#1784).
(verilog-beg-of-statement-1): Fix indentation of instances and
declarations right after 'begin' (#1782).
(verilog-declaration-comments-distance): Add variable to adjust
aligned comment distance in declarations
(#1779).
(verilog-indent-ignore-multiline-defines): Add indentation ignore
of multiline defines and custom regexps (#1778).
(verilog-align-declaration-comments): Add support to align
comments in declarations (#1775).
(verilog-pretty-declarations): Fix alignment of user types on
ports declarations.
(verilog-do-indent): Fix indentation of virtual, protected and
static class methods when verilog-indent-lists is nil.
(verilog-get-lineup-indent, verilog-pretty-declarations): Fix
alignment of first port declaration (#1167) (#1771).
(verilog-pretty-declarations): Fix alignment of declaration of
interfaces with modports (#636) (#1770).
(verilog-do-indent): Add `verilog-indent-class-inside-pkg' and fix
indentation of classes inside packages (#286) (#1769).  Reported
by Gonzalo Larumbe.
(verilog-backward-sexp, verilog-forward-sexp)
(verilog-leap-to-class-head, verilog-leap-to-head): Fix
indentation after interface class (#1047) (#1768). Reported by
Gonzalo Larumbe.
(verilog-do-indent): Fix indentation if verilog-indent-lists is
nil (#1703) (#1767). Reported by Gonzalo Larumbe.
(verilog-do-indent): Fix indentation of coverpoints (#1321)
(#1766).
(verilog-backward-sexp, verilog-forward-sexp)
(verilog-leap-to-head): Fix bug in forward-sexp and backward-sexp
for some constructs (#1765) Reported by Gonzalo Larumbe.

21 months agoFix resizing of mini-windows by 'set-minibuffer-message'
Eli Zaretskii [Sat, 17 Dec 2022 18:43:56 +0000 (20:43 +0200)]
Fix resizing of mini-windows by 'set-minibuffer-message'

* src/xdisp.c (redisplay_window): Always resize mini-windows
displaying the active minibuffer.  (Bug#60015)

21 months agoPrevent Abort dialogs from async-compiling jobs on Windows
Eli Zaretskii [Sat, 17 Dec 2022 18:35:11 +0000 (20:35 +0200)]
Prevent Abort dialogs from async-compiling jobs on Windows

* lisp/emacs-lisp/comp.el (comp-run-async-workers): Disable Abort
dialog popping in the sub-processes that perform async
compilation, by passing w32-disable-abort-dialog=t on their
command line.

21 months agoFix 'window-max-chars-per-line' when there are no fringes
Eli Zaretskii [Sat, 17 Dec 2022 12:04:14 +0000 (14:04 +0200)]
Fix 'window-max-chars-per-line' when there are no fringes

* lisp/window.el (window-max-chars-per-line): Fix the way we
account for the fringes by calling 'window-fringes'.  (Bug#59963)

21 months ago; * src/xterm.c (x_send_scroll_bar_event): Remove unused variables.
Eli Zaretskii [Sat, 17 Dec 2022 11:41:57 +0000 (13:41 +0200)]
; * src/xterm.c (x_send_scroll_bar_event): Remove unused variables.

21 months ago; * lisp/subr.el (internal--with-narrowing): Simplify
Philip Kaludercic [Fri, 16 Dec 2022 23:11:46 +0000 (00:11 +0100)]
; * lisp/subr.el (internal--with-narrowing): Simplify

(Bug#60130)

21 months ago* lisp/emacs-lisp/package.el (package-report-bug): Autoload it.
Philip Kaludercic [Tue, 29 Nov 2022 21:38:18 +0000 (22:38 +0100)]
* lisp/emacs-lisp/package.el (package-report-bug): Autoload it.

21 months agoMinor improvements to frame synchronization
Po Lu [Sat, 17 Dec 2022 08:22:59 +0000 (16:22 +0800)]
Minor improvements to frame synchronization

* src/xterm.c (x_sync_wait_for_frame_drawn_event): Update
compositor bypass property if frame synchronization is being
disabled.

21 months ago; Revert "; * lisp/subr.el (internal--with-narrowing): Simplify"
Eli Zaretskii [Sat, 17 Dec 2022 07:49:43 +0000 (09:49 +0200)]
; Revert "; * lisp/subr.el (internal--with-narrowing): Simplify"

This reverts commit d9add661617dfba491465943d402230699a9a4ff.

Please install on the release branch only changes that fix
incorrect behavior.  Cleanups don't belong here.

21 months ago; * lib-src/etags.c (do_move_file): Fix coding style.
Po Lu [Sat, 17 Dec 2022 01:49:08 +0000 (09:49 +0800)]
; * lib-src/etags.c (do_move_file): Fix coding style.

21 months agoruby-mode: Recognize instance or global var as first arg in parenless call
Dmitry Gutov [Sat, 17 Dec 2022 01:30:52 +0000 (03:30 +0200)]
ruby-mode: Recognize instance or global var as first arg in parenless call

* lisp/progmodes/ruby-mode.el (ruby-smie--args-separator-p):
Recognize instance or global var as first arg in parenless call.

* test/lisp/progmodes/ruby-mode-resources/ruby.rb: Add example.

21 months agoFix end-of-defun in ruby-mode
Dmitry Gutov [Sat, 17 Dec 2022 01:13:29 +0000 (03:13 +0200)]
Fix end-of-defun in ruby-mode

* lisp/progmodes/ruby-mode.el (ruby-beginning-of-defun):
Return t in case of success.

21 months ago; * lisp/subr.el (internal--with-narrowing): Simplify
Philip Kaludercic [Fri, 16 Dec 2022 23:11:46 +0000 (00:11 +0100)]
; * lisp/subr.el (internal--with-narrowing): Simplify

(Bug#60130)

21 months agoRemove treesit-defun-prefer-top-level and friends
Yuan Fu [Fri, 16 Dec 2022 23:04:32 +0000 (15:04 -0800)]
Remove treesit-defun-prefer-top-level and friends

Because they are not used anymore, after the new defun navigation is
installed.

* lisp/treesit.el (treesit-defun-prefer-top-level)
(treesit--defun-maybe-top-level): Remove.

21 months agoAdd yaml-ts-mode (Bug#60105)
Randy Taylor [Tue, 13 Dec 2022 14:41:01 +0000 (09:41 -0500)]
Add yaml-ts-mode (Bug#60105)

* admin/notes/tree-sitter/build-module/batch.sh:
* admin/notes/tree-sitter/build-module/build.sh: Add yaml support.
* etc/NEWS: Mention it.
* lisp/textmodes/yaml-ts-mode.el: New major mode with
tree-sitter support.
* lisp/progmodes/eglot.el (eglot-server-programs): Add it.

21 months agoFix indentation in json-ts-mode (bug#60123)
Jostein Kjønigsen [Fri, 16 Dec 2022 15:01:41 +0000 (16:01 +0100)]
Fix indentation in json-ts-mode (bug#60123)

* lisp/progmodes/json-ts-mode.el
(json-ts--indent-rules): Add indentation rules for arrays.

21 months ago; Handle nil ARG in treesit-beginning/end-of-defun
Yuan Fu [Fri, 16 Dec 2022 05:23:20 +0000 (21:23 -0800)]
; Handle nil ARG in treesit-beginning/end-of-defun

* lisp/treesit.el (treesit-beginning-of-defun)
(treesit-end-of-defun): Handle nil ARG.

21 months agoNew input method 'cyrillic-chuvash'
Eli Zaretskii [Fri, 16 Dec 2022 20:05:52 +0000 (22:05 +0200)]
New input method 'cyrillic-chuvash'

* lisp/leim/quail/cyrillic.el ("cyrillic-chuvash"): New input
method, contributed by flashymittens@tutanota.com.  (Bug#60023)

Copyright-paperwork-exempt: yes

21 months ago; Improve wording of 'format' doc string
Eli Zaretskii [Fri, 16 Dec 2022 18:46:00 +0000 (20:46 +0200)]
; Improve wording of 'format' doc string

* src/editfns.c (Fformat): Use "produce" instead of "print".
(Bug#60125)

21 months agoUse equal and member instead of eq and memq
Mattias Engdegård [Fri, 16 Dec 2022 11:17:33 +0000 (12:17 +0100)]
Use equal and member instead of eq and memq

* lisp/cedet/semantic/complete.el (semantic-displayer-show-request):
* lisp/descr-text.el (describe-char-categories):
* lisp/mh-e/mh-identity.el (mh-select-identity):
* lisp/transient.el (transient--delay-post-command)
(transient--post-command):
* lisp/vc/vc-git.el (vc-git-create-tag):
* test/lisp/emacs-lisp/cl-lib-tests.el
(cl-lib-nth-value-test-multiple-values):
* lisp/emulation/viper-cmd.el (viper-preserve-cursor-color):
Use `equal` instead of `eq` and `member` instead of `memq` where
the comparison is with literals without guaranteed identity.
In some cases this change corrects evident bugs, in others it is
mostly cosmetic.

21 months agoElide broken but unnecessary `if` optimisations
Mattias Engdegård [Fri, 16 Dec 2022 14:56:04 +0000 (15:56 +0100)]
Elide broken but unnecessary `if` optimisations

* lisp/emacs-lisp/byte-opt.el (byte-optimize-if):
Remove explicit clauses purposing to simplify

    (if X nil t) -> (not X)
    (if X t nil) -> (not (not X))

but never did so because of a coding mistake (eq instead of equal),
found by a recently added warning.  They weren't actually needed
thanks to the optimiser's fixpoint iteration: we eventually get the
same results through

    (if X nil t) -> (if (not X) t nil) -> (if (not X) t) -> (not X)
    (if X t nil) -> (if X t) -> (not (not X))

21 months agoalist-get testfn argument evaluation correction
Mattias Engdegård [Fri, 16 Dec 2022 10:08:02 +0000 (11:08 +0100)]
alist-get testfn argument evaluation correction

* lisp/emacs-lisp/gv.el (alist-get):
Evaluate TESTFN exactly once (previously up to 3 times).
Reduce the macro-expansion to include a call to either assoc or assq,
not both; this reduces the generated code size in some cases.

21 months agoBackport: ; * lisp/bs.el: Small doc and whitespace fixes
Juanma Barranquero [Fri, 16 Dec 2022 17:36:42 +0000 (18:36 +0100)]
Backport: ; * lisp/bs.el: Small doc and whitespace fixes

(cherry picked from commit 8624734504af4572525665c713a47e1b6f439a2c)

21 months ago; * lisp/bs.el: Small doc and whitespace fixes
Juanma Barranquero [Fri, 16 Dec 2022 17:36:42 +0000 (18:36 +0100)]
; * lisp/bs.el: Small doc and whitespace fixes

21 months agoRevert "alist-get testfn argument evaluation correction"
Eli Zaretskii [Fri, 16 Dec 2022 17:29:30 +0000 (19:29 +0200)]
Revert "alist-get testfn argument evaluation correction"

This reverts commit 17d65c99cd812e085d85f790c83ec0d540490a55.

Please don't install unnecessary improvements on the release
branch.

21 months agoRevert "Elide broken but unnecessary `if` optimisations"
Eli Zaretskii [Fri, 16 Dec 2022 17:27:33 +0000 (19:27 +0200)]
Revert "Elide broken but unnecessary `if` optimisations"

This reverts commit 13aa376e93564a8cf2ddbbcf0968c6666620db89.

Please don't install anything on the release branch that is
not a clear bugfix for a known bug.

21 months agoRevert "Use equal and member instead of eq and memq"
Eli Zaretskii [Fri, 16 Dec 2022 17:25:45 +0000 (19:25 +0200)]
Revert "Use equal and member instead of eq and memq"

This reverts commit f4b430140f0866f98bbf18b7094348dc64032813.

Please don't install anything on the release branch that is not
strictly necessary fro Emacs 29.

21 months agoNew option for selecting symbols by double-clicking
Eli Zaretskii [Fri, 16 Dec 2022 16:26:14 +0000 (18:26 +0200)]
New option for selecting symbols by double-clicking

* lisp/mouse.el (mouse-1-double-click-prefer-symbols): New user
option.
(mouse-skip-word): If 'mouse-1-double-click-prefer-symbols' is
non-nil, skip over the entire symbol at point.  (Bug#60080)

21 months agoUse equal and member instead of eq and memq
Mattias Engdegård [Fri, 16 Dec 2022 11:17:33 +0000 (12:17 +0100)]
Use equal and member instead of eq and memq

* lisp/cedet/semantic/complete.el (semantic-displayer-show-request):
* lisp/descr-text.el (describe-char-categories):
* lisp/mh-e/mh-identity.el (mh-select-identity):
* lisp/transient.el (transient--delay-post-command)
(transient--post-command):
* lisp/vc/vc-git.el (vc-git-create-tag):
* test/lisp/emacs-lisp/cl-lib-tests.el
(cl-lib-nth-value-test-multiple-values):
* lisp/emulation/viper-cmd.el (viper-preserve-cursor-color):
Use `equal` instead of `eq` and `member` instead of `memq` where
the comparison is with literals without guaranteed identity.
In some cases this change corrects evident bugs, in others it is
mostly cosmetic.

21 months agoClosures are always non-nil
Mattias Engdegård [Thu, 15 Dec 2022 10:22:06 +0000 (11:22 +0100)]
Closures are always non-nil

* lisp/emacs-lisp/byte-opt.el (byte-compile-trueconstp):
Treat closures as true in boolean context.

21 months agoElide broken but unnecessary `if` optimisations
Mattias Engdegård [Fri, 16 Dec 2022 14:56:04 +0000 (15:56 +0100)]
Elide broken but unnecessary `if` optimisations

* lisp/emacs-lisp/byte-opt.el (byte-optimize-if):
Remove explicit clauses purposing to simplify

    (if X nil t) -> (not X)
    (if X t nil) -> (not (not X))

but never did so because of a coding mistake (eq instead of equal),
found by a recently added warning.  They weren't actually needed
thanks to the optimiser's fixpoint iteration: we eventually get the
same results through

    (if X nil t) -> (if (not X) t nil) -> (if (not X) t) -> (not X)
    (if X t nil) -> (if X t) -> (not (not X))

21 months agoalist-get testfn argument evaluation correction
Mattias Engdegård [Fri, 16 Dec 2022 10:08:02 +0000 (11:08 +0100)]
alist-get testfn argument evaluation correction

* lisp/emacs-lisp/gv.el (alist-get):
Evaluate TESTFN exactly once (previously up to 3 times).
Reduce the macro-expansion to include a call to either assoc or assq,
not both; this reduces the generated code size in some cases.

21 months ago* lisp/term/xterm.el (xterm-function-map): Add M-SPC. (Bug#60077)
Eli Zaretskii [Fri, 16 Dec 2022 16:02:57 +0000 (18:02 +0200)]
* lisp/term/xterm.el (xterm-function-map): Add M-SPC.  (Bug#60077)

21 months agotab-bar.el: Fix "void-function cl--set-substring" error
Stefan Monnier [Fri, 16 Dec 2022 16:00:53 +0000 (11:00 -0500)]
tab-bar.el: Fix "void-function cl--set-substring" error

* lisp/tab-bar.el: Use #' to quote function names.
Try and fit within 80 columns.
(tab-bar--load-buttons): Silence compiler warnings about `icons` functions.
(tab-bar-auto-width): Avoid the use of `substring` as a gv-place
because it requires `cl-lib` which we don't (want to) preload.
[ Maybe a better solution would be to not preload tab-bar.el.  ]

21 months agoFix moving to trash files that overwrite dangling symlinks there
Eli Zaretskii [Fri, 16 Dec 2022 15:54:35 +0000 (17:54 +0200)]
Fix moving to trash files that overwrite dangling symlinks there

* lisp/files.el (file-exists-in-trash-p): New function.
(move-file-to-trash): Use it instead of 'file-exists-p' when
testing whether the file exist in the trash.  (Bug#59986)

21 months agoFix SVG scaling (bug#59802)
Manuel Giraud [Tue, 13 Dec 2022 09:10:03 +0000 (10:10 +0100)]
Fix SVG scaling (bug#59802)

Fix SVG scaling with librsvg>2.52 and SVG file with only one known
dimension.

* src/image.c (svg_load_image): Compute a percentage dimension with
the other known dimension.

21 months ago; Add useful hint to which-func documentation
Eli Zaretskii [Fri, 16 Dec 2022 15:43:46 +0000 (17:43 +0200)]
; Add useful hint to which-func documentation

* lisp/progmodes/which-func.el (which-func-non-auto-modes)
(which-func-maxout): Mention the slow startup with Eglot and
how to work around that.  (Bug#60107)

21 months ago; Improve doc strings of minibuffer-history commands
Eli Zaretskii [Fri, 16 Dec 2022 15:32:05 +0000 (17:32 +0200)]
; Improve doc strings of minibuffer-history commands

* lisp/simple.el (goto-history-element, next-history-element)
(previous-history-element): Doc fixes.  (Bug#60103)

21 months ago; Fix last changes in buffer.c
Eli Zaretskii [Fri, 16 Dec 2022 14:46:37 +0000 (16:46 +0200)]
; Fix last changes in buffer.c

* src/buffer.c (other_buffer_safely): Ensure Lisp Interaction mode
in *scratch*.  (Bug#60096)

21 months agoFix some naming issues involving query buffers in ERC
F. Jason Park [Mon, 12 Dec 2022 15:38:44 +0000 (07:38 -0800)]
Fix some naming issues involving query buffers in ERC

* lisp/erc/erc-networks.el
(erc-networks-rename-surviving-target-buffer): Don't kill a surviving
target buffer when another, non-target buffer, possibly not even
belonging to ERC, already exists and sports the target's name.
(erc-networks--reconcile-buffer-names): Always append a network-ID
suffix to a target buffer's name if another buffer of that name
already exists.  (Bug#59976.)
* lisp/erc/erc.el (erc, erc-tls): Revise `:id' portion of doc strings.
Thanks to Mike Kazantsev for the suggestion and for filing this bug
and helping solve it.
* test/lisp/erc/erc-networks-tests.el:
(erc-networks-rename-surviving-target-buffer--query-non-target): Add
new test.
* test/lisp/erc/erc-scenarios-base-association-query.el: New file.
* test/lisp/erc/resources/base/assoc/queries/netnick.eld: New file.
* test/lisp/erc/resources/base/assoc/queries/non-erc.eld: New file.

21 months ago; Fix doc string in ERC's module-activation commands
F. Jason Park [Fri, 16 Dec 2022 07:25:10 +0000 (23:25 -0800)]
; Fix doc string in ERC's module-activation commands

* lisp/erc/erc-common.el (erc--assemble-toggle): Previously, the doc
string implied that a prefix argument was necessary to achieve
connection-wide effects, which might lead a person to think the
interactive code should be an uppercase "P".
* test/lisp/erc/erc-tests.el (define-erc-module--local): Update
expected result of code-gen.

21 months agoIncrement erc-debug-irc-protocol-version to 2
F. Jason Park [Thu, 15 Dec 2022 04:03:15 +0000 (20:03 -0800)]
Increment erc-debug-irc-protocol-version to 2

* lisp/erc/erc.el (erc-debug-irc-protocol-version): Change version to
2 to help dependent tooling detect redacted passwords.
(erc-log-irc-protocol): Don't bother redacting incoming messages.
(Bug#59284.)

21 months agoA better fix for bug#60096
Eli Zaretskii [Fri, 16 Dec 2022 14:29:51 +0000 (16:29 +0200)]
A better fix for bug#60096

* lisp/startup.el (initial-scratch-message):
* lisp/simple.el (get-scratch-buffer-create): Revert last changes.

* src/window.c (Fset_window_configuration): Force recalculation of
Vwindow_list after restoring the windows.
* src/buffer.c (other_buffer_safely): Make sure we always return a
valid buffer, even if 'get-scratch-buffer-create' signals an
error.

21 months ago; Fix printing Lisp types in .gdbinit
Eli Zaretskii [Fri, 16 Dec 2022 12:14:42 +0000 (14:14 +0200)]
; Fix printing Lisp types in .gdbinit

* src/alloc.c (valid_lisp_object_p): Support printing
stack-allocated strings and cons cells.

21 months agoBump Eglot version to 1.10
João Távora [Fri, 16 Dec 2022 09:23:21 +0000 (09:23 +0000)]
Bump Eglot version to 1.10

* lisp/progmodes/eglot.el (Version): Bump to 1.10
(Package-Requires): Bump required versions of jsonrpc and project.

21 months agoEglot: fix discrepant eglot-guess-contact/eglot-command-history
João Távora [Fri, 16 Dec 2022 09:29:32 +0000 (09:29 +0000)]
Eglot: fix discrepant eglot-guess-contact/eglot-command-history

Due to a typo, the defvar eglot--command-history wasn't actually used
in eglot-guess-contact as intended.  That function used a
single-dash-name version of the variable instead.

This worked fine, except that two variables were created instead of
one, and the one actually being used didn't have any docstring.

Rename the variable to eglot-command-history to fix this.  It's better
than renaming the reference in eglot-guess-contact which would lose
user's history for M-x eglot.

* lisp/progmodes/eglot.el (eglot-command-history): Rename from
eglot--command-history.

21 months agoAvoid recursive process filters in lisp/jsonrpc.el (bug#60088)
João Távora [Thu, 15 Dec 2022 15:26:13 +0000 (15:26 +0000)]
Avoid recursive process filters in lisp/jsonrpc.el (bug#60088)

jsonrpc.el may lose JSON-RPC messages because of recursive process
filters.  The problem happens in jsonrpc.el's jsonrpc--process-filter.

The code of the process filter didn't expect to be called recursively
and fails in that case.

But that can happen if the three conditions are verified.

1. the client code invoked by its jsonrpc--connection-receive inside
   the process filter callee immediately sends follow-up input to
   process within the same Lisp stack.  This is a common scenario,
   especially during LSP initialiation sequence used by Eglot, a
   jsonrpc.el client.

2. that follow-up message is large enough for process-send-string to
   send the input in bunches (output from processes can arrive in
   between bunches).

3. the process happens to have already some more output ready

The fix in this commit detects recursive invocations and immediately
re-schedules them as non-recursive calls to the
jsonrpc--process-filter (but started from timers).

* lisp/jsonrpc.el (jsonrpc--process-filter): Rework.
(Version): Bump to 1.0.16.

21 months ago; Fix merge errors
Stefan Kangas [Fri, 16 Dec 2022 07:47:27 +0000 (08:47 +0100)]
; Fix merge errors