diff options
author | Dmitry Gutov <dmitry@gutov.dev> | 2023-05-06 03:41:54 +0300 |
---|---|---|
committer | Dmitry Gutov <dmitry@gutov.dev> | 2023-05-06 03:41:54 +0300 |
commit | 0c6311386a12560c6578ffe50996c1f2c841ddfe (patch) | |
tree | 9d607340c827e809c61c194cfd65cbc89778dd55 /lisp/emacs-lisp | |
parent | 3baab6c432b7763f5435a0f4ffb055d2e33fab69 (diff) | |
parent | 79a886ba36837c0e13d83172ab33c1c2680c6e62 (diff) | |
download | emacs-0c6311386a12560c6578ffe50996c1f2c841ddfe.tar.gz |
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
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/cl-preloaded.el | 1 | ||||
-rw-r--r-- | lisp/emacs-lisp/loaddefs-gen.el | 7 | ||||
-rw-r--r-- | lisp/emacs-lisp/package-vc.el | 17 | ||||
-rw-r--r-- | lisp/emacs-lisp/package.el | 2 |
4 files changed, 16 insertions, 11 deletions
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 () |