From 83701d75fbb8cbd6fa724bf619a0e8aa47d3b609 Mon Sep 17 00:00:00 2001 From: Wieland Hoffmann Date: Sat, 13 Jan 2018 13:43:28 +0100 Subject: [PATCH 1/2] zsh/coredumpctl: Fix the completion An output from coredumpctl list is like > TIME PID UID GID SIG COREFILE EXE > Sun 2016-05-29 18:44:03 CEST 14578 1000 1000 6 none /tmp/pacaurtmp-wieland/python33/src/Python-3.3.6/python ^1 ^2 ^3 ^4 ^5 , but the previous sub() command turns that into > TIMEPID UID GID SIG COREFILE EXE > Sun2016-05-29 18:44:03 CEST 14578 1000 1000 6 none /tmp/pacaurtmp-wieland/python33/src/Python-3.3.6/python ^1 ^2 ^3 ^4 ^5 so the whole pipeline generated entries like $UID:$DESCRIPTION but that's not useful and probably not what was supposed to happen. This now generates entries like $PID:$DESCRIPTION which make everything work. Note that with this commmit, the completions will be sorted by PID by ZSH. --- shell-completion/zsh/_coredumpctl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shell-completion/zsh/_coredumpctl b/shell-completion/zsh/_coredumpctl index ea8cfb2dec..3445aa6f3d 100644 --- a/shell-completion/zsh/_coredumpctl +++ b/shell-completion/zsh/_coredumpctl @@ -17,7 +17,7 @@ _coredumpctl_command(){ cmd="${${_coredumpctl_cmds[(r)$words[1]:*]%%:*}}" if (( $#cmd )); then # user can set zstyle ':completion:*:*:coredumpctl:*' sort no for coredumps to be ordered by date, otherwise they get ordered by pid - _dumps=( "${(foa)$(coredumpctl list --no-legend | awk 'BEGIN{OFS=":"} {sub(/[[ \t]+/, ""); print $5,$0}' 2>/dev/null)}" ) + _dumps=( "${(foa)$(coredumpctl list --no-legend | awk 'BEGIN{OFS=":"} {sub(/[[ \t]+/, ""); print $4,$0}' 2>/dev/null)}" ) if [[ -n "$_dumps" ]]; then _describe -t pids 'coredumps' _dumps else From a6e4952d562d691a5eea09abd52a51593bb54042 Mon Sep 17 00:00:00 2001 From: Wieland Hoffmann Date: Sat, 13 Jan 2018 15:23:28 +0100 Subject: [PATCH 2/2] zsh/coredumpctl: Never sort the completion candidates That way, they're always sorted by date. I do not know how to make ZSH sort them by PID through some option, but that doesn't seem very useful in the first place. --- shell-completion/zsh/_coredumpctl | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/shell-completion/zsh/_coredumpctl b/shell-completion/zsh/_coredumpctl index 3445aa6f3d..f727820660 100644 --- a/shell-completion/zsh/_coredumpctl +++ b/shell-completion/zsh/_coredumpctl @@ -16,10 +16,9 @@ _coredumpctl_command(){ local -a _dumps cmd="${${_coredumpctl_cmds[(r)$words[1]:*]%%:*}}" if (( $#cmd )); then - # user can set zstyle ':completion:*:*:coredumpctl:*' sort no for coredumps to be ordered by date, otherwise they get ordered by pid - _dumps=( "${(foa)$(coredumpctl list --no-legend | awk 'BEGIN{OFS=":"} {sub(/[[ \t]+/, ""); print $4,$0}' 2>/dev/null)}" ) + _dumps=( "${(f)$(coredumpctl list --no-legend | awk 'BEGIN{OFS=":"} {sub(/[[ \t]+/, ""); print $4,$0}' 2>/dev/null)}" ) if [[ -n "$_dumps" ]]; then - _describe -t pids 'coredumps' _dumps + _describe -V -t pids 'coredumps' _dumps else _message "no coredumps" fi