Commit graph

165385 commits

Author SHA1 Message Date
Manuel Giraud
26740f3046 Use a face for DocView SVG
* lisp/doc-view.el (doc-view-svg-face): New face for SVG images.
(doc-view-insert-image): Use it.  (Bug#61816)
2023-03-09 12:04:52 +02:00
Manuel Giraud
54949f0669 Fix out of sync counters in image-dired
* lisp/image/image-dired.el (image-dired-delete-char): Update
thumbnails counter upon deletion.
(image-dired--update-header-line): Compute thumbnail index
dynamically.
(image-dired-insert-thumbnail): Remove now unused image-number
text property.  (Bug#61922)
2023-03-09 12:01:38 +02:00
Stefan Kangas
5056b8e589 Merge from origin/emacs-29
7e1012765c Fix libwebp check for some webp installations
c2ca009da4 Avoid potential infloop
34c14430e9 Don't misindent 'else:' after 'if re.match:' in Python
8a2a554192 * Make sure `default-directory' exists before spawning pr...
1862e7eb7e Fix sed expression in install-etc make target
c8ec0017cb Avoid using bash in the emacsclient desktop file
a588937094 Fix documentation of the 'line-height' text property
971ded31c4 Add 'declare' specs to with- and without-restriction
2023-03-09 06:30:23 +01:00
Po Lu
7e1012765c Fix libwebp check for some webp installations
* configure.ac: Look for WebPGetInfo; if it is not there, look
for libwebpdecoder as well.  (bug#61988)
2023-03-09 08:53:24 +08:00
Sean Whitton
da4f1fa550 server-eval-at: Signal more specific condition on unreadable result
* lisp/server.el (server-return-invalid-read-syntax): New error
signal.
(server-eval-at): Re-signal invalid-read-syntax as
server-return-invalid-read-syntax (bug#61658).
2023-03-08 17:08:48 -07:00
Dmitry Gutov
c2ca009da4 Avoid potential infloop
* lisp/progmodes/python.el
(python-info-dedenter-opening-block-positions):
Avoid potential infloop (bug#62031).
2023-03-09 00:43:31 +02:00
Jim Porter
38427494d5 Fix Pcompletion of "tar" when using unrecognized arguments
Previously, arguments to tar like "--warning=no-timestamp" would cause
Pcompletion to hang (bug#58921).

This simplifies the logic flow by moving all the cases for "--"
arguments inside the THEN form of '(if (pcomplete-match "^--" 0)', and
for all "-" arguments inside the ELSE form.

* lisp/pcmpl-gnu.el (pcmpl-gnu--tar-long-options): New variable.
(pcomplete/tar): Properly handle completion of arguments that look
like "--ARG=", even if they're not recognized by this function.
2023-03-08 13:36:09 -08:00
Dmitry Gutov
34c14430e9 Don't misindent 'else:' after 'if re.match:' in Python
* lisp/progmodes/python.el
(python-info-dedenter-opening-block-positions): Check that the
supposed block start is not a method call (bug#62031).

* test/lisp/progmodes/python-tests.el (python-indent-after-re-match):
New test.

Co-authored-by: Lele Gaifax <lele@metapensiero.it>
2023-03-08 22:48:33 +02:00
Andrea Corallo
8a2a554192 * Make sure `default-directory' exists before spawning processes (bug#62004)
* lisp/emacs-lisp/comp.el (comp-final, comp-run-async-workers): Bind
`default-directory' to `invocation-directory'.
2023-03-08 21:16:12 +01:00
Stefan Monnier
2e73dec15f gud.el: Fix bug#62041
Add a new `gud-shared-mode-map` where we put the bindings
shared between `gud-minor-mode-map` and `gud-mode-map`.

* lisp/progmodes/gud.el (gud-shared-mode-map): New keymap.
(gud-mode-map, gud-minor-mode-map): Use it as parent.
(gud-menu-map): Put the menu in that new keymap.
(gud-speedbar-buttons, gdb-script-font-lock-syntactic-face)
(gdb-script-indent-line): Skip obsolete face variables.
2023-03-08 15:08:00 -05:00
Ulrich Müller
1862e7eb7e Fix sed expression in install-etc make target
* Makefile.in (install-etc): Fix sed expression for emacsclient
desktop files.  (Bug#62045)
2023-03-08 19:48:33 +01:00
Ulrich Müller
c8ec0017cb Avoid using bash in the emacsclient desktop file
* etc/emacsclient-mail.desktop (Exec): Use sh and sed instead
of bash, because the latter may not be available everywhere.
2023-03-08 19:37:27 +01:00
Eli Zaretskii
a588937094 Fix documentation of the 'line-height' text property
* doc/lispref/display.texi (Line Height): More accurate
documentation of the value t of 'line-height' text property.
(Bug#62048)
2023-03-08 19:29:33 +02:00
Gregory Heytings
971ded31c4 Add 'declare' specs to with- and without-restriction
* lisp/subr.el (with-restriction):
(without-restriction): Add 'declare' specs.
2023-03-08 11:00:40 +01:00
Stefan Kangas
5ff018524c Merge from origin/emacs-29
f9b7913656 Fix empty line indentation in c-ts-mode (bug#61997)
90504f9d89 Fix tree-sitter indent preset prev-line (bug#61998)
ed3bab3cc7 Revert 'forward-sentence-default-function' to return poin...
bfe62b1041 ; * etc/NEWS: Fix typos.
3c1693d08b Fix Elisp code injection vulnerability in emacsclient-mai...
ab417c8a6e Fix problem with debuginfod queries in "M-x gdb"

# Conflicts:
#	etc/NEWS
2023-03-08 06:30:18 +01:00
Yuan Fu
f9b7913656
Fix empty line indentation in c-ts-mode (bug#61997)
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--indent-styles): Handle the empty line case.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test.

* doc/lispref/modes.texi (Parser-based Indentation): Update manual.
* lisp/treesit.el (treesit-simple-indent-presets): Support null as
a value for NODE-TYPE in the 'match' matcher.
2023-03-07 16:42:44 -08:00
Yuan Fu
90504f9d89
Fix tree-sitter indent preset prev-line (bug#61998)
* lisp/treesit.el (treesit-simple-indent-presets): Fix return value.
2023-03-07 16:27:24 -08:00
Manuel Giraud
ed3bab3cc7 Revert 'forward-sentence-default-function' to return point (bug#62027)
* lisp/textmodes/paragraphs.el
(forward-sentence-default-function): Revert to return the
position of point.
(count-sentences): Adapt to this change.
2023-03-07 21:31:15 +02:00
Michael Albinus
bfe62b1041 ; * etc/NEWS: Fix typos. 2023-03-07 18:50:44 +01:00
Alan Mackenzie
4e8b50ec57 * test/lisp/subr-tests.el (subr--safe-copy-tree): New tests for safe-copy-tree 2023-03-07 17:38:20 +00:00
Ulrich Müller
3c1693d08b Fix Elisp code injection vulnerability in emacsclient-mail.desktop
A crafted mailto URI could contain unescaped double-quote
characters, allowing injection of Elisp code.  Therefore, any
'\' and '"' characters are replaced by '\\' and '\"', using Bash
pattern substitution (which is not available in the POSIX shell).

We want to pass literal 'u=${1//\\/\\\\}; u=${u//\"/\\\"};' in the
bash -c command, but in the desktop entry '"', '$', and '\' must
be escaped as '\\"', '\\$', and '\\\\', respectively (backslashes
are expanded twice, see the Desktop Entry Specification).

Reported by Gabriel Corona <gabriel.corona@free.fr>.

* etc/emacsclient-mail.desktop (Exec): Escape backslash and
double-quote characters.
2023-03-07 18:25:37 +01:00
Alan Mackenzie
29f65920fb safe-copy-tree. Correct mistakes from earlier patch.
* lisp/emacs-lisp/bytecomp.el (compile-defun): Remove unintended change.

* lisp/subr.el (safe-copy-tree--seen): Correct grammatical error in doc
string.
(safe-copy-tree): Delete hash table at end of function.

* doc/lispref/lists.texi (Building Lists): Add an "@end defun" line.
2023-03-07 15:26:20 +00:00
Eli Zaretskii
ab417c8a6e Fix problem with debuginfod queries in "M-x gdb"
* lisp/progmodes/gdb-mi.el (gdb-debuginfod-enable-setting): New
defcustom.
(gdb-debuginfod-message): New function.
(gdb-init-1): Initialize gdb-debuginfod-enable.  Ask the user
about debuginfod queries and display any error messages.
(Bug#61973)

* etc/NEWS: Announce the change.
2023-03-07 14:39:27 +02:00
Alan Mackenzie
fa83b23611 eval-and-compile: Strip symbol positions for eval but not for compile.
This fixes bug #61962.

* lisp/subr.el (safe-copy-tree): New function.

* lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment): Amend
the entry for eval-and-compile to use safe-copy-tree and
byte-run-strip-symbol-positions for the eval part.

* doc/lispref/lists.texi (Building Lists): Document safe-copy-tree.

* etc/NEWS: Note the new function safe-copy-tree.
2023-03-07 08:00:25 +00:00
Stefan Kangas
8179555730 Merge from origin/emacs-29
bd07cec844 Fix regression in Fido mode (bug#62015)
0e3c7ac13d * Fix `emacs-lisp-native-compile-and-load' for (bug#61917)
4a7e657389 * lisp/emacs-lisp/comp.el (comp-prettyformat-insn): Fix (...
8a8a994cfa Revert "Fix configuration of webp libraries"
de4277af00 Fix configuration of webp libraries
2023-03-07 06:30:10 +01:00
João Távora
bd07cec844 Fix regression in Fido mode (bug#62015)
To understand the regression consider this recipe where the 'fo'
pattern is typed by the user in the last step.

   emacs -Q
   C-x b foo RET
   C-x b afoo RET
   C-x b *scratch* RET
   M-x fido-mode RET
   C-x b fo

This used to offer both 'foo' and 'afoo' as candidates but now only
offered 'foo'.  This is because the pattern 'fo' matches 'foo', but
not 'afoo' with 'basic' completion style.

Fido mode, however, prioritizes 'flex' completion style, and that is
not happening here as it used to.

This was introduced in this commit

     commit bf81df86e5
     Author: João Távora <joaotavora@gmail.com>
     Date:   Wed Dec 7 10:43:59 2022 +0000

         Don't override completion-category-defaults in fido-mode

I took away the nil setting of 'completion-category-defaults; in Fido
mode's minibuffer. It seemed generally the correct thing to do, and
was done mainly because Eglot added its style preferences to that
variable instead of completion-category-overrides directly, which is a
nono.  So, to be able use the Fido UI with Eglot successfully,
'completion-category-defaults' should stay untouched.  Or so I
thought.

However, I failed to notice that, for most categories, the default
value of 'completion-category-defaults' prioritizes the 'basic'
completion style.

For example, in the 'buffer' category, the default value has the
styles list '(basic substring)'.  This means that if a pattern matches
accoring to the 'basic' style, 'substring' will not be tried.  And
neither will 'completion-styles' which in Fido mode's case happens to
be 'flex'.

The solution in this commit is to craft a value for completion
category defaults that is just like the default one, but prioritizes
'flex' completion for every category.

* lisp/icomplete.el (icomplete--fido-ccd): New helper.
(icomplete--fido-mode-setup): Use it.
2023-03-06 22:58:11 +00:00
Andrea Corallo
0e3c7ac13d * Fix `emacs-lisp-native-compile-and-load' for (bug#61917)
* lisp/progmodes/elisp-mode.el (emacs-lisp-native-compile-and-load):
Don't load if no compialtion happened.
2023-03-06 17:29:36 +01:00
Andrea Corallo
4a7e657389 * lisp/emacs-lisp/comp.el (comp-prettyformat-insn): Fix (bug#61917) 2023-03-06 17:23:15 +01:00
Eli Zaretskii
8a8a994cfa Revert "Fix configuration of webp libraries"
This reverts commit de4277af00.
It breaks WebP support at least on my system.
There's no reason to require libwebpdecoder library to be
installed, since we don't use the functions from it, at least
not in libwebp 1.2.1.
2023-03-06 17:31:57 +02:00
Vibhav Pant
1e5393a57a
Don't modify interactive closures destructively (Bug#60974).
* lisp/emacs-lisp/cconv.el (cconv-convert): When form is an
interactive lambda form, don't destructively modify it, as it might be
a constant literal. Instead, create a new list with the relevant
place(s) changed.

* test/lisp/emacs-lisp/cconv-tests.el
(cconv-tests-interactive-form-modify-bug60974): New test.
2023-03-06 20:28:20 +05:30
Po Lu
de4277af00 Fix configuration of webp libraries
* configure.ac: Link with libwebpdecoder along with
libwebpdemux.  (bug#61988)
2023-03-06 21:42:29 +08:00
Michael Albinus
186643ea8a Add tramp-use-ssh-controlmaster-options value `suppress'.
* doc/misc/tramp.texi (Ssh setup):
Explain tramp-use-ssh-controlmaster-options value `suppress'.
(Remote processes): Add reference to "Using ssh connection sharing".

* etc/NEWS: Extend 'tramp-use-ssh-controlmaster-options' values.
;; Fix typos.

* lisp/net/tramp-sh.el (tramp-use-ssh-controlmaster-options):
Allow new value `suppress'.
(tramp-ssh-option-exists-p): New defun.
(tramp-ssh-controlmaster-options): Implement `suppress' actions.
2023-03-06 13:35:49 +01:00
Stefan Kangas
aad617870b Merge from origin/emacs-29
1c67e4f895 Fix c-ts-mode indentation
d724d7d678 Fix c-ts-mode indentation
7292b24c80 Fix c-ts-mode indentation
75cdc1afbe ; Change font-lock-variable-name-face to font-lock-variab...
b1b3af5b90 Update to Org 9.6.1-40-g3d817c
80e1037df4 Add string-interpolation feature to bash-ts-mode
5b8e0b3154 Fix tramp-sh-handle-insert-directory
2258ed01f4 ; Minor fix of last change
9c18af0cfa * Warn when certain primitives are redefined (bug#61880)
5af695c747 ; * lib-src/etags.c (print_help): Fix indentation.
2023-03-06 06:30:13 +01:00
Yuan Fu
1c67e4f895
Fix c-ts-mode indentation
Mentioned in bug#61893.

* lisp/progmodes/c-ts-mode.el (c-ts-mode--anchor-prev-sibling): Handle
"#elif" and "#else".
* test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts: Add an
"#elif" to the test.
2023-03-05 15:22:36 -08:00
Yuan Fu
d724d7d678
Fix c-ts-mode indentation
Mentioned in bug#61893, although not the subject of it.

* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--anchor-prev-sibling): Fix the child index for preproc_else
and preproc_elif case.
* test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts:
New test.
2023-03-05 15:07:58 -08:00
Yuan Fu
7292b24c80
Fix c-ts-mode indentation
Not the subject of it, but mentioned in bug#61893.

* lisp/progmodes/c-ts-mode.el (c-ts-mode--anchor-prev-sibling): Skip
the sibling if it doesn't start on it's own line.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test.
2023-03-05 15:01:54 -08:00
Yuan Fu
75cdc1afbe
; Change font-lock-variable-name-face to font-lock-variable-use-face
* lisp/progmodes/sh-script.el:
(sh-mode--treesit-settings): Change font-lock-variable-name-face to
font-lock-variable-use-face.
2023-03-05 14:46:18 -08:00
Kyle Meyer
b1b3af5b90 Update to Org 9.6.1-40-g3d817c 2023-03-05 17:34:13 -05:00
Yuan Fu
80e1037df4
Add string-interpolation feature to bash-ts-mode
* lisp/progmodes/sh-script.el:
(bash-ts-mode): Add string-interpolation feature.
(sh-mode--treesit-settings): Add rule for string-interpolation feature.
2023-03-05 14:17:57 -08:00
Michael Albinus
5b8e0b3154 Fix tramp-sh-handle-insert-directory
* lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): Remove also
//DIRED-OPTIONS// line when there is no //DIRED// line.
2023-03-05 17:31:26 +01:00
Eli Zaretskii
2258ed01f4 ; Minor fix of last change
* lisp/emacs-lisp/comp.el (comp-subr-trampoline-install): Fix
wording.  (Bug#61880)
2023-03-05 12:24:39 +02:00
Andrea Corallo
9c18af0cfa * Warn when certain primitives are redefined (bug#61880)
* lisp/emacs-lisp/comp.el (comp-warn-primitives): New constant.
	(comp-subr-trampoline-install): Warn when a sensitive primitive is
	being redefined.
2023-03-05 11:06:37 +01:00
Eli Zaretskii
5af695c747 ; * lib-src/etags.c (print_help): Fix indentation. 2023-03-05 08:43:03 +02:00
Stefan Kangas
6fb8a4dff7 Merge from origin/emacs-29
836044f329 Fix c-ts-mode preproc directive indentation
64980a59b6 ; * lisp/files.el (hack-local-variables): Fix typo in the...
a7cd125d49 More robustly unspoof HOME in Eglot tests (bug#61637)
6c66dbd02c Turn on Eglot inlay hints by default
246f5b541c Update ts modes missed in 4c16fd3a51 to use column-0
0bfba49ca7 Robustify Eglot for "transient" projects
ea5fd375bb Fix documentation of 'normal-mode' in buffers that don't ...
4c16fd3a51 Change tree-sitter indent anchor 'point-min' to 'column-0'
f47b393015 Fix go-ts-mode multi-line string indentation (bug#61923)
e0bf2da3db ; More accurate doc strings for 'window-at' and 'window-a...
2023-03-05 06:30:15 +01:00
Yuan Fu
836044f329
Fix c-ts-mode preproc directive indentation
Mentioned in bug#61893, although not the subject of that report.  This
change fixes indentation for nested directives.  For example, when the
directive involves elif and the like, the elif is nested in the if
directive, so simply using grand-parent and great-grand-parent for
anchor is insufficient, because the nesting can grow arbitrarily.

The test added also covers the last preproc fix.

* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--standalone-parent-skip-preproc): New function.
(c-ts-mode--indent-styles): New rules.
* test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts: New test.
2023-03-04 15:03:12 -08:00
Eli Zaretskii
64980a59b6 ; * lisp/files.el (hack-local-variables): Fix typo in the doc string. 2023-03-04 22:03:14 +02:00
João Távora
a7cd125d49 More robustly unspoof HOME in Eglot tests (bug#61637)
A fair number of LSP servers allow user-local installations instead of
system wide installations.  Emacs's technique of spoofing the HOME env
var to some non-existent or non-home directory during 'make check'
breaks these tests.  That's because the executables are still found by
executable-find, but their invocation will rarely be successful as
HOME isn't what they expect it to be.

Eglot tests already had a technique for dealing with this,
"unspoffing" HOME just for the invocations of LSP server but it
stopped working a while back.  So make it more robust.

Eventually, we'll want to decide wether these local servers should be
considered in 'make check' runs at all, or whether there is a way to
use them with a spoofed HOME.

* test/lisp/progmodes/eglot-tests.el (eglot--call-with-fixture):
More robustly unspoof HOME.
2023-03-04 19:15:48 +00:00
João Távora
6c66dbd02c Turn on Eglot inlay hints by default
This is like any other server-provided feature, and may be turned off
client-side by setting eglot-ignored-server-capabilities like

   (add-to-list 'eglot-ignored-server-capabilities :inlayHintProvider)

* lisp/progmodes/eglot.el (eglot--maybe-activate-editing-mode):
Activate eglot-inlay-hints-mode.
(eglot-inlay-hints-mode): Instead of warning about missing
:inlayHintProvider, turn off eglot-inlay-hints-mode.
2023-03-04 19:15:48 +00:00
Dmitry Gutov
246f5b541c Update ts modes missed in 4c16fd3a51 to use column-0
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
* lisp/progmodes/go-ts-mode.el (go-ts-mode--indent-rules):
Change point-min anchor to column-0.
2023-03-04 19:45:39 +02:00
Eli Zaretskii
4b3ccf3092 Unbreak the unexec build
* src/alloc.c (BLOCK_ALIGN) [HAVE_UNEXEC]: Reset back to 1024.
(Bug#61960)
2023-03-04 17:01:16 +02:00