diff options
author | Mikael Magnusson <mikachu@gmail.com> | 2011-12-14 01:11:20 +0000 |
---|---|---|
committer | Mikael Magnusson <mikachu@gmail.com> | 2011-12-14 01:11:20 +0000 |
commit | 346c4c46cc976a38206f3933029675e209b249eb (patch) | |
tree | ae7beb0bcce387d4ee4ef4287ab1581a886249bf /Completion/Zsh | |
parent | fd1c2364f42993c327f10b8a1b3ce205de06e501 (diff) | |
download | zsh-346c4c46cc976a38206f3933029675e209b249eb.tar.gz zsh-346c4c46cc976a38206f3933029675e209b249eb.tar.xz zsh-346c4c46cc976a38206f3933029675e209b249eb.zip |
30021: _globquals: Add d flag, show what unit the digits are entered in.
Diffstat (limited to 'Completion/Zsh')
-rw-r--r-- | Completion/Zsh/Type/_globquals | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/Completion/Zsh/Type/_globquals b/Completion/Zsh/Type/_globquals index 778dfa822..9de7742ff 100644 --- a/Completion/Zsh/Type/_globquals +++ b/Completion/Zsh/Type/_globquals @@ -1,7 +1,8 @@ #autoload -local state=qual expl char delim +local state=qual expl char delim timespec local -a alts +local -A specmap while [[ -n $PREFIX ]]; do char=$PREFIX[1] @@ -111,18 +112,19 @@ while [[ -n $PREFIX ]]; do ;; ([amc]) - if ! compset -P '([Mwhms]|)([-+]|)<->'; then + if ! compset -P '([Mwhmsd]|)([-+]|)<->'; then # complete/skip relative time spec alts=() - if ! compset -P '[Mwhms]' && [[ -z $PREFIX ]]; then - alts+=( - "time-specifiers:time specifier:\ -((M\:months w\:weeks h\:hours m:\minutes s\:seconds))") + timespec=$PREFIX[1] + if ! compset -P '[Mwhmsd]' && [[ -z $PREFIX ]]; then + alts+=("time-specifiers:time specifier:\ +((M\:months w\:weeks h\:hours m:\minutes s\:seconds d\:days))") fi if ! compset -P '[-+]' && [[ -z $PREFIX ]]; then alts+=("senses:sense:((-\:less\ than +\:more\ than))") fi - alts+=('digits:digit: ') + specmap=( M months w weeks h hours m minutes s seconds '(|+|-|d)' days) + alts+=('digits:digit ('${${specmap[(K)$timespec]}:-invalid time specifier}'):' ) _alternative $alts return fi |