From 35d2432326505838c36b968e53dd67de85175788 Mon Sep 17 00:00:00 2001 From: romkatv Date: Sun, 12 Jan 2020 20:18:15 +0100 Subject: [PATCH] parse process substitutions --- internal/p10k.zsh | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/internal/p10k.zsh b/internal/p10k.zsh index 6c7be271..c4072d7a 100644 --- a/internal/p10k.zsh +++ b/internal/p10k.zsh @@ -5477,10 +5477,16 @@ function _p9k_parse_buffer() { (( ic )) && tokens[1,0]=(${(Z+C+)s}) || tokens[1,0]=(${(z)s}) done - if [[ $token == '<<'(|-) ]]; then - state=h - continue - fi + case $token in + '<<'(|-)) + state=h + continue + ;; + '`'*'`'|'"`'*'`"'|'$('*')'|'"$('*')"'|['<>=']'('*')') + s=${${token##('"'|)(['$<>']|)?}%%?('"'|)} + (( ic )) && tokens+=(';' ${(Z+C+)s}) || tokens+=(';' ${(z)s}) + ;; + esac case $state in *r) @@ -5638,7 +5644,7 @@ function _p9k_parse_buffer() { cmd+=$token$'\0' else state=t - [[ $token == ('(('*'))'|'`'*'`'|'$'*|['<>']'('*')'|*$'\0'*) ]] || cmd+=$token$'\0' + [[ $token == ('(('*'))'|'`'*'`'|'$'*|['<>=']'('*')'|*$'\0'*) ]] || cmd+=$token$'\0' fi done } always {