summaryrefslogtreecommitdiff
path: root/Completion
diff options
context:
space:
mode:
Diffstat (limited to 'Completion')
-rw-r--r--Completion/Base/Core/_normal13
1 files changed, 13 insertions, 0 deletions
diff --git a/Completion/Base/Core/_normal b/Completion/Base/Core/_normal
index 36ecb225d..6bdb8f09b 100644
--- a/Completion/Base/Core/_normal
+++ b/Completion/Base/Core/_normal
@@ -9,6 +9,19 @@ else
_compskip=''
fi
+# Check for a history reference to complete modifiers.
+# $PREFIX has a quoted form of the !, so we can't test that
+# (it might the start of a real argument), but words has the
+# raw McCoy.
+if [[ -o BANG_HIST && $words[CURRENT] = \!*: && -z $compstate[quote] ]]; then
+ # This looks like a real history expansion; in that case
+ # we'd better put the !'s back the way pfalstad intended.
+ PREFIX=${PREFIX//\\!/!}
+ compset -P '*:'
+ _history_modifiers h
+ return
+fi
+
# Completing in command position?
if [[ CURRENT -eq 1 ]]; then