From 6a4f094ebd11e10a03d8c10016a0f6de392022ba Mon Sep 17 00:00:00 2001 From: Marlon Richert Date: Sat, 29 Apr 2023 19:25:37 +0300 Subject: [PATCH 1/3] 51641: Fix _prefix insertion logic --- Completion/Base/Completer/_prefix | 9 +-------- Test/Y01completion.ztst | 18 ++++++++++++++++++ Test/comptest | 2 +- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/Completion/Base/Completer/_prefix b/Completion/Base/Completer/_prefix index 74be5f47d..01739166e 100644 --- a/Completion/Base/Completer/_prefix +++ b/Completion/Base/Completer/_prefix @@ -49,14 +49,7 @@ for tmp in "$comp[@]"; do fi if [[ "$tmp" != _prefix ]] && "$tmp"; then - [[ compstate[nmatches] -gt 1 ]] && return 0 - compadd -U -i "$IPREFIX" -I "$ISUFFIX" - "${compstate[unambiguous]%$suf}x" - compstate[list]= - if [[ -n $compstate[unambiguous] ]]; then - compstate[insert]=unambiguous - else - compstate[insert]=0 - fi + compstate[to_end]='' return 0 fi (( _matcher_num++ )) diff --git a/Test/Y01completion.ztst b/Test/Y01completion.ztst index f976f9f91..51e246307 100644 --- a/Test/Y01completion.ztst +++ b/Test/Y01completion.ztst @@ -63,6 +63,24 @@ >NO:{file1} >NO:{file2} + comptesteval 'tst-insert() { compstate[insert]=1; compstate[list]= }' + comptesteval 'comppostfuncs=( tst-insert )' + comptest $': dir1\ebf\t' +0:_prefix with compstate[insert]=1 does not move to end +>line: {: file1}{dir1} + + comptesteval 'unfunction tst-insert' + comptesteval 'comppostfuncs=()' + comptest $': dir1\ebf\t\t\t\t' +0:_prefix inserts unambiguous and does not move to end +>line: {: file}{dir1} +>line: {: file}{dir1} +>DESCRIPTION:{file} +>FI:{file1} +>FI:{file2} +>line: {: file1}{dir1} +>line: {: file2}{dir1} + comptesteval $'zstyle -d \'*\' glob' comptesteval '_users () { compadd user1 user2 }' comptest $': ~\t\t\t\t\t' diff --git a/Test/comptest b/Test/comptest index 79c69979a..a57f4bcc4 100644 --- a/Test/comptest +++ b/Test/comptest @@ -40,7 +40,7 @@ KEYTIMEOUT=1 setopt zle autoload -U compinit compinit -u -zstyle ":completion:*" completer _expand _complete _ignored +zstyle ":completion:*" completer _expand _complete _prefix _ignored zstyle ":completion:*:default" list-colors "no=" "fi=" "di=" "ln=" "pi=" "so=" "bd=" "cd=" "ex=" "mi=" "tc=" "sp=" "lc=" "ec=\n" "rc=" zstyle ":completion:*" group-name "" zstyle ":completion:*:messages" format "%d -- 2.39.2 (Apple Git-143)