diff options
Diffstat (limited to 'Completion')
-rw-r--r-- | Completion/Base/_precommand | 3 | ||||
-rw-r--r-- | Completion/Core/_complete | 2 | ||||
-rw-r--r-- | Completion/Core/_normal | 7 |
3 files changed, 8 insertions, 4 deletions
diff --git a/Completion/Base/_precommand b/Completion/Base/_precommand index 1ff11bc3c..bcda9fc8b 100644 --- a/Completion/Base/_precommand +++ b/Completion/Base/_precommand @@ -3,7 +3,4 @@ shift words (( CURRENT-- )) -# We now want to go back to doing ordinary completion on the new word, -# so restore the default _compskip. -_compskip='' _normal diff --git a/Completion/Core/_complete b/Completion/Core/_complete index 9b6311100..6affdba2a 100644 --- a/Completion/Core/_complete +++ b/Completion/Core/_complete @@ -31,7 +31,7 @@ fi # For arguments and command names we use the `_normal' function. if [[ "$compstate[context]" = command ]]; then - _normal + _normal -s else # Let's see if we have a special completion definition for the other # possible contexts. diff --git a/Completion/Core/_normal b/Completion/Core/_normal index 2b53e0b02..e8b5fc146 100644 --- a/Completion/Core/_normal +++ b/Completion/Core/_normal @@ -2,6 +2,13 @@ local comp command cmd1 cmd2 pat val name i ret=1 _compskip="$_compskip" +# If we get the option `-s', we don't reset `_compskip'. This ensures +# that a value set in the function for the `-first-' context is kept, +# but that we still use pattern functions when we were called form +# another completion function. + +[[ "$1" = -s ]] || _compskip='' + # Completing in command position? If not we set up `cmd1' and `cmd2' as # two strings we have to search in the completion definition arrays (e.g. # a path and the last path name component). |