diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-03-08 10:59:27 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-03-08 11:11:28 +0100 |
commit | 16f4acbddbb38275a52554caf693017465586ac6 (patch) | |
tree | dc6557825244fd10b7b7788fedfa9b76497c6684 | |
parent | e224495ce1ce373cc43b49faa538116c9cac1466 (diff) | |
download | guix-16f4acbddbb38275a52554caf693017465586ac6.tar guix-16f4acbddbb38275a52554caf693017465586ac6.tar.gz |
emacs: Gracefully handle wrong package names passed to 'guix-edit'.
Fixes <http://bugs.gnu.org/22933>.
* emacs/guix-main.scm (package-location-string): Rewrite to handle the
case where 'packages-by-name' returns the empty list.
Co-authored-by: Mathieu Lirzin <mthl@gnu.org>
-rw-r--r-- | emacs/guix-main.scm | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm index 34da6ac6b6..86cedfd459 100644 --- a/emacs/guix-main.scm +++ b/emacs/guix-main.scm @@ -954,10 +954,11 @@ GENERATIONS is a list of generation numbers." (define (package-location-string id-or-name) "Return a location string of a package with ID-OR-NAME." - (and-let* ((package (or (package-by-id id-or-name) - (first (packages-by-name id-or-name)))) - (location (package-location package))) - (location->string location))) + (and=> (or (package-by-id id-or-name) + (match (packages-by-name id-or-name) + (() #f) + ((package _ ...) package))) + (compose location->string package-location))) (define (package-source-derivation->store-path derivation) "Return a store path of the package source DERIVATION." |