summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorArtur Malabarba <bruce.connor.am@gmail.com>2015-01-12 23:24:22 -0200
committerArtur Malabarba <bruce.connor.am@gmail.com>2015-01-16 22:19:17 -0200
commitbe6dbd4b1ea00be1d63121cdc05d61424129a6ba (patch)
treeebc708648b1069959b6c2d2137f50c2aad3bf3b6 /lisp/emacs-lisp
parent69f36afa11c0b754c40f4fc57408ccd85428e2b0 (diff)
downloademacs-be6dbd4b1ea00be1d63121cdc05d61424129a6ba.tar.gz
emacs-be6dbd4b1ea00be1d63121cdc05d61424129a6ba.tar.bz2
emacs-be6dbd4b1ea00be1d63121cdc05d61424129a6ba.zip
* emacs-lisp/package.el (package--read-pkg-desc): New function.
Read a `define-package' form in current buffer. Return the pkg-desc, with desc-kind set to KIND.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/package.el26
1 files changed, 16 insertions, 10 deletions
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 5336271b65b..d5906675596 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -1277,19 +1277,25 @@ The return result is a `package-desc'."
(unless tar-desc
(error "No package descriptor file found"))
(with-current-buffer (tar--extract tar-desc)
- (goto-char (point-min))
(unwind-protect
- (let* ((pkg-def-parsed (read (current-buffer)))
- (pkg-desc
- (if (not (eq (car pkg-def-parsed) 'define-package))
- (error "Can't find define-package in %s"
- (tar-header-name tar-desc))
- (apply #'package-desc-from-define
- (append (cdr pkg-def-parsed))))))
- (setf (package-desc-kind pkg-desc) 'tar)
- pkg-desc)
+ (package--read-pkg-desc 'tar)
(kill-buffer (current-buffer))))))
+(defun package--read-pkg-desc (kind)
+ "Read a `define-package' form in current buffer.
+Return the pkg-desc, with desc-kind set to KIND."
+ (goto-char (point-min))
+ (unwind-protect
+ (let* ((pkg-def-parsed (read (current-buffer)))
+ (pkg-desc
+ (if (not (eq (car pkg-def-parsed) 'define-package))
+ (error "Can't find define-package in %s"
+ (tar-header-name tar-desc))
+ (apply #'package-desc-from-define
+ (append (cdr pkg-def-parsed))))))
+ (setf (package-desc-kind pkg-desc) kind)
+ pkg-desc)))
+
;;;###autoload
(defun package-install-from-buffer ()