[systemd-commits] shell-completion/systemd-zsh-completion.zsh

Lennart Poettering lennart at kemper.freedesktop.org
Mon May 6 13:49:29 PDT 2013


 shell-completion/systemd-zsh-completion.zsh |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

New commits:
commit 9494131b91decc5300f9bbfa0568e64546d7917a
Author: Daniel Wallace <danielwallace at gtmanfred.com>
Date:   Sun May 5 18:09:53 2013 -0500

    zsh_completion: complete only pids for systemd-coredumpctl
    
    Instead of completing the whole line, which doesn't work, only complete
    the pid, but still show the whole line so the user can see which command
    was which.
    
    Users can also let the parameter expansion sort the completion by date
    instead of by pid, by setting
    
    zstyle ':completion:*:*:systemd-coredumpctl:*' sort no
    
    so that the zshcompsys doesn't sort the _describe function for only
    systemd-coredumpctl.

diff --git a/shell-completion/systemd-zsh-completion.zsh b/shell-completion/systemd-zsh-completion.zsh
index b29a2e9..411646e 100644
--- a/shell-completion/systemd-zsh-completion.zsh
+++ b/shell-completion/systemd-zsh-completion.zsh
@@ -896,12 +896,13 @@ _systemd-coredumpctl_command(){
         _describe -t commands 'systemd-coredumpctl command' _systemd_coredumpctl_cmds
     else
         local curcontext="$curcontext"
-        local -a dumps
+        local -a _dumps
         cmd="${${_systemd_coredumpctl_cmds[(r)$words[1]:*]%%:*}}"
         if (( $#cmd  )); then
-            dumps=( "${(f)$(_call_program dumps "systemd-coredumpctl list 2>/dev/null")}" )
-            if [[ -n "$dumps" ]]; then
-                compadd "${dumps[@]}"
+			# user can set zstyle ':completion:*:*:systemd-coredumpctl:*' sort no for coredumps to be ordered by date, otherwise they get ordered by pid
+			_dumps=( "${(foa)$(systemd-coredumpctl list | awk 'BEGIN{OFS=":"} /^\s/ {sub(/[[ \t]+/, ""); print $5,$0}' 2>/dev/null)}" )
+            if [[ -n "$_dumps" ]]; then
+                _describe -t pids 'coredumps' _dumps
             else
                 _message "no coredumps"
             fi



More information about the systemd-commits mailing list