emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r115919: * lisp/emacs-lisp/package.el (package-delet


From: Stefan Monnier
Subject: [Emacs-diffs] trunk r115919: * lisp/emacs-lisp/package.el (package-delete): Only remove pkg-desc from
Date: Wed, 08 Jan 2014 14:19:32 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 115919
revision-id: address@hidden
parent: address@hidden
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Wed 2014-01-08 09:19:27 -0500
message:
  * lisp/emacs-lisp/package.el (package-delete): Only remove pkg-desc from
  package-alist.
modified:
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/emacs-lisp/package.el     package.el-20100617020707-ybavz666awsxwin6-2
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2014-01-08 11:19:30 +0000
+++ b/lisp/ChangeLog    2014-01-08 14:19:27 +0000
@@ -1,3 +1,8 @@
+2014-01-08  Stefan Monnier  <address@hidden>
+
+       * emacs-lisp/package.el (package-delete): Only remove pkg-desc from
+       package-alist.
+
 2014-01-08  Bastien Guerry  <address@hidden>
 
        * emacs-lisp/package.el (package-installed-p): First check if the

=== modified file 'lisp/emacs-lisp/package.el'
--- a/lisp/emacs-lisp/package.el        2014-01-08 11:19:30 +0000
+++ b/lisp/emacs-lisp/package.el        2014-01-08 14:19:27 +0000
@@ -818,28 +818,26 @@
 (defun package--check-signature (location file)
   "Check signature of the current buffer.
 GnuPG keyring is located under \"gnupg\" in `package-user-dir'."
-  (let ((context (epg-make-context 'OpenPGP))
-       (homedir (expand-file-name "gnupg" package-user-dir))
-       (sig-file (concat file ".sig"))
-       sig-content
-       good-signatures)
-    (setq sig-content (package--with-work-buffer location sig-file
-                       (buffer-string)))
+  (let* ((context (epg-make-context 'OpenPGP))
+         (homedir (expand-file-name "gnupg" package-user-dir))
+         (sig-file (concat file ".sig"))
+         (sig-content (package--with-work-buffer location sig-file
+                       (buffer-string))))
     (epg-context-set-home-directory context homedir)
     (epg-verify-string context sig-content (buffer-string))
     ;; The .sig file may contain multiple signatures.  Success if one
     ;; of the signatures is good.
-    (setq good-signatures
-         (delq nil (mapcar (lambda (sig)
-                             (if (eq (epg-signature-status sig) 'good)
-                                 sig))
-                           (epg-context-result-for context 'verify))))
-    (if (null good-signatures)
-       (error "Failed to verify signature %s: %S"
-              sig-file
-              (mapcar #'epg-signature-to-string
-                      (epg-context-result-for context 'verify)))
-      good-signatures)))
+    (let ((good-signatures
+           (delq nil (mapcar (lambda (sig)
+                               (if (eq (epg-signature-status sig) 'good)
+                                   sig))
+                             (epg-context-result-for context 'verify)))))
+      (if (null good-signatures)
+          (error "Failed to verify signature %s: %S"
+                 sig-file
+                 (mapcar #'epg-signature-to-string
+                         (epg-context-result-for context 'verify)))
+        good-signatures))))
 
 (defun package-install-from-archive (pkg-desc)
   "Download and install a tar package."
@@ -1232,8 +1230,11 @@
        (if (file-exists-p signed-file)
            (delete-file signed-file)))
       ;; Update package-alist.
-      (let* ((name (package-desc-name pkg-desc)))
-       (setq package-alist (delete (assq name package-alist) package-alist)))
+      (let* ((name (package-desc-name pkg-desc))
+             (pkgs (assq name package-alist)))
+        (delete pkg-desc pkgs)
+        (unless (cdr pkgs)
+          (setq package-alist (delq pkgs package-alist))))
       (message "Package `%s' deleted." (package-desc-full-name pkg-desc)))))
 
 (defun package-archive-base (desc)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]