From add2ac59fc60311d2ab2ca52f9139037bd0f7682 Mon Sep 17 00:00:00 2001 From: Daniel Shahaf Date: Thu, 28 Jul 2016 07:42:54 +0000 Subject: [PATCH] 'main': Permit $flags_with_argument to be empty. --- highlighters/main/main-highlighter.zsh | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/highlighters/main/main-highlighter.zsh b/highlighters/main/main-highlighter.zsh index 30a2848..ac2406d 100644 --- a/highlighters/main/main-highlighter.zsh +++ b/highlighters/main/main-highlighter.zsh @@ -545,17 +545,20 @@ _zsh_highlight_main_highlighter_highlight_list() # Parse the sudo command line if (( ! in_redirection )); then if [[ $this_word == *':sudo_opt:'* ]]; then - case "$arg" in + if [[ -n $flags_with_argument ]] && + [[ $arg == '-'[$flags_with_argument] ]]; then # Flag that requires an argument - '-'[$flags_with_argument]) - this_word=${this_word//:start:/}; - next_word=':sudo_arg:';; + this_word=${this_word//:start:/} + next_word=':sudo_arg:' + elif [[ $arg == '-'* ]]; then + # Flag that requires no argument, or unknown flag. # This prevents misbehavior with sudo -u -otherargument - '-'*) this_word=${this_word//:start:/}; - next_word+=':start:'; - next_word+=':sudo_opt:';; - *) ;; - esac + this_word=${this_word//:start:/} + next_word+=':start:' + next_word+=':sudo_opt:' + else + # + fi elif [[ $this_word == *':sudo_arg:'* ]]; then next_word+=':sudo_opt:' next_word+=':start:'