Only use 'package-vc-repository-store' if necessary

* lisp/emacs-lisp/package-vc.el (package-vc-unpack): Check if the
upstream data indicates a custom lisp directory.
* lisp/emacs-lisp/package.el (package--delete-directory): Adapt
accordingly.
This commit is contained in:
Philip Kaludercic 2022-10-12 14:49:23 +02:00
parent 8e6e6e6de5
commit 4a25205ec1
No known key found for this signature in database
GPG key ID: F2C3CC513DB89F66
2 changed files with 28 additions and 24 deletions

View file

@ -2416,19 +2416,19 @@ compiled."
(cl-loop
for file in (directory-files-recursively dir "\\.el\\'")
do (comp-clean-up-stale-eln (comp-el-to-eln-filename file))))
(cond
((not (package-vc-p pkg-desc))
(delete-directory dir t))
((progn
(require 'package-vc) ;load `package-vc-repository-store'
(file-in-directory-p dir package-vc-repository-store))
(delete-directory
(expand-file-name
(car (file-name-split
(file-relative-name dir package-vc-repository-store)))
package-vc-repository-store)
t)
(delete-file (directory-file-name dir)))))
(if (and (package-vc-p pkg-desc)
(require 'package-vc) ;load `package-vc-repository-store'
(file-in-directory-p dir package-vc-repository-store))
(progn
(delete-directory
(expand-file-name
(car (file-name-split
(file-relative-name dir package-vc-repository-store)))
package-vc-repository-store)
t)
(delete-file (directory-file-name dir)))
(delete-directory dir t)))
(defun package-delete (pkg-desc &optional force nosave)
"Delete package PKG-DESC.