diff options
| author | Artur Malabarba | 2015-01-12 23:24:22 -0200 |
|---|---|---|
| committer | Artur Malabarba | 2015-01-16 22:19:17 -0200 |
| commit | be6dbd4b1ea00be1d63121cdc05d61424129a6ba (patch) | |
| tree | ebc708648b1069959b6c2d2137f50c2aad3bf3b6 | |
| parent | 69f36afa11c0b754c40f4fc57408ccd85428e2b0 (diff) | |
| download | emacs-be6dbd4b1ea00be1d63121cdc05d61424129a6ba.tar.gz 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.
| -rw-r--r-- | lisp/ChangeLog | 6 | ||||
| -rw-r--r-- | lisp/emacs-lisp/package.el | 26 |
2 files changed, 22 insertions, 10 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c80f8f7bad4..93796e67a3d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2015-01-16 Artur Malabarba <bruce.connor.am@gmail.com> | ||
| 2 | |||
| 3 | * emacs-lisp/package.el (package--read-pkg-desc): New | ||
| 4 | function. Read a `define-package' form in current buffer. Return | ||
| 5 | the pkg-desc, with desc-kind set to KIND. | ||
| 6 | |||
| 1 | 2015-01-16 Jorgen Schaefer <contact@jorgenschaefer.de> | 7 | 2015-01-16 Jorgen Schaefer <contact@jorgenschaefer.de> |
| 2 | 8 | ||
| 3 | * emacs-lisp/package.el: Provide repository priorities. | 9 | * emacs-lisp/package.el: Provide repository priorities. |
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'." | |||
| 1277 | (unless tar-desc | 1277 | (unless tar-desc |
| 1278 | (error "No package descriptor file found")) | 1278 | (error "No package descriptor file found")) |
| 1279 | (with-current-buffer (tar--extract tar-desc) | 1279 | (with-current-buffer (tar--extract tar-desc) |
| 1280 | (goto-char (point-min)) | ||
| 1281 | (unwind-protect | 1280 | (unwind-protect |
| 1282 | (let* ((pkg-def-parsed (read (current-buffer))) | 1281 | (package--read-pkg-desc 'tar) |
| 1283 | (pkg-desc | ||
| 1284 | (if (not (eq (car pkg-def-parsed) 'define-package)) | ||
| 1285 | (error "Can't find define-package in %s" | ||
| 1286 | (tar-header-name tar-desc)) | ||
| 1287 | (apply #'package-desc-from-define | ||
| 1288 | (append (cdr pkg-def-parsed)))))) | ||
| 1289 | (setf (package-desc-kind pkg-desc) 'tar) | ||
| 1290 | pkg-desc) | ||
| 1291 | (kill-buffer (current-buffer)))))) | 1282 | (kill-buffer (current-buffer)))))) |
| 1292 | 1283 | ||
| 1284 | (defun package--read-pkg-desc (kind) | ||
| 1285 | "Read a `define-package' form in current buffer. | ||
| 1286 | Return the pkg-desc, with desc-kind set to KIND." | ||
| 1287 | (goto-char (point-min)) | ||
| 1288 | (unwind-protect | ||
| 1289 | (let* ((pkg-def-parsed (read (current-buffer))) | ||
| 1290 | (pkg-desc | ||
| 1291 | (if (not (eq (car pkg-def-parsed) 'define-package)) | ||
| 1292 | (error "Can't find define-package in %s" | ||
| 1293 | (tar-header-name tar-desc)) | ||
| 1294 | (apply #'package-desc-from-define | ||
| 1295 | (append (cdr pkg-def-parsed)))))) | ||
| 1296 | (setf (package-desc-kind pkg-desc) kind) | ||
| 1297 | pkg-desc))) | ||
| 1298 | |||
| 1293 | 1299 | ||
| 1294 | ;;;###autoload | 1300 | ;;;###autoload |
| 1295 | (defun package-install-from-buffer () | 1301 | (defun package-install-from-buffer () |