GNU bug report logs -
#21625
[PATCH] lisp/emacs-lisp/package.el (package-install): Fix error.
Previous Next
Reported by: Aaron Ecay <aaronecay <at> gmail.com>
Date: Mon, 5 Oct 2015 19:57:02 UTC
Severity: normal
Tags: patch
Done: Artur Malabarba <bruce.connor.am <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Looks good to me.
Thanks for the patch Aaron. Have you done the copyright paperwork?
2015-10-05 20:55 GMT+01:00 Aaron Ecay <aaronecay <at> gmail.com>:
> * lisp/emacs-lisp/package.el (package-install): Fix error when ‘pkg’ is
> not a ‘package-desc’. Also clarify documentation.
>
> Through trial and error, I discovered that for non-interactive use the
> ‘pkg’ argument of the package-install function should be a symbol, not a
> string. This can also be discerned by inspecting the (interactive)
> spec, specifically the call to ‘intern’. However, even when proceeding
> with a symbol an error is raised if the package is already installed.
> This patch reuses the name computed earlier in the function to avoid
> this.
> ---
> lisp/emacs-lisp/package.el | 20 ++++++++++----------
> 1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
> index eb66e8f..89f2a1a 100644
> --- a/lisp/emacs-lisp/package.el
> +++ b/lisp/emacs-lisp/package.el
> @@ -1887,7 +1887,7 @@ add a call to it along with some explanatory comments."
> ;;;###autoload
> (defun package-install (pkg &optional dont-select)
> "Install the package PKG.
> -PKG can be a package-desc or the package name of one the available packages
> +PKG can be a package-desc or a symbol naming one of the available packages
> in an archive in `package-archives'. Interactively, prompt for its name.
>
> If called interactively or if DONT-SELECT nil, add PKG to
> @@ -1918,15 +1918,15 @@ to install it but still mark it as selected."
> pkg)))
> (unless (or dont-select (package--user-selected-p name))
> (package--save-selected-packages
> - (cons name package-selected-packages))))
> - (if-let ((transaction
> - (if (package-desc-p pkg)
> - (unless (package-installed-p pkg)
> - (package-compute-transaction (list pkg)
> - (package-desc-reqs pkg)))
> - (package-compute-transaction () (list (list pkg))))))
> - (package-download-transaction transaction)
> - (message "`%s' is already installed" (package-desc-full-name pkg))))
> + (cons name package-selected-packages)))
> + (if-let ((transaction
> + (if (package-desc-p pkg)
> + (unless (package-installed-p pkg)
> + (package-compute-transaction (list pkg)
> + (package-desc-reqs pkg)))
> + (package-compute-transaction () (list (list pkg))))))
> + (package-download-transaction transaction)
> + (message "`%s' is already installed" name))))
>
> (defun package-strip-rcs-id (str)
> "Strip RCS version ID from the version string STR.
> --
> 2.6.0
>
>
>
>
This bug report was last modified 9 years and 246 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.