[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)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] emacs-25 6e71295: * lisp/emacs-lisp/package.el (package--with-response-buffer):,
Artur Malabarba <=