From be359b6e768a4db875811e3b0cf2cc8bcddda7e6 Mon Sep 17 00:00:00 2001
From: romkatv <roman.perepelitsa@gmail.com>
Date: Sun, 12 Jan 2020 13:14:03 +0100
Subject: group precommands with commands

---
 internal/p10k.zsh | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

(limited to 'internal')

diff --git a/internal/p10k.zsh b/internal/p10k.zsh
index 3fc23c0a..0fc127c2 100644
--- a/internal/p10k.zsh
+++ b/internal/p10k.zsh
@@ -5415,8 +5415,8 @@ function _p9k_parse_buffer() {
   local -r var="\$$id|\${$id}|\"\$$id\"|\"\${$id}\""
 
   local -i e ic c=${2:-'1 << 62'}
-  local skip n s r state
-  local -a aln alp alf v commands
+  local skip n s r state cmd
+  local -a aln alp alf v
 
   if [[ -o interactive_comments ]]; then
     ic=1
@@ -5474,8 +5474,8 @@ function _p9k_parse_buffer() {
         a)
           if [[ $token == $skip ]]; then
             if [[ $token == '{' ]]; then
-              P9K_COMMANDS+=($commands)
-              commands=()
+              P9K_COMMANDS+=$cmd
+              cmd=
               state=
             else
               skip='{'
@@ -5490,7 +5490,7 @@ function _p9k_parse_buffer() {
             if [[ $token == '()' ]]; then
               state=
             else
-              P9K_COMMANDS+=($commands)
+              P9K_COMMANDS+=$cmd
               if [[ $token == '}' ]]; then
                 state=a
                 skip=always
@@ -5499,7 +5499,7 @@ function _p9k_parse_buffer() {
                 state=${skip:+s}
               fi
             fi
-            commands=()
+            cmd=
             continue
           elif [[ $state == t ]]; then
             continue
@@ -5582,17 +5582,18 @@ function _p9k_parse_buffer() {
           ;;
       esac
 
-      commands+=$token
-      if (( $+__p9k_pb_precommand[$commands[-1]] )); then
+      if (( $+__p9k_pb_precommand[$token] )); then
         state=p
-        skip=$__p9k_pb_precommand[$commands[-1]]
+        skip=$__p9k_pb_precommand[$token]
+        cmd+="$token "
       else
         state=t
+        [[ $token == ('(('*'))'|'`'*'`'|'$'*) ]] || cmd+="$token "
       fi
     done
   } always {
-    P9K_COMMANDS+=($commands)
-    P9K_COMMANDS=(${(u)P9K_COMMANDS:#('(('*'))'|'`'*'`'|'$'*)})
+    P9K_COMMANDS+=$cmd
+    P9K_COMMANDS=(${(u)P9K_COMMANDS% })
   }
 }
 
-- 
cgit v1.2.3