diff options
author | Artur Malabarba <bruce.connor.am@gmail.com> | 2015-01-12 23:24:22 -0200 |
---|---|---|
committer | Artur Malabarba <bruce.connor.am@gmail.com> | 2015-01-16 22:19:17 -0200 |
commit | be6dbd4b1ea00be1d63121cdc05d61424129a6ba (patch) | |
tree | ebc708648b1069959b6c2d2137f50c2aad3bf3b6 /lisp/emacs-lisp | |
parent | 69f36afa11c0b754c40f4fc57408ccd85428e2b0 (diff) | |
download | emacs-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.el | 26 |
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 () |