[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 0c6311386a1 3/5: Merge from origin/emacs-29
From: |
Dmitry Gutov |
Subject: |
master 0c6311386a1 3/5: Merge from origin/emacs-29 |
Date: |
Fri, 5 May 2023 21:00:31 -0400 (EDT) |
branch: master
commit 0c6311386a12560c6578ffe50996c1f2c841ddfe
Merge: 3baab6c432b 79a886ba368
Author: Dmitry Gutov <dmitry@gutov.dev>
Commit: Dmitry Gutov <dmitry@gutov.dev>
Merge from origin/emacs-29
79a886ba368 (package-upgrade): Don't remove the package from 'package...
c0ab4e9ca93 Eglot: re-rename eglot-upgrade to eglot-upgrade-eglot
b4e90070f96 Fix arguments of xml.c functions as displayed in Help buf...
b1bda8228e5 More fixes for NetBSD/vax
a2d4cd06f45 Improve VHDL mode highlighting
2f3a514b6db Clarify documentation wrt floating point division by zero...
94e984e6700 Make loaddefs-generate slightly more tolerant
aba41d2c4bb ; Minor doc cleanups in go-ts-mode.el
b42ccb2e5c1 ; Minor grammar fix in treesit manual.
ab44c8a6f9d Fix order of rcirc-connect arguments
8eb6e33691d Fix rcirc messages printing in the wrong place
2901a3443c7 Prevent unnecessary modifications of 'package-vc-selected...
eaad302bd6f Rename eglot-update to eglot-upgrade
eaf25b9c6ae go-ts-mode: Use iota query only if supported (Bug#63086)
cc090294d77 (rng-complete-tag): Add the (ignored) argument to the :co...
21ec6c1d5cc Update to Transient v0.3.7-219-g3ded15b
8d5aa8df4ad Fix inserting selection data into Mozilla programs
57562c3fd0a Recognize defstruct slot names in various eieio functions
b93eb68cc30 Use 'calendar-buffer' instead of fixed string
# Conflicts:
# etc/EGLOT-NEWS
---
doc/lispref/modes.texi | 2 +-
doc/lispref/numbers.texi | 39 ++++++++++++++++++++++------------
doc/misc/eglot.texi | 4 ++--
etc/EGLOT-NEWS | 10 +++++++++
lisp/calendar/parse-time.el | 16 ++++++++------
lisp/emacs-lisp/cl-preloaded.el | 1 +
lisp/emacs-lisp/loaddefs-gen.el | 7 ++++--
lisp/emacs-lisp/package-vc.el | 17 ++++++++-------
lisp/emacs-lisp/package.el | 2 +-
lisp/net/rcirc.el | 14 ++++++------
lisp/nxml/rng-nxml.el | 2 +-
lisp/progmodes/eglot.el | 5 ++++-
lisp/progmodes/go-ts-mode.el | 13 +++++++++---
lisp/progmodes/vhdl-mode.el | 9 +++++++-
lisp/select.el | 31 +++++++++++++++------------
lisp/subr.el | 4 ++--
lisp/transient.el | 3 ++-
src/sysdep.c | 7 ++++++
test/lisp/calendar/cal-julian-tests.el | 2 +-
19 files changed, 125 insertions(+), 63 deletions(-)
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index fd497d14f63..f1d0c41dfe4 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -4155,7 +4155,7 @@ Other keywords are optional:
@end multitable
Lisp programs mark patterns in @var{query} with capture names (names
-that starts with @code{@@}), and tree-sitter will return matched nodes
+that start with @code{@@}), and tree-sitter will return matched nodes
tagged with those same capture names. For the purpose of
fontification, capture names in @var{query} should be face names like
@code{font-lock-keyword-face}. The captured node will be fontified
diff --git a/doc/lispref/numbers.texi b/doc/lispref/numbers.texi
index 9bfb771fc07..3e45aa90fda 100644
--- a/doc/lispref/numbers.texi
+++ b/doc/lispref/numbers.texi
@@ -219,17 +219,25 @@ creates huge integers.
@cindex @acronym{IEEE} floating point
Floating-point numbers are useful for representing numbers that are
-not integral. The range of floating-point numbers is
-the same as the range of the C data type @code{double} on the machine
-you are using. On all computers supported by Emacs, this is
-@acronym{IEEE} binary64 floating point format, which is standardized by
-@url{https://standards.ieee.org/standard/754-2019.html,,IEEE Std 754-2019}
-and is discussed further in David Goldberg's paper
+not integral. The range of floating-point numbers is the same as the
+range of the C data type @code{double} on the machine you are using.
+On almost all computers supported by Emacs, this is @acronym{IEEE}
+binary64 floating point format, which is standardized by
+@url{https://standards.ieee.org/standard/754-2019.html,,IEEE Std
+754-2019} and is discussed further in David Goldberg's paper
``@url{https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html,
-What Every Computer Scientist Should Know About Floating-Point Arithmetic}''.
-On modern platforms, floating-point operations follow the IEEE-754
-standard closely; however, results are not always rounded correctly on
-some obsolescent platforms, notably 32-bit x86.
+What Every Computer Scientist Should Know About Floating-Point
+Arithmetic}''. On modern platforms, floating-point operations follow
+the IEEE-754 standard closely; however, results are not always rounded
+correctly on some systems, notably 32-bit x86.
+
+ On some old computer systems, Emacs may not use IEEE floating-point.
+We know of one such system on which Emacs runs correctly, but does not
+follow IEEE-754: the VAX running NetBSD using GCC 10.4.0, where the
+VAX @samp{D_Floating} format is used instead. IBM System/370-derived
+mainframes and their XL/C compiler are also capable of utilizing a
+hexadecimal floating point format, but Emacs has not yet been built in
+such a configuration.
The read syntax for floating-point numbers requires either a decimal
point, an exponent, or both. Optional signs (@samp{+} or @samp{-})
@@ -262,6 +270,10 @@ two NaNs as equal when their
signs and significands agree. Significands of NaNs are
machine-dependent, as are the digits in their string representation.
+ NaNs are not available on systems which do not use IEEE
+floating-point arithmetic; if the read syntax for a NaN is used on a
+VAX, for example, the reader signals an error.
+
When NaNs and signed zeros are involved, non-numeric functions like
@code{eql}, @code{equal}, @code{sxhash-eql}, @code{sxhash-equal} and
@code{gethash} determine whether values are indistinguishable, not
@@ -742,9 +754,10 @@ by rounding the quotient towards zero after each division.
@cindex @code{arith-error} in division
If you divide an integer by the integer 0, Emacs signals an
-@code{arith-error} error (@pxref{Errors}). Floating-point division of
-a nonzero number by zero yields either positive or negative infinity
-(@pxref{Float Basics}).
+@code{arith-error} error (@pxref{Errors}). On systems using IEEE-754
+floating-point, floating-point division of a nonzero number by zero
+yields either positive or negative infinity (@pxref{Float Basics});
+otherwise, an @code{arith-error} is signaled as usual.
@end defun
@defun % dividend divisor
diff --git a/doc/misc/eglot.texi b/doc/misc/eglot.texi
index 542a4259d66..962e6c914ce 100644
--- a/doc/misc/eglot.texi
+++ b/doc/misc/eglot.texi
@@ -1307,8 +1307,8 @@ Eglot, use @kbd{M-x package-install}.
Often, a newer Eglot version exists that has fixed a longstanding bug,
has more LSP features, or just better supports a particular language
server. Recent Eglot versions can self-update via the command
-@kbd{M-x eglot-update}. This will replace any currently installed
-version with the newest one available from the ELPA archives
+@kbd{M-x eglot-upgrade-eglot}. This will replace any currently
+installed version with the newest one available from the ELPA archives
configured in @code{package-archives}.
You can also update Eglot through other methods, such as
diff --git a/etc/EGLOT-NEWS b/etc/EGLOT-NEWS
index 7a1aaffaea3..37ee94f1730 100644
--- a/etc/EGLOT-NEWS
+++ b/etc/EGLOT-NEWS
@@ -97,6 +97,16 @@ been added to 'eglot-stay-out-of'.
** ELPA installations on Emacs 26.3 are supported again.
+* Changes in Eglot 1.12.29 (Eglot bundled with Emacs 29.1)
+
+** Eglot can upgrade itself to the latest version.
+
+The new command 'eglot-upgrade-eglot' works around behaviour in the
+existing 'package-install' command and the new 'package-upgrade'
+command which would prevent the user from easily grabbing the latest
+version as usual.
+
+
* Changes in Eglot 1.12 (13/03/2023)
** LSP inlay hints are now supported.
diff --git a/lisp/calendar/parse-time.el b/lisp/calendar/parse-time.el
index 1b667a6852e..a62361121fc 100644
--- a/lisp/calendar/parse-time.el
+++ b/lisp/calendar/parse-time.el
@@ -147,7 +147,7 @@ letters, digits, plus or minus signs or colons."
;;;###autoload(put 'parse-time-rules 'risky-local-variable t)
;;;###autoload
-(defun parse-time-string (string)
+(defun parse-time-string (string &optional form)
"Parse the time in STRING into (SEC MIN HOUR DAY MON YEAR DOW DST TZ).
STRING should be an ISO 8601 time string, e.g., \"2020-01-15T16:12:21-08:00\",
or something resembling an RFC 822 (or later) date-time, e.g.,
@@ -156,9 +156,11 @@ somewhat liberal in what format it accepts, and will
attempt to
return a \"likely\" value even for somewhat malformed strings.
The values returned are identical to those of `decode-time', but
any unknown values other than DST are returned as nil, and an
-unknown DST value is returned as -1."
+unknown DST value is returned as -1.
+
+See `decode-time' for the meaning of FORM."
(condition-case ()
- (iso8601-parse string)
+ (iso8601-parse string form)
(wrong-type-argument
(let ((time (list nil nil nil nil nil nil nil -1 nil))
(temp (parse-time-tokenize (downcase string))))
@@ -199,12 +201,14 @@ unknown DST value is returned as -1."
(setf (nth (pop slots) time) new-val))))))))
time))))
-(defun parse-iso8601-time-string (date-string)
+(defun parse-iso8601-time-string (date-string &optional form)
"Parse an ISO 8601 time string, such as \"2020-01-15T16:12:21-08:00\".
Fall back on parsing something resembling an RFC 822 (or later) date-time.
This function is like `parse-time-string' except that it returns
-a Lisp timestamp when successful."
- (when-let ((time (parse-time-string date-string)))
+a Lisp timestamp when successful.
+
+See `decode-time' for the meaning of FORM."
+ (when-let ((time (parse-time-string date-string form)))
(encode-time time)))
(provide 'parse-time)
diff --git a/lisp/emacs-lisp/cl-preloaded.el b/lisp/emacs-lisp/cl-preloaded.el
index 9445093f143..5235be52996 100644
--- a/lisp/emacs-lisp/cl-preloaded.el
+++ b/lisp/emacs-lisp/cl-preloaded.el
@@ -176,6 +176,7 @@ supertypes from the most specific to least specific.")
(i 0)
(offset (if type 0 1)))
(dolist (slot slots)
+ (put (car slot) 'slot-name t)
(let* ((props (cl--plist-to-alist (cddr slot)))
(typep (assq :type props))
(type (if (null typep) t
diff --git a/lisp/emacs-lisp/loaddefs-gen.el b/lisp/emacs-lisp/loaddefs-gen.el
index a966b1e9f40..2a46fb7a022 100644
--- a/lisp/emacs-lisp/loaddefs-gen.el
+++ b/lisp/emacs-lisp/loaddefs-gen.el
@@ -635,9 +635,12 @@ instead of just updating them with the new/changed
autoloads."
(progn
(goto-char (point-max))
(search-backward "\f\n" nil t))
- ;; Delete the old version of the section.
+ ;; Delete the old version of the section. Strictly
+ ;; speaking this should search for "\n\f\n;;;", but
+ ;; there are loaddefs files in the wild that only
+ ;; have two ';;'. (Bug#63236)
(delete-region (match-beginning 0)
- (and (search-forward "\n\f\n;;;")
+ (and (search-forward "\n\f\n;;")
(match-beginning 0)))
(forward-line -2)))
(insert head)
diff --git a/lisp/emacs-lisp/package-vc.el b/lisp/emacs-lisp/package-vc.el
index 83d697a2e90..421947b528d 100644
--- a/lisp/emacs-lisp/package-vc.el
+++ b/lisp/emacs-lisp/package-vc.el
@@ -167,7 +167,7 @@ archive."
(:vc-backend symbol)))))
:version "29.1")
-(defvar package-vc--archive-spec-alist nil
+(defvar package-vc--archive-spec-alists nil
"List of package specifications for each archive.
The list maps each package name, as a string, to a plist as
specified in `package-vc-selected-packages'.")
@@ -199,15 +199,15 @@ name for PKG-DESC."
(not (alist-get name package-vc-selected-packages
nil nil #'string=)))
(alist-get (intern (package-desc-archive pkg-desc))
- package-vc--archive-spec-alist)
+ package-vc--archive-spec-alists)
;; Consult both our local list of package specifications, as well
;; as the lists provided by the archives.
(apply #'append (cons package-vc-selected-packages
- (mapcar #'cdr package-vc--archive-spec-alist))))
+ (mapcar #'cdr package-vc--archive-spec-alists))))
'() nil #'string=))
(defun package-vc--read-archive-data (archive)
- "Update `package-vc--archive-spec-alist' for ARCHIVE.
+ "Update `package-vc--archive-spec-alists' for ARCHIVE.
This function is meant to be used as a hook for `package-read-archive-hook'."
(let ((contents-file (expand-file-name
(format "archives/%s/elpa-packages.eld" archive)
@@ -224,7 +224,7 @@ This function is meant to be used as a hook for
`package-read-archive-hook'."
(let ((spec (read (current-buffer))))
(when (eq package-vc--elpa-packages-version
(plist-get (cdr spec) :version))
- (setf (alist-get (intern archive) package-vc--archive-spec-alist)
+ (setf (alist-get (intern archive)
package-vc--archive-spec-alists)
(car spec)))
(setf (alist-get (intern archive) package-vc--archive-data-alist)
(cdr spec))
@@ -235,7 +235,7 @@ This function is meant to be used as a hook for
`package-read-archive-hook'."
(defun package-vc--download-and-read-archives (&optional async)
"Download specifications of all `package-archives' and read them.
-Populate `package-vc--archive-spec-alist' with the result.
+Populate `package-vc--archive-spec-alists' with the result.
If optional argument ASYNC is non-nil, perform the downloads
asynchronously."
@@ -583,7 +583,7 @@ Emacs Lisp files.")
(defun package-vc--unpack (pkg-desc pkg-spec &optional rev)
"Install the package described by PKG-DESC.
PKG-SPEC is a package specification, a property list describing
-how to fetch and build the package. See `package-vc--archive-spec-alist'
+how to fetch and build the package. See `package-vc--archive-spec-alists'
for details. The optional argument REV specifies a specific revision to
checkout. This overrides the `:branch' attribute in PKG-SPEC."
(unless (eq (package-desc-kind pkg-desc) 'vc)
@@ -632,7 +632,8 @@ abort installation?" name))
(throw 'done (setq lisp-dir name)))))
;; Ensure we have a copy of the package specification
- (unless (equal (alist-get name (mapcar #'cdr
package-vc--archive-spec-alist)) pkg-spec)
+ (unless (seq-some (lambda (alist) (equal (alist-get name (cdr alist))
pkg-spec))
+ package-vc--archive-spec-alists)
(customize-save-variable
'package-vc-selected-packages
(cons (cons name pkg-spec)
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 0f68f0e8041..0cd54c3fbe2 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -2278,7 +2278,7 @@ newer version from ELPA by using
`\\<package-menu-mode-map>\\[package-menu-mark-
(pkg-desc (cadr (assq package package-alist))))
(if (package-vc-p pkg-desc)
(package-vc-upgrade pkg-desc)
- (package-delete pkg-desc 'force)
+ (package-delete pkg-desc 'force 'dont-unselect)
(package-install package 'dont-select))))
(defun package--upgradeable-packages ()
diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el
index 5e4aa5e1198..0ee52d8ef6c 100644
--- a/lisp/net/rcirc.el
+++ b/lisp/net/rcirc.el
@@ -584,7 +584,7 @@ If ARG is non-nil, instead prompt for connection
parameters."
(condition-case nil
(let ((process (rcirc-connect server port nick user-name
full-name channels
password encryption
- client-cert server-alias)))
+ server-alias client-cert)))
(when rcirc-display-server-buffer
(pop-to-buffer-same-window (process-buffer
process))))
(quit (message "Quit connecting to %s"
@@ -680,7 +680,7 @@ See `rcirc-connect' for more details on these variables.")
;;;###autoload
(defun rcirc-connect (server &optional port nick user-name
full-name startup-channels password encryption
- certfp server-alias)
+ server-alias certfp)
"Connect to SERVER.
The arguments PORT, NICK, USER-NAME, FULL-NAME, PASSWORD,
ENCRYPTION, CERTFP, SERVER-ALIAS are interpreted as in
@@ -1233,9 +1233,9 @@ If SILENT is non-nil, do not print the message in any irc
buffer."
(let ((response (if noticep "NOTICE" "PRIVMSG")))
(rcirc-get-buffer-create process target)
(dolist (msg (rcirc-split-message message))
- (rcirc-send-string process response target : msg)
(unless silent
- (rcirc-print process (rcirc-nick process) response target msg)))))
+ (rcirc-print process (rcirc-nick process) response target msg))
+ (rcirc-send-string process response target : msg))))
(defvar-local rcirc-input-ring nil
"Ring object for input.")
@@ -2034,7 +2034,7 @@ connection."
(not (string= sender (rcirc-nick process))))
(let* ((buffer (rcirc-target-buffer process sender response target text))
(time (if-let ((time (rcirc-get-tag "time")))
- (parse-iso8601-time-string time)
+ (parse-iso8601-time-string time t)
(current-time)))
(inhibit-read-only t))
(with-current-buffer buffer
@@ -2204,7 +2204,7 @@ The message is logged in `rcirc-log', and is later
written to
disk. PROCESS is the process object for the current connection."
(let ((filename (funcall rcirc-log-filename-function process target))
(time (and-let* ((time (rcirc-get-tag "time")))
- (parse-iso8601-time-string time))))
+ (parse-iso8601-time-string time t))))
(unless (null filename)
(let ((cell (assoc-string filename rcirc-log-alist))
(line (concat (format-time-string rcirc-time-format time)
@@ -2998,7 +2998,7 @@ If ARG is given, opens the URL in a new browser window."
"Insert a timestamp."
(goto-char (point-min))
(let ((time (and-let* ((time (rcirc-get-tag "time")))
- (parse-iso8601-time-string time))))
+ (parse-iso8601-time-string time t))))
(insert (rcirc-facify (format-time-string rcirc-time-format time)
'rcirc-timestamp))))
diff --git a/lisp/nxml/rng-nxml.el b/lisp/nxml/rng-nxml.el
index 568cf24451b..fd1f4fb904e 100644
--- a/lisp/nxml/rng-nxml.el
+++ b/lisp/nxml/rng-nxml.el
@@ -180,7 +180,7 @@ Validation will be enabled if `rng-nxml-auto-validate-flag'
is non-nil."
(insert " "))))
((member completion extra-strings)
(insert ">"))))
- :company-kind ,(lambda () 'property))))))
+ :company-kind ,(lambda (_) 'property))))))
(defconst rng-in-end-tag-name-regex
(replace-regexp-in-string
diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el
index 1e0bcd30485..dc8d4674425 100644
--- a/lisp/progmodes/eglot.el
+++ b/lisp/progmodes/eglot.el
@@ -2003,7 +2003,7 @@ If it is activated, also signal textDocument/didOpen."
(interactive) (info "(eglot)"))
;;;###autoload
-(defun eglot-update (&rest _) "Update Eglot."
+(defun eglot-upgrade-eglot (&rest _) "Update Eglot to latest version."
(interactive)
(with-no-warnings
(require 'package)
@@ -2012,6 +2012,9 @@ If it is activated, also signal textDocument/didOpen."
(package-delete existing t))
(package-install (cadr (assoc 'eglot package-archive-contents)))))
+;;;###autoload
+(define-obsolete-function-alias 'eglot-update 'eglot-upgrade-eglot "29.1")
+
(easy-menu-define eglot-menu nil "Eglot"
`("Eglot"
;; Commands for getting information and customization.
diff --git a/lisp/progmodes/go-ts-mode.el b/lisp/progmodes/go-ts-mode.el
index fda6a36e42d..b8705ecc4d0 100644
--- a/lisp/progmodes/go-ts-mode.el
+++ b/lisp/progmodes/go-ts-mode.el
@@ -106,6 +106,11 @@
">>" "%=" ">>=" "--" "!" "..." "&^" "&^=" "~")
"Go operators for tree-sitter font-locking.")
+(defun go-ts-mode--iota-query-supported-p ()
+ "Return t if the iota query is supported by the tree-sitter-go grammar."
+ (ignore-errors
+ (or (treesit-query-string "" '((iota) @font-lock-constant-face) 'go) t)))
+
(defvar go-ts-mode--font-lock-settings
(treesit-font-lock-rules
:language 'go
@@ -118,7 +123,9 @@
:language 'go
:feature 'constant
- '([(false) (iota) (nil) (true)] @font-lock-constant-face
+ `([(false) (nil) (true)] @font-lock-constant-face
+ ,@(when (go-ts-mode--iota-query-supported-p)
+ '((iota) @font-lock-constant-face))
(const_declaration
(const_spec name: (identifier) @font-lock-constant-face)))
@@ -296,7 +303,7 @@ Methods are prefixed with the receiver name, unless
SKIP-PREFIX is t."
(treesit-search-subtree node "type_alias" nil nil 1)))
(defun go-ts-mode--other-type-node-p (node)
- "Return t if NODE is a type, other than interface, struct or alias."
+ "Return t if NODE is a type other than interface, struct, or alias."
(and
(string-equal "type_declaration" (treesit-node-type node))
(not (go-ts-mode--interface-node-p node))
@@ -351,7 +358,7 @@ comment already exists, jump to it."
"Tree-sitter indent rules for `go-mod-ts-mode'.")
(defun go-mod-ts-mode--in-directive-p ()
- "Return non-nil if inside a directive.
+ "Return non-nil if point is inside a directive.
When entering an empty directive or adding a new entry to one, no node
will be present meaning none of the indentation rules will match,
because there is no parent to match against. This function determines
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el
index 45fd17f65c4..ee0ec63b6bc 100644
--- a/lisp/progmodes/vhdl-mode.el
+++ b/lisp/progmodes/vhdl-mode.el
@@ -286,7 +286,7 @@ Overrides local variable `indent-tabs-mode'."
;; counter_rtl.vhd(29):Conditional signal assignment line__29
("ModelSim" "vcom" "-93 -work \\1" "make" "-f \\1"
nil "vlib \\1; vmap \\2 \\1" "./" "work/" "Makefile" "modelsim"
- ("^\\(ERROR\\|WARNING\\|\\*\\* Error\\|\\*\\* Warning\\)[^:]*:\\(
*\\[[0-9]+]\\| ([^)]+)\\)? \\([^ \t\n]+\\)(\\([0-9]+\\)):" 3 4 nil)
+ ("^\\(?:\\(?1:ERROR\\|\\*\\* Error\\)\\|\\(?2:WARNING\\|\\*\\*
Warning\\)\\|\\(?3:NOTE\\|\\*\\* Note\\)\\)[^:]*:\\( *\\[[0-9]+]\\| ([^)]+)\\)?
\\(?4:[^ \t\n]+\\)(\\(?5:[0-9]+\\)):" 4 5 nil (2 . 3))
("" 0)
("\\1/_primary.dat" "\\2/\\1.dat" "\\1/_primary.dat"
"\\1/_primary.dat" "\\1/body.dat" downcase))
@@ -385,6 +385,13 @@ Overrides local variable `indent-tabs-mode'."
nil "mkdir \\1" "./" "work/" "Makefile" "xilinx"
("^ERROR:HDLParsers:[0-9]+ - \"\\([^ \t\n]+\\)\" Line \\([0-9]+\\)\\." 1
2 nil) ("" 0)
nil)
+ ;; Xilinx Vivado:
+ ;; ERROR: [VRFC 10-1412] syntax error near o_idle [test.vhd:23]
+ ("Xilinx Vivado" "xvhdl" "" "make" "-f \\1"
+ nil "mkdir \\1" "./" "work" "Makefile" "vivado"
+ ("^\\(?:\\(?1:ERROR\\)\\|\\(?2:WARNING\\)\\|\\(?3:INFO\\)\\): \\(.+\\)
\\[\\(?4:[^ \t\n]+\\):\\(?5:[0-9]+\\)\\]" 4 5 nil (2 . 3)) ("" 0)
+ ("\\1/entity" "\\2/\\1" "\\1/configuration"
+ "\\1/package" "\\1/body" downcase))
)
"List of available VHDL compilers and their properties.
Each list entry specifies the following items for a compiler:
diff --git a/lisp/select.el b/lisp/select.el
index 7f089c62dd5..09c678867d0 100644
--- a/lisp/select.el
+++ b/lisp/select.el
@@ -807,19 +807,24 @@ This function returns the string \"emacs\"."
(defun xselect-convert-to-username (_selection _type _value)
(user-real-login-name))
-(defun xselect-convert-to-text-uri-list (_selection _type value)
- (let ((string
- (if (stringp value)
- (xselect--encode-string 'TEXT
- (concat (url-encode-url value) "\n"))
- (when (vectorp value)
- (with-temp-buffer
- (cl-loop for tem across value
- do (progn
- (insert (url-encode-url tem))
- (insert "\n")))
- (xselect--encode-string 'TEXT (buffer-string)))))))
- (cons 'text/uri-list (cdr string))))
+(defun xselect-convert-to-text-uri-list (selection _type value)
+ ;; While `xselect-uri-list-available-p' ensures that this target
+ ;; will not be reported in the TARGETS of non-drag-and-drop
+ ;; selections, Firefox stupidly converts to it anyway. Check that
+ ;; the conversion request is being made for the correct selection.
+ (and (eq selection 'XdndSelection)
+ (let ((string
+ (if (stringp value)
+ (xselect--encode-string 'TEXT
+ (concat (url-encode-url value) "\n"))
+ (when (vectorp value)
+ (with-temp-buffer
+ (cl-loop for tem across value
+ do (progn
+ (insert (url-encode-url tem))
+ (insert "\n")))
+ (xselect--encode-string 'TEXT (buffer-string)))))))
+ (cons 'text/uri-list (cdr string)))))
(defun xselect-convert-to-xm-file (selection _type value)
(when (and (stringp value)
diff --git a/lisp/subr.el b/lisp/subr.el
index 1452a1117d3..0501fc67a3e 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -1885,8 +1885,8 @@ be a list of the form returned by `event-start' and
`event-end'."
(set-advertised-calling-convention 'unintern '(name obarray) "23.3")
(set-advertised-calling-convention 'indirect-function '(object) "25.1")
(set-advertised-calling-convention 'redirect-frame-focus '(frame focus-frame)
"24.3")
-(set-advertised-calling-convention 'libxml-parse-xml-region '(start end
&optional base-url) "27.1")
-(set-advertised-calling-convention 'libxml-parse-html-region '(start end
&optional base-url) "27.1")
+(set-advertised-calling-convention 'libxml-parse-xml-region '(&optional start
end base-url) "27.1")
+(set-advertised-calling-convention 'libxml-parse-html-region '(&optional start
end base-url) "27.1")
(set-advertised-calling-convention 'time-convert '(time form) "29.1")
;;;; Obsolescence declarations for variables, and aliases.
diff --git a/lisp/transient.el b/lisp/transient.el
index 4affc414fa6..9785e218b19 100644
--- a/lisp/transient.el
+++ b/lisp/transient.el
@@ -1071,7 +1071,8 @@ example, sets a variable, use `transient-define-infix'
instead.
(if (and desc (or (stringp desc) (symbolp desc)))
desc
(plist-get args :key)))))))
- (setq args (plist-put args :command `(defalias ',sym ,cmd)))))
+ (setq args (plist-put args :command
+ `(defalias ',sym ,(macroexp-quote cmd))))))
((or (stringp car)
(and car (listp car)))
(let ((arg pop))
diff --git a/src/sysdep.c b/src/sysdep.c
index a5b3117d262..443602a2d6d 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -2005,7 +2005,9 @@ init_signals (void)
signal (SIGPIPE, SIG_IGN);
sigaction (SIGQUIT, &process_fatal_action, 0);
+#ifndef __vax__
sigaction (SIGILL, &thread_fatal_action, 0);
+#endif /* __vax__ */
sigaction (SIGTRAP, &thread_fatal_action, 0);
/* Typically SIGFPE is thread-specific and is fatal, like SIGILL.
@@ -2018,6 +2020,11 @@ init_signals (void)
{
emacs_sigaction_init (&action, deliver_arith_signal);
sigaction (SIGFPE, &action, 0);
+#ifdef __vax__
+ /* NetBSD/vax generates SIGILL upon some floating point errors,
+ such as taking the log of 0.0. */
+ sigaction (SIGILL, &action, 0);
+#endif /* __vax__ */
}
#ifdef SIGUSR1
diff --git a/test/lisp/calendar/cal-julian-tests.el
b/test/lisp/calendar/cal-julian-tests.el
index e0d74e8a6cd..4207d1ee285 100644
--- a/test/lisp/calendar/cal-julian-tests.el
+++ b/test/lisp/calendar/cal-julian-tests.el
@@ -47,7 +47,7 @@
(progn
(calendar)
,@body)
- (kill-buffer "*Calendar*"))))
+ (kill-buffer calendar-buffer))))
(ert-deftest cal-julian-test-goto-date ()
(with-cal-julian-test