diff --git a/internal/parse.zsh b/internal/parse.zsh index b59b4c73..f7d848a6 100644 --- a/internal/parse.zsh +++ b/internal/parse.zsh @@ -114,6 +114,10 @@ typeset -gA _p9k_skip_arg=( # --------------- # ${x/} # --------------- +# - -- x +# --------------- +# command -p -p x +# --------------- # * # --------------- # x=$y; $x @@ -187,14 +191,16 @@ function _p9k_extract_commands() { done case $state in - t) + t|p*) if (( $+_p9k_term[$token] )); then skip=$_p9k_skip_arg[$token] state=${skip:+s} [[ $token == '()' ]] || _p9k_commands+=($commands) commands=() - fi - continue;; + continue + elif [[ $state == t ]]; then + continue + fi;; s) if [[ $token == $~skip ]]; then state= @@ -220,7 +226,6 @@ function _p9k_extract_commands() { fi if [[ $token == *'$'* ]]; then - setopt xtrace if [[ $token == $~var ]]; then n=${${token##[^[:IDENT:]]}%%[^[:IDENT:]]} [[ $token == *'"' ]] && v=("${(@P)n}") || v=(${(P)n})