diff options
author | Alex Kost <alezost@gmail.com> | 2015-08-12 15:44:22 +0300 |
---|---|---|
committer | Alex Kost <alezost@gmail.com> | 2015-08-30 18:26:01 +0300 |
commit | 1ce96dd9271445133b920cff81bbb44085a5fe7c (patch) | |
tree | 2c7dd2d6fb247954c728af2a53f26fbbd2a8c7c1 | |
parent | c10521e97679c35a40926084e049445cc5053254 (diff) | |
download | guix-1ce96dd9271445133b920cff81bbb44085a5fe7c.tar.gz |
emacs: Add and use 'guix-concat-strings'.
* emacs/guix-utils.el (guix-concat-strings): New function. * emacs/guix-pcomplete.el (guix-pcomplete-short-options): Use it. * emacs/guix-base.el (guix-get-package-strings): Likewise.
-rw-r--r-- | emacs/guix-base.el | 2 | ||||
-rw-r--r-- | emacs/guix-pcomplete.el | 2 | ||||
-rw-r--r-- | emacs/guix-utils.el | 16 |
3 files changed, 18 insertions, 2 deletions
diff --git a/emacs/guix-base.el b/emacs/guix-base.el index 2212dd746f..76974e12ab 100644 --- a/emacs/guix-base.el +++ b/emacs/guix-base.el @@ -913,7 +913,7 @@ ENTRIES is a list of package entries to get info about packages." (concat (guix-get-full-name entry) (when outputs (concat ":" - (mapconcat #'identity outputs ","))) + (guix-concat-strings outputs ","))) (when location (concat "\t(" location ")"))))))) specs))) diff --git a/emacs/guix-pcomplete.el b/emacs/guix-pcomplete.el index 0049c94d38..2b9249554b 100644 --- a/emacs/guix-pcomplete.el +++ b/emacs/guix-pcomplete.el @@ -147,7 +147,7 @@ subcommands, actions, etc. for this guix COMMAND." "Return a string with available short options for guix COMMAND." guix-pcomplete-parse-short-option-regexp (lambda (list) - (mapconcat #'identity list ""))) + (guix-concat-strings list ""))) (guix-memoized-defun guix-pcomplete-all-packages () "Return a list of all available Guix packages." diff --git a/emacs/guix-utils.el b/emacs/guix-utils.el index 8a0673a3a0..df6636c139 100644 --- a/emacs/guix-utils.el +++ b/emacs/guix-utils.el @@ -128,6 +128,22 @@ split it into several short lines." (fill-region (point-min) (point-max))) (buffer-string))) +(defun guix-concat-strings (strings separator &optional location) + "Return new string by concatenating STRINGS with SEPARATOR. +If LOCATION is a symbol `head', add another SEPARATOR to the +beginning of the returned string; if `tail' - add SEPARATOR to +the end of the string; if nil, do not add SEPARATOR; otherwise +add both to the end and to the beginning." + (let ((str (mapconcat #'identity strings separator))) + (cond ((null location) + str) + ((eq location 'head) + (concat separator str)) + ((eq location 'tail) + (concat str separator)) + (t + (concat separator str separator))))) + (defun guix-completing-read-multiple (prompt table &optional predicate require-match initial-input hist def inherit-input-method) |