diff options
author | Artur Malabarba <bruce.connor.am@gmail.com> | 2015-06-08 10:50:22 +0100 |
---|---|---|
committer | Artur Malabarba <bruce.connor.am@gmail.com> | 2015-06-08 10:50:43 +0100 |
commit | f1aa40f47d774d06f8798b5866051c78c4129ce5 (patch) | |
tree | 34f077ee280dd7391fad02cdb72d446d3a52e049 /lisp/emacs-lisp/package.el | |
parent | c941d479322f8cc267908f19118f8558ea034259 (diff) | |
download | emacs-f1aa40f47d774d06f8798b5866051c78c4129ce5.tar.gz emacs-f1aa40f47d774d06f8798b5866051c78c4129ce5.tar.bz2 emacs-f1aa40f47d774d06f8798b5866051c78c4129ce5.zip |
* lisp/emacs-lisp/package.el (package-delete): Make interactive
Diffstat (limited to 'lisp/emacs-lisp/package.el')
-rw-r--r-- | lisp/emacs-lisp/package.el | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 6fecd9a837d..981f42cedb5 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -1979,12 +1979,31 @@ If some packages are not installed propose to install them." "Delete package PKG-DESC. Argument PKG-DESC is a full description of package as vector. +Interactively, prompt the user for the package name and version. + When package is used elsewhere as dependency of another package, refuse deleting it and return an error. -If FORCE is non-nil package will be deleted even if it is used -elsewhere. +If prefix argument FORCE is non-nil, package will be deleted even +if it is used elsewhere. If NOSAVE is non-nil, the package is not removed from `package-selected-packages'." + (interactive + (progn + ;; Initialize the package system to get the list of package + ;; symbols for completion. + (unless package--initialized + (package-initialize t)) + (let* ((package-table + (mapcar + (lambda (p) (cons (package-desc-full-name p) p)) + (delq nil + (mapcar (lambda (p) (unless (package-built-in-p p) p)) + (apply #'append (mapcar #'cdr package-alist)))))) + (package-name (completing-read "Delete package: " + (mapcar #'car package-table) + nil t))) + (list (cdr (assoc package-name package-table)) + current-prefix-arg nil)))) (let ((dir (package-desc-dir pkg-desc)) (name (package-desc-name pkg-desc)) pkg-used-elsewhere-by) |