Fix a bug where wrong dependent packages could be deleted

This commit is contained in:
syl20bnr 2014-10-24 22:44:14 -04:00
parent ef1e3efa6d
commit 7c3a2f3059

View file

@ -288,19 +288,20 @@ are not in `spacemacs-all-packages' (explicit packages)"
imp-pkg dependencies '())))) imp-pkg dependencies '()))))
(delete-dups result))) (delete-dups result)))
(defun contribsys//get-orphan-packages2 (imp-pkg dependencies acc) (defun contribsys//get-orphan-packages2 (pkg dependencies acc)
"Reccursive function to get the orphans packages as well as their "Reccursive function to get the orphans packages as well as their
orphan dependencies." orphan dependencies."
(if (ht-contains? dependencies imp-pkg) (if (and (ht-contains? dependencies pkg)
(dolist (parent (ht-get dependencies imp-pkg)) (not (ht-contains? spacemacs-all-packages pkg)))
(dolist (parent (ht-get dependencies pkg))
(let ((orphans (contribsys//get-orphan-packages2 (let ((orphans (contribsys//get-orphan-packages2
parent dependencies acc))) parent dependencies acc)))
(unless (not orphans) (unless (not orphans)
(add-to-list 'acc imp-pkg) (add-to-list 'acc pkg)
(if acc (setq acc (append acc orphans)) (if acc (setq acc (append acc orphans))
(setq acc orphans))))) (setq acc orphans)))))
(unless (ht-contains? spacemacs-all-packages imp-pkg) (unless (ht-contains? spacemacs-all-packages pkg)
(if acc (add-to-list 'acc imp-pkg) (setq acc (list imp-pkg))))) (if acc (add-to-list 'acc pkg) (setq acc (list pkg)))))
acc) acc)
(defun contribsys/get-package-dependencies (package) (defun contribsys/get-package-dependencies (package)