[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master b32bb3f: (package--with-work-buffer-async): Protect
From: |
Artur Malabarba |
Subject: |
[Emacs-diffs] master b32bb3f: (package--with-work-buffer-async): Protect macro arguments. |
Date: |
Sat, 04 Apr 2015 19:47:21 +0000 |
branch: master
commit b32bb3f2f6ae6b76d9cc74dbace2745ee119eddb
Author: Artur Malabarba <address@hidden>
Commit: Artur Malabarba <address@hidden>
(package--with-work-buffer-async): Protect macro arguments.
---
lisp/ChangeLog | 1 +
lisp/emacs-lisp/package.el | 38 +++++++++++++++++++++-----------------
2 files changed, 22 insertions(+), 17 deletions(-)
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 9b2b312..11abda5 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -3,6 +3,7 @@
* emacs-lisp/package.el (package--download-and-read-archives): Add
`package-archives' to `package--downloads-in-progress' instead of
overwriting it.
+ (package--with-work-buffer-async): Protect macro arguments.
2015-04-04 Michael Albinus <address@hidden>
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 3f77840..32a3e01 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -1090,23 +1090,27 @@ function, call it with no arguments (instead of
executing BODY),
otherwise propagate the error. For description of the other
arguments see `package--with-work-buffer'."
(declare (indent 3) (debug t))
- `(if (or (not ,async)
- (not (string-match-p "\\`https?:" ,location)))
- (package--with-work-buffer ,location ,file ,@body)
- (url-retrieve (concat ,location ,file)
- (lambda (status)
- (if (eq (car status) :error)
- (if (functionp ,async)
- (funcall ,async)
- (signal (cdar status) (cddr status)))
- (goto-char (point-min))
- (unless (search-forward "\n\n" nil 'noerror)
- (error "Invalid url response"))
- (delete-region (point-min) (point))
- ,@body)
- (kill-buffer (current-buffer)))
- nil
- 'silent)))
+ (macroexp-let2* macroexp-copyable-p
+ ((async-1 async)
+ (file-1 file)
+ (location-1 location))
+ `(if (or (not ,async-1)
+ (not (string-match-p "\\`https?:" ,location-1)))
+ (package--with-work-buffer ,location-1 ,file-1 ,@body)
+ (url-retrieve (concat ,location-1 ,file-1)
+ (lambda (status)
+ (if (eq (car status) :error)
+ (if (functionp ,async-1)
+ (funcall ,async-1)
+ (signal (cdar status) (cddr status)))
+ (goto-char (point-min))
+ (unless (search-forward "\n\n" nil 'noerror)
+ (error "Invalid url response"))
+ (delete-region (point-min) (point))
+ ,@body)
+ (kill-buffer (current-buffer)))
+ nil
+ 'silent))))
(defun package--check-signature-content (content string &optional sig-file)
"Check signature CONTENT against STRING.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master b32bb3f: (package--with-work-buffer-async): Protect macro arguments.,
Artur Malabarba <=