aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtur Malabarba2015-01-12 23:24:22 -0200
committerArtur Malabarba2015-01-16 22:19:17 -0200
commitbe6dbd4b1ea00be1d63121cdc05d61424129a6ba (patch)
treeebc708648b1069959b6c2d2137f50c2aad3bf3b6
parent69f36afa11c0b754c40f4fc57408ccd85428e2b0 (diff)
downloademacs-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/ChangeLog6
-rw-r--r--lisp/emacs-lisp/package.el26
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 @@
12015-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
12015-01-16 Jorgen Schaefer <contact@jorgenschaefer.de> 72015-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.
1286Return 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 ()