emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] emacs-25 6e71295: * lisp/emacs-lisp/package.el (package--w


From: Artur Malabarba
Subject: [Emacs-diffs] emacs-25 6e71295: * lisp/emacs-lisp/package.el (package--with-response-buffer):
Date: Wed, 18 May 2016 21:08:19 +0000 (UTC)

branch: emacs-25
commit 6e7129551ca2ff67732549ae8b1b43276c410c95
Author: Artur Malabarba <address@hidden>
Commit: Artur Malabarba <address@hidden>

    * lisp/emacs-lisp/package.el (package--with-response-buffer):
    
    Fix some macro locals leaking into body.  (Bug#22440)
    
    * test/automated/package-test.el (package-test-signed):
    Manually check all possible values of `package-check-signature'.
---
 lisp/emacs-lisp/package.el     |   37 +++++++++++++++++++++----------------
 test/automated/package-test.el |   11 +++++++++--
 2 files changed, 30 insertions(+), 18 deletions(-)

diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 58973df..aa18c2d 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -1154,6 +1154,8 @@ errors signaled by ERROR-FORM or by BODY).
   (while (keywordp (car body))
     (setq body (cdr (cdr body))))
   (macroexp-let2* nil ((url-1 url)
+                       (url-sym (make-symbol "url"))
+                       (b-sym (make-symbol "b-sym"))
                        (noerror-1 noerror))
     `(cl-macrolet ((unless-error (body-2 &rest before-body)
                                  (let ((err (make-symbol "err")))
@@ -1165,23 +1167,26 @@ errors signaled by ERROR-FORM or by BODY).
                                                            `(signal (car ,err) 
(cdr ,err)))))
                                         ,@body-2)))))
        (if (string-match-p "\\`https?:" ,url-1)
-           (let* ((url (concat ,url-1 ,file))
-                  (callback (lambda (status)
-                              (let ((b (current-buffer)))
-                                (require 'url-handlers)
-                                (unless-error ,body
-                                              (when-let ((er (plist-get status 
:error)))
-                                                (error "Error retrieving: %s 
%S" url er))
-                                              (with-current-buffer b
-                                                (goto-char (point-min))
-                                                (unless (search-forward-regexp 
"^\r?\n\r?" nil 'noerror)
-                                                  (error "Error retrieving: %s 
%S" url "incomprehensible buffer")))
-                                              (url-insert-buffer-contents b 
url)
-                                              (kill-buffer b)
-                                              (goto-char (point-min)))))))
+           (let ((,url-sym (concat ,url-1 ,file)))
              (if ,async
-                 (unless-error nil (url-retrieve url callback nil 'silent))
-               (unless-error ,body (url-insert-file-contents url))))
+                 (unless-error nil
+                               (url-retrieve ,url-sym
+                                             (lambda (status)
+                                               (let ((,b-sym (current-buffer)))
+                                                 (require 'url-handlers)
+                                                 (unless-error ,body
+                                                               (when-let ((er 
(plist-get status :error)))
+                                                                 (error "Error 
retrieving: %s %S" ,url-sym er))
+                                                               
(with-current-buffer ,b-sym
+                                                                 (goto-char 
(point-min))
+                                                                 (unless 
(search-forward-regexp "^\r?\n\r?" nil 'noerror)
+                                                                   (error 
"Error retrieving: %s %S" ,url-sym "incomprehensible buffer")))
+                                                               
(url-insert-buffer-contents ,b-sym ,url-sym)
+                                                               (kill-buffer 
,b-sym)
+                                                               (goto-char 
(point-min)))))
+                                             nil
+                                             'silent))
+               (unless-error ,body (url-insert-file-contents ,url-sym))))
          (unless-error ,body
                        (let ((url (expand-file-name ,file ,url-1)))
                          (unless (file-name-absolute-p url)
diff --git a/test/automated/package-test.el b/test/automated/package-test.el
index 5580645..c4c856f 100644
--- a/test/automated/package-test.el
+++ b/test/automated/package-test.el
@@ -475,8 +475,15 @@ Must called from within a `tar-mode' buffer."
       (package-initialize)
       (package-import-keyring keyring)
       (package-refresh-contents)
-      (should (package-install 'signed-good))
-      (should-error (package-install 'signed-bad))
+      (let ((package-check-signature 'allow-unsigned))
+        (should (package-install 'signed-good))
+        (should-error (package-install 'signed-bad)))
+      (let ((package-check-signature t))
+        (should (package-install 'signed-good))
+        (should-error (package-install 'signed-bad)))
+      (let ((package-check-signature nil))
+        (should (package-install 'signed-good))
+        (should (package-install 'signed-bad)))
       ;; Check if the installed package status is updated.
       (let ((buf (package-list-packages)))
        (package-menu-refresh)



reply via email to

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