]> code.delx.au - gnu-emacs-elpa/commitdiff
Parse also `package-alist` when getting dependencies (#58).
authorThierry Volpiatto <thierry.volpiatto@gmail.com>
Fri, 8 Jan 2016 06:16:52 +0000 (07:16 +0100)
committerJohn Wiegley <johnw@newartisans.com>
Fri, 8 Jan 2016 20:52:13 +0000 (12:52 -0800)
* async-bytecomp.el (async-bytecomp--get-package-deps):
Try `package-archive-contents` and also `package-alist`
in case pkg no more present in `package-archive-contents`.

packages/async/async-bytecomp.el

index a2885afcbf06f67a864bfc0c058fa01d49ec74ee..81e526b5d30cc34f7497e64235fbe52ddca671a6 100644 (file)
@@ -110,10 +110,15 @@ All *.elc files are systematically deleted before proceeding."
 (defun async-bytecomp--get-package-deps (pkg &optional only)
   ;; Same as `package--get-deps' but parse instead `package-archive-contents'
   ;; because PKG is not already installed and not present in `package-alist'.
-  (let* ((pkg-desc (cadr (assq pkg package-archive-contents)))
+  ;; However fallback to `package-alist' in case PKG no more present
+  ;; in `package-archive-contents' due to modification to `package-archives'.
+  ;; See issue #58.
+  (let* ((pkg-desc (cadr (or (assq pkg package-archive-contents)
+                             (assq pkg package-alist))))
          (direct-deps (cl-loop for p in (package-desc-reqs pkg-desc)
                                for name = (car p)
-                               when (assq name package-archive-contents)
+                               when (or (assq name package-archive-contents)
+                                        (assq name package-alist))
                                collect name))
          (indirect-deps (unless (eq only 'direct)
                           (delete-dups