@@ -66,11 +66,6 @@ gen_cmd_aux () {
6666 debug_print "LAYOUT : $LAYOUT"
6767 debug_print "CMD : $CMD"
6868
69- if test -z "$CMD"
70- then
71- CMD="echo" # vim "nop" operator
72- fi
73-
7469 start=0
7570 end=${#LAYOUT}
7671
@@ -144,11 +139,10 @@ gen_cmd_aux () {
144139
145140 # Step 2:
146141 #
147- # Search for all valid separators ("+", " /" or ",") which are *not*
142+ # Search for all valid separators ("/" or ",") which are *not*
148143 # inside parenthesis. Save the index at which each of them makes the
149144 # first appearance.
150145
151- index_new_tab=""
152146 index_horizontal_split=""
153147 index_vertical_split=""
154148
@@ -182,14 +176,7 @@ gen_cmd_aux () {
182176 then
183177 current=$c
184178
185- if test "$current" = "+"
186- then
187- if test -z "$index_new_tab"
188- then
189- index_new_tab=$i
190- fi
191-
192- elif test "$current" = "/"
179+ if test "$current" = "/"
193180 then
194181 if test -z "$index_horizontal_split"
195182 then
@@ -219,14 +206,7 @@ gen_cmd_aux () {
219206
220207 terminate="false"
221208
222- if ! test -z "$index_new_tab"
223- then
224- before="-tabnew"
225- after="tabnext"
226- index=$index_new_tab
227- terminate="true"
228-
229- elif ! test -z "$index_horizontal_split"
209+ if ! test -z "$index_horizontal_split"
230210 then
231211 before="leftabove split"
232212 after="wincmd j"
@@ -333,7 +313,21 @@ gen_cmd () {
333313
334314 # Obtain the first part of vim "-c" option to obtain the desired layout
335315
336- CMD=$(gen_cmd_aux "$LAYOUT")
316+ CMD=
317+ oldIFS=$IFS
318+ IFS=+
319+ for tab in $LAYOUT
320+ do
321+ if test -z "$CMD"
322+ then
323+ CMD="echo" # vim "nop" operator
324+ else
325+ CMD="$CMD | tabnew"
326+ fi
327+
328+ CMD=$(gen_cmd_aux "$tab" "$CMD")
329+ done
330+ IFS=$oldIFS
337331
338332
339333 # Adjust the just obtained script depending on whether more than one
@@ -565,12 +559,12 @@ run_unit_tests () {
565559 EXPECTED_CMD_08="-c \"set hidden diffopt-=hiddenoff | echo | leftabove split | leftabove vertical split | 1b | wincmd l | 3b | wincmd j | 4b | tabdo windo diffthis\" -c \"tabfirst\""
566560 EXPECTED_CMD_09="-c \"set hidden diffopt-=hiddenoff | echo | leftabove split | 4b | wincmd j | leftabove vertical split | 1b | wincmd l | 3b | tabdo windo diffthis\" -c \"tabfirst\""
567561 EXPECTED_CMD_10="-c \"set hidden diffopt-=hiddenoff | echo | leftabove vertical split | leftabove split | 1b | wincmd j | leftabove split | 2b | wincmd j | 3b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\""
568- EXPECTED_CMD_11="-c \"set hidden diffopt-=hiddenoff | echo | -tabnew | leftabove split | leftabove vertical split | 1b | wincmd l | leftabove vertical split | 2b | wincmd l | 3b | wincmd j | 4b | tabnext | - tabnew | leftabove vertical split | 2b | wincmd l | 1b | tabnext | - tabnew | leftabove vertical split | 2b | wincmd l | 3b | tabnext | leftabove vertical split | leftabove split | 1b | wincmd j | leftabove split | 2b | wincmd j | 3b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\""
562+ EXPECTED_CMD_11="-c \"set hidden diffopt-=hiddenoff | echo | leftabove split | leftabove vertical split | 1b | wincmd l | leftabove vertical split | 2b | wincmd l | 3b | wincmd j | 4b | tabnew | leftabove vertical split | 2b | wincmd l | 1b | tabnew | leftabove vertical split | 2b | wincmd l | 3b | tabnew | leftabove vertical split | leftabove split | 1b | wincmd j | leftabove split | 2b | wincmd j | 3b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\""
569563 EXPECTED_CMD_12="-c \"set hidden diffopt-=hiddenoff | echo | leftabove vertical split | leftabove split | leftabove vertical split | 1b | wincmd l | 3b | wincmd j | 2b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\""
570564 EXPECTED_CMD_13="-c \"set hidden diffopt-=hiddenoff | echo | leftabove vertical split | leftabove split | leftabove vertical split | 1b | wincmd l | 3b | wincmd j | 2b | wincmd l | leftabove vertical split | leftabove split | 1b | wincmd j | 3b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\""
571- EXPECTED_CMD_14="-c \"set hidden diffopt-=hiddenoff | echo | -tabnew | leftabove vertical split | 2b | wincmd l | 3b | tabnext | leftabove vertical split | 2b | wincmd l | 1b | tabdo windo diffthis\" -c \"tabfirst\""
572- EXPECTED_CMD_15="-c \"set hidden diffopt-=hiddenoff | echo | -tabnew | leftabove split | leftabove vertical split | 1b | wincmd l | leftabove vertical split | 2b | wincmd l | 3b | wincmd j | 4b | tabnext | - tabnew | leftabove vertical split | 2b | wincmd l | 1b | tabnext | - tabnew | leftabove vertical split | 2b | wincmd l | 3b | tabnext | leftabove vertical split | leftabove split | 1b | wincmd j | leftabove split | 2b | wincmd j | 3b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\""
573- EXPECTED_CMD_16="-c \"set hidden diffopt-=hiddenoff | echo | -tabnew | leftabove split | leftabove vertical split | 1b | wincmd l | leftabove vertical split | 2b | wincmd l | 3b | wincmd j | 4b | tabnext | - tabnew | leftabove vertical split | 2b | wincmd l | 1b | tabnext | - tabnew | leftabove vertical split | 2b | wincmd l | 3b | tabnext | leftabove vertical split | leftabove split | 1b | wincmd j | leftabove split | 2b | wincmd j | 3b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\""
565+ EXPECTED_CMD_14="-c \"set hidden diffopt-=hiddenoff | echo | leftabove vertical split | 2b | wincmd l | 3b | tabnew | leftabove vertical split | 2b | wincmd l | 1b | tabdo windo diffthis\" -c \"tabfirst\""
566+ EXPECTED_CMD_15="-c \"set hidden diffopt-=hiddenoff | echo | leftabove split | leftabove vertical split | 1b | wincmd l | leftabove vertical split | 2b | wincmd l | 3b | wincmd j | 4b | tabnew | leftabove vertical split | 2b | wincmd l | 1b | tabnew | leftabove vertical split | 2b | wincmd l | 3b | tabnew | leftabove vertical split | leftabove split | 1b | wincmd j | leftabove split | 2b | wincmd j | 3b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\""
567+ EXPECTED_CMD_16="-c \"set hidden diffopt-=hiddenoff | echo | leftabove split | leftabove vertical split | 1b | wincmd l | leftabove vertical split | 2b | wincmd l | 3b | wincmd j | 4b | tabnew | leftabove vertical split | 2b | wincmd l | 1b | tabnew | leftabove vertical split | 2b | wincmd l | 3b | tabnew | leftabove vertical split | leftabove split | 1b | wincmd j | leftabove split | 2b | wincmd j | 3b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\""
574568
575569 EXPECTED_TARGET_01="MERGED"
576570 EXPECTED_TARGET_02="LOCAL"
0 commit comments