1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-06 11:50:51 -08:00
Commit graph

165128 commits

Author SHA1 Message Date
Stefan Monnier
93005cd9dc with-display-message: Workaround for bug#63253
Running arbitrary ELisp code from an atimer is still dangerous,
at least because the regexp engine is not-reentrant, so let's patch up
the case we bumped into.  There are probably many other such holes :-(

* src/alloc.c (garbage_collection_inhibited): Make it non-static.

* src/xdisp.c (garbage_collection_inhibited): Declare it.
(set_message, clear_message): Use it as a proxy for "we're in
a dangerous context like within `probably_quit`".
2023-05-09 22:30:52 -04:00
Eli Zaretskii
6924c81a6d ; Don't use literal non-ASCII characters in Texinfo
* doc/emacs/mule.texi (Input Methods): Don't use non-ASCII
characters in Texinfo sources, where Texinfo provides an ASCII command
to insert it.
2023-05-09 12:06:32 +03:00
João Távora
f1675df3d0 Fido-mode: never shadow 'external' completion style
As explained in the manual (20.7.2 Fast minibuffer selection)
'fido-mode' and 'fido-vertical-mode' give priority the "flex"
completion style.

In fact, bug#62015 was recently fixed in commit because that priority
was not taking place correctly and some completions were missed.

However, an exception must be made for the 'external' completion
style.

That style, made available by the lisp/external-completion.el library,
is specifically designed to work with backends that provide only a
partial view of all completions.  If we allow 'flex' to step in front
of 'external' it could mean that 'flex' matches something and
'external' isn't triggered as it probably should.

To reproduce have the rust-mode ELPA package and the rust-analyzer LSP
server handy.  Then:

  emacs -Q -f package-initialize main.rs

Where main.rs is this content:

  fn foo1()    {} fn foo2()    {} fn foo3() {}
  fn foobar1() {} fn foobar2() {} fn foobar3() {}

The rust-analyzer server can be quickly configured to return only 3
workspace symbols max, so evaluate:

  (setq-default eglot-workspace-configuration
                '(:rust-analyzer
                    (:workspace (:symbol (:search (:limit 3))))))

Now start M-x eglot and M-x fido-vertical-mode and type C-u M-. to
find an arbitrary symbol in this one-file project.

Type 'f'.  You will see the three foo's are listed, correctly.

Now type '3'.   You will only see "foo3".

But that's wrong because "foobar3" was available, if only the server
had been asked for it.  This commit fixes the situation and no
completions are lost.

As an unfortunate side-effect of this commit, the fontification of
completions-common-part on the matches is lost, but that is not worse
than missing out on completions and there are better ways to recover
the fontification anyway (in external-completion.el).

See also:
https://github.com/joaotavora/eglot/discussions/1219#discussioncomment-5818336

* lisp/icomplete.el (icomplete--fido-ccd): Do not touch entries
with 'external in them.

Do not merge to master.
Backport:

(cherry picked from commit 0e8d8a7228)
2023-05-09 09:42:10 +01:00
Eli Zaretskii
56d2949d44 ; * lisp/leim/quail/persian.el: Fix a typo in last commit. 2023-05-09 08:34:43 +03:00
Eli Zaretskii
d94ea9efca Avoid crashes in --without-all build trying to scale non-ASCII char
* src/fontset.c (face_for_char): Display a non-ASCII character as
glyphless if the ASCII face has no fontset.  (Bug#63283)
2023-05-09 08:20:57 +03:00
Eli Zaretskii
387ddc0ccc Improve instructions for dealing with Emacs crashes
* doc/emacs/trouble.texi (Crashing): Show the variant of the
'addr2line' command for MS-Windows.
2023-05-09 07:52:04 +03:00
Mohsen Banan
e6b4784a37 Improved transliterations + improved bidi insertion support for Farsi
* lisp/leim/quail/persian.el ("farsi-transliterate-banan"):
Improve and add transliterations.  (Bug#63361)
2023-05-08 15:27:37 +03:00
Alan Third
c1363a04bb Fix crash when creating a child frame in NS (bug#63107)
* src/nsterm.m ([EmacsView initFrameFromEmacs:]): Have a second go at
creating the toolbar.
([EmacsWindow createToolbar:]): If there is already a toolbar or the
EmacsView's layer is not an EmacsLayer, then do nothing.

(cherry picked from commit 3adc1e7f37)
2023-05-08 09:49:03 +01:00
Andrew G Cohen
7d6855c9ab Fix outgoing mime type regression (Bug#62815)
* lisp/net/mailcap.el (mailcap-mime-extensions,
mailcap-parse-mimetype-file, mailcap-mime-types): Don't regexp-quote
mimetypes in a context where they should be strings.
(mailcap--regexp-quote-type): Remove.

(cherry picked from commit 605414d018)
2023-05-08 08:28:52 +08:00
Nicholas Vollmer
e920dd2b6f define-minor-mode: sanitize mode function messages
* emacs-lisp/easy-mmode.el (define-minor-mode): Ensure mode's
pretty name is not interprted as a message formatting string,
e.g., if the mode name contains a '%'.  (Bug#63343)
2023-05-07 16:37:24 +03:00
Eli Zaretskii
910a7b30df Fix beginning/end-of-defun with tree-sitter
* lisp/treesit.el (treesit-beginning-of-defun)
(treesit-end-of-defun): Push mark, as other beginning/end-of-defun
functions do.
2023-05-07 09:13:10 +03:00
Theodor Thornhill
e205f68717 Fix indent for enums in csharp-mode
* lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax): Check for
keywords containing 'enum' on the line before an opening bracket, and
make it behave like a class-open token.
2023-05-06 21:15:21 +02:00
Philip Kaludercic
dfde902f3b ; Expand 'package-vc-install' documentation
* lisp/emacs-lisp/package-vc.el (package-vc-install): Go into further
detail on the handling of the REV argument.  (Bug#60418)
2023-05-06 20:51:49 +02:00
Eli Zaretskii
7133784303 Teach c-ts-mode about the 'restrict' keyword
* lisp/progmodes/c-ts-mode.el (c-ts-mode--keywords): Add
"restrict" and "_Atomic" type qualifiers.  (Bug#63323)
2023-05-06 15:15:42 +03:00
Eli Zaretskii
15e06260ae * lisp/x-dnd.el (x-dnd-after-move-frame): Skip dead frames. (Bug#63312) 2023-05-06 14:16:36 +03:00
Shynur
a081b6625b ; Updated Elispref-Manual: `nil' cannot be defun'ed
* doc/lispref/functions.texi (Function Cells): Fix inaccuracy.
(Bug#62746)
2023-05-06 12:46:23 +03:00
Eli Zaretskii
97b818a4fb Fix doc strings of 'mark-sexp' and 'mark-word'
* lisp/emacs-lisp/lisp.el (mark-sexp):
* lisp/simple.el (mark-word): Clarify the doc strings in various
usage cases.  (Bug#62892)
2023-05-06 11:47:31 +03:00
Eli Zaretskii
6f910ad932 ; * etc/EGLOT-NEWS: Fix misspellings. 2023-05-06 09:45:05 +03:00
Eli Zaretskii
9b775ddc05 ; * etc/EGLOT-NEWS: Fix wording of last change. 2023-05-06 09:38:20 +03:00
Dmitry Gutov
79a886ba36 (package-upgrade): Don't remove the package from 'package-selected-packages'
* lisp/emacs-lisp/package.el (package-upgrade):
Don't remove the package from 'package-selected-packages', fixing
the problem described in https://debbugs.gnu.org/62720#718.
2023-05-06 03:32:27 +03:00
João Távora
c0ab4e9ca9 Eglot: re-rename eglot-upgrade to eglot-upgrade-eglot
* doc/misc/eglot.texi (Getting the latest version): Mention
eglot-upgrade-eglot.

* etc/EGLOT-NEWS: Mention eglot-upgrade-eglot.

* lisp/progmodes/eglot.el (eglot-upgrade-eglot): Rename from
eglot-update.
(eglot-update): New compatibility alias.
2023-05-05 14:58:17 +01:00
Eli Zaretskii
b4e90070f9 Fix arguments of xml.c functions as displayed in Help buffers
* lisp/subr.el (libxml-parse-xml-region)
(libxml-parse-html-region): Adjust advertised-calling-convention
to the changes in commit cc33c6cf3a.  (Bug#63291)
2023-05-05 10:08:59 +03:00
Po Lu
b1bda8228e More fixes for NetBSD/vax
* src/sysdep.c (init_signals) [__vax__]: Treat SIGILL
as a floating point error on VAXen.
Otherwise, (log 0.0) crashes Emacs.
2023-05-05 14:15:23 +08:00
Cyril Arnould
a2d4cd06f4 Improve VHDL mode highlighting
* lisp/progmodes/vhdl-mode.el (vhdl-compiler-alist): Differentiate
between ModelSim errors, warnings, and notes when highlighting
them.  Add a new entry for Xilinx Vivado.  (Bug#63251)

Copyright-paperwork-exempt: yes
2023-05-05 08:45:29 +03:00
Po Lu
2f3a514b6d Clarify documentation wrt floating point division by zero and NaN
* doc/lispref/numbers.texi (Float Basics)
(Arithmetic Operations): Document what happens on a VAX.
Tested on NetBSD 9.3.
2023-05-04 22:09:14 +08:00
Robert Pluim
94e984e670 Make loaddefs-generate slightly more tolerant
There are packages in the wild, such as vlf-20191126.2250, which have
entries that are not terminated by three ';', but by two.  Tolerate
such entries.

* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Search for two
';' as a delimiter, not three.  (Bug#63236)
2023-05-04 16:03:13 +02:00
Eli Zaretskii
aba41d2c4b ; Minor doc cleanups in go-ts-mode.el
* lisp/progmodes/go-ts-mode.el (go-ts-mode--iota-query-supported-p)
(go-ts-mode--other-type-node-p, go-mod-ts-mode--in-directive-p):
Doc fixes.
2023-05-04 16:37:39 +03:00
Basil L. Contovounesios
b42ccb2e5c ; Minor grammar fix in treesit manual. 2023-05-04 12:16:57 +02:00
Philip Kaludercic
ab44c8a6f9 Fix order of rcirc-connect arguments
* lisp/net/rcirc.el (rcirc): Pass SERVER-ALIAS before CLIENT-CERT.
(rcirc-connect): Take SERVER-ALIAS before CLIENT-CERT.

This is necessary for the 'rcirc-reconnect' trick to work that applies
the contents of 'rcirc-connection-info' to 'rcirc-connect', otherwise
the server alias gets lost as certfp information.

This addresses a change made in b79cb838a4.
2023-05-04 10:06:32 +02:00
Thuna
8eb6e33691 Fix rcirc messages printing in the wrong place
* lisp/net/rcirc.el (rcirc-send-message): Print the message before
sending it to the server.
(rcirc-print): Get the time with subsecond precision.
* lisp/calendar/parse-time.el (parse-time-string
parse-iso8601-time-string): Accept optional second FORM arguments,
with the same meaning as in `decode-time'.  Mention as such in the
docstring.  (Bug#59501)

Copyright-paperwork-exempt: yes
2023-05-04 10:06:32 +02:00
Philip Kaludercic
2901a3443c Prevent unnecessary modifications of 'package-vc-selected-packages'
* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Handle the
structure of correctly, not as an alist but a list of alists.
(package-vc--archive-spec-alist, package-vc--archive-spec-alists,
package-vc--desc->spec, package-vc--read-archive-data,
package-vc--download-and-read-archives, package-vc--unpack): Rename
'package-vc--archive-spec-alist' to 'package-vc--archive-spec-alists'.
2023-05-04 10:06:32 +02:00
Dmitry Gutov
eaad302bd6 Rename eglot-update to eglot-upgrade
* doc/misc/eglot.texi (Getting the latest version):
Update the reference.

* lisp/progmodes/eglot.el (eglot-upgrade): Rename from
'eglot-update', as discussed on emacs-devel, in line with
'package-upgrade'.
2023-05-04 01:39:15 +03:00
Randy Taylor
eaf25b9c6a go-ts-mode: Use iota query only if supported (Bug#63086)
iota query support was added on January 5, 2022.  To support older
versions of the tree-sitter-go grammar (like the latest tagged version,
v0.19.1, which was released on March 3, 2021), check if the query is
supported before trying to use it.

* lisp/progmodes/go-ts-mode.el (go-ts-mode--iota-query-supported-p): New
function.
(go-ts-mode--font-lock-settings): Use it.
2023-05-04 00:56:19 +03:00
Dmitry Gutov
cc090294d7 (rng-complete-tag): Add the (ignored) argument to the :company-kind function
* lisp/nxml/rng-nxml.el (rng-complete-tag): Add the (ignored)
argument to the :company-kind function.  Fixes the "Wrong number
of arguments" error reported at
https://github.com/company-mode/company-mode/issues/1386.
2023-05-03 23:58:27 +03:00
Jonas Bernoulli
21ec6c1d5c
Update to Transient v0.3.7-219-g3ded15b 2023-05-03 15:02:31 +02:00
Po Lu
8d5aa8df4a Fix inserting selection data into Mozilla programs
* lisp/select.el (xselect-convert-to-text-uri-list): Don't
return any value when converting non-DND selections to this
drag-and-drop target.

Reported by Tobias Bading <tbading@web.de>.
2023-05-03 20:02:01 +08:00
Thuna
57562c3fd0 Recognize defstruct slot names in various eieio functions
* lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Set
each slot's name's 'slot-name' property so that
'eieio--known-slot-name-p' can recognize them.  (Bug#62959)

Copyright-paperwork-exempt: yes
2023-05-03 14:44:59 +03:00
Thuna
b93eb68cc3 Use 'calendar-buffer' instead of fixed string
* test/lisp/calendar/cal-julian-tests.el (with-cal-julian-test):
Use 'calendar-buffer' instead of a literal fixed name.
(Bug#61546)

Copyright-paperwork-exempt: yes
2023-05-02 21:02:19 +03:00
Spencer Baugh
e338a8ac41 Handle point not at EOB in minibuffer-choose-completion
Without this change, only the minibuffer contents before point
are cleared when a completion is chosen, which results in stray
text when point is in the middle of the minibuffer.

After this change, we heuristically decide either to clear the
whole buffer or only part of it, taking into account the
location of point.

This is a backport for the Emacs 29 release branch of a simpler
fix in minibuffer-completion-help.

* lisp/minibuffer.el (minibuffer-next-completion):
(minibuffer-choose-completion):
Recalculate completion-base-affixes with point.  (Bug#62700)
2023-05-02 20:54:25 +03:00
Spencer Baugh
fceaf230b0 Note that Emacs pauses when handling sentinel errors
Noting this behavior and variable here makes it easier to
understand the behavior of Emacs when a sentinel has an error.

* doc/lispref/processes.texi (Filter Functions): Note that Emacs
pauses when handling sentinel errors.
(Sentinels): Note that Emacs pauses when handling sentinel errors.
(Bug#63096)
2023-05-02 20:50:16 +03:00
Eli Zaretskii
46392c1623 Fix vertical-motion when tab-line is displayed in a window
* src/xdisp.c (try_window, try_window_id): Account for tab-line,
if present, when converting scroll-margin at the top of the window
to vertical pixel coordinate.  (Bug#63201)
2023-05-01 15:27:21 +03:00
Kyle Meyer
0e52beeace Update to Org 9.6.5-3-g2993f4 2023-04-30 19:36:21 -04:00
Philip Kaludercic
dd21003878 Prevent generating empty autoload files
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Remove
optimisation that would mistakenly discard old loaddefs in case a file
was not modified by EXTRA-DATA is non-nil.  (Bug#62734)
2023-04-30 18:42:58 +02:00
Stefan Monnier
2bcf11d0ef * lisp/org/org-macs.el (org--inhibit-version-check): Fix docstring
Also, add an explanation to the docstring for what the version
check is about.
2023-04-30 09:41:13 -04:00
Eli Zaretskii
ca43435816 Fix redisplay of mode line after its format changes from nil
* src/dispnew.c (update_window): Make sure a mode-line's row of
the current glyph matrix is disabled when the mode line is not
being displayed.  (Bug#63186)
2023-04-30 16:24:05 +03:00
Michael Albinus
610a7657e0 Fix c-ts-mode--emacs-c-range-query
* lisp/progmodes/c-ts-mode.el (c-ts-mode--emacs-c-range-query):
Check for (treesit-available-p).
2023-04-30 12:11:00 +02:00
Eli Zaretskii
7f94558b77 Improve documentation of warnings
* doc/lispref/control.texi (Errors):
* doc/lispref/os.texi (Startup Summary):
* doc/lispref/display.texi (Warning Basics, Warning Variables)
(Warning Options, Delayed Warnings): Improve documentation of
warnings.  Document the automatic delaying of warnings during
startup.  (Bug#63181)
2023-04-30 11:07:36 +03:00
Eli Zaretskii
5a3f0e2c55 ; Doc fix in c-ts-mode.el
* lisp/progmodes/c-ts-mode.el (c-ts-mode--fontify-for-each-tail):
Doc fix.
2023-04-30 08:21:38 +03:00
Yuan Fu
21361d0563
Fix FOR_EACH_TAIL fontification (bug#62951)
Fix the fontification inconsistency between different FOR_EACH_TAIL's.
See the comment for more explanation.  Also enable the emacs-devel
feature automatically when c-ts-mode-emacs-sources-support is on.

* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--for-each-tail-regexp): Move up.
(c-ts-mode--font-lock-settings): New font-lock rule for FOR_EACH_TAIL.
(c-ts-mode--fontify-for-each-tail): New function.
(c-ts-mode): Automatically enable emacs-devel feature.
2023-04-29 15:51:09 -07:00
Theodor Thornhill
d0df3404fd ; * etc/EGLOT-NEWS: chsharp-le -> csharp-ls 2023-04-29 19:59:49 +02:00