(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <'log/show --expand-tabs'>)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:HT) op:Equal rhs:{(DQ ('\t'))} spids:[15])] spids: [15] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:title) op: Equal rhs: {(SQ <'tab indent at the beginning of the title line'>)} spids: [20] ) ] spids: [20] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:body) op: Equal rhs: {(SQ <'tab indent on a line in the body'>)} spids: [25] ) ] spids: [25] ) (FuncDef name: count_expand body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:expect) op:Equal rhs:{(EmptyPart)} spids:[42])] spids: [42] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:count) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Number '$1')}) right: (ArithWord w:{($ VSub_Number '$2')}) ) spids: [46 55] ) } spids: [45] ) ] spids: [45] ) terminator: <Op_Semi ';'> ) (While cond: [(C {(test)} {($ VSub_Name '$count')} {(-gt)} {(0)})] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:expect) op: Equal rhs: {(DQ ($ VSub_Name '$expect') (' '))} spids: [76] ) ] spids: [76] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:count) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Name '$count')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [84 93] ) } spids: [83] ) ] spids: [83] ) ] spids: [73 96] ) ) (C {(shift)} {(2)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:count) op: Equal rhs: {($ VSub_Number '$1')} spids: [104] ) ] spids: [104] ) terminator: <Op_Semi ';'> ) (While cond: [(C {(test)} {($ VSub_Name '$count')} {(-gt)} {(0)})] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:expect) op: Equal rhs: {(DQ ($ VSub_Name '$expect') ($ VSub_Name '$HT'))} spids: [126] ) ] spids: [126] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:count) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Name '$count')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [134 143] ) } spids: [133] ) ] spids: [133] ) ] spids: [123 146] ) ) (C {(shift)}) (Case to_match: {(DQ (' ') ($ VSub_Star '$*') (' '))} arms: [ (case_arm pat_list: [{(Lit_Other '*') (SQ <' --pretty=short '>) (Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:line) op: Equal rhs: {($ VSub_Name '$title')} spids: [176] ) ] spids: [176] ) ] spids: [168 173 179 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:line) op: Equal rhs: {($ VSub_Name '$body')} spids: [186] ) ] spids: [186] ) ] spids: [182 183 189 16777215] ) ] spids: [157 165 192] ) (Pipeline children: [ (BraceGroup children: [ (C {(echo)} {(DQ ('git show -s ') ($ VSub_Star '$*'))}) (C {(echo)} {(DQ ($ VSub_Name '$expect') ($ VSub_Name '$line'))}) ] spids: [212] ) (SimpleCommand words: [{(sed)} {(-e)} {(SQ <'s/ /./g'>)}] redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(expect)} spids:[243])] ) ] negated: F ) (Pipeline children: [ (BraceGroup children: [ (C {(echo)} {(DQ ('git show -s ') ($ VSub_Star '$*'))}) (Pipeline children: [ (C {(git)} {(show)} {(-s)} {(DQ ($ VSub_At '$@'))}) (C {(sed)} {(-n)} {(-e)} { (DQ (/) ($ VSub_Name '$line') (EscapedLiteralPart token: <Lit_EscapedChar '\\$'> ) (/p) ) } ) ] negated: F ) ] spids: [248] ) (SimpleCommand words: [{(sed)} {(-e)} {(SQ <'s/ /./g'>)}] redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(actual)} spids:[298])] ) ] negated: F ) (C {(test_cmp)} {(expect)} {(actual)}) ] spids: [39] ) spids: [34 38] ) (FuncDef name: test_expand body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:fmt) op: Equal rhs: {($ VSub_Number '$1')} spids: [320] ) ] spids: [320] ) (Case to_match: {(DQ ($ VSub_Name '$fmt'))} arms: [ (case_arm pat_list: [ {(Lit_Other '*') (Lit_Other '=') (raw)} {(Lit_Other '*') (Lit_Other '=') (short)} {(Lit_Other '*') (Lit_Other '=') (email)} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:default) op: Equal rhs: {(DQ ('0 1'))} spids: [351] ) ] spids: [351] ) ] spids: [333 348 356 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:default) op: Equal rhs: {(DQ ('8 0'))} spids: [363] ) ] spids: [363] ) ] spids: [359 360 368 16777215] ) ] spids: [324 330 371] ) (Case to_match: {(DQ ($ VSub_Name '$fmt'))} arms: [ (case_arm pat_list: [{(Lit_Other '*') (Lit_Other '=') (email)}] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:in) op:Equal rhs:{(0)} spids:[389])] spids: [389] ) ] spids: [383 386 392 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:in) op:Equal rhs:{(4)} spids:[399])] spids: [399] ) ] spids: [395 396 402 16777215] ) ] spids: [374 380 405] ) (C {(test_expect_success)} { (DQ (expand/no-expand) (BracedVarSub token: <VSub_Name fmt> suffix_op: (StringUnary op_id: VTest_ColonPlus arg_word: {(' for ') ($ VSub_Name '$fmt')} ) spids: [412 417] ) ) } { (SQ <'\n'> <'\t\tcount_expand $in $default $fmt &&\n'> <'\t\tcount_expand $in 8 0 $fmt --expand-tabs &&\n'> <'\t\tcount_expand $in 8 0 --expand-tabs $fmt &&\n'> <'\t\tcount_expand $in 8 0 $fmt --expand-tabs=8 &&\n'> <'\t\tcount_expand $in 8 0 --expand-tabs=8 $fmt &&\n'> <'\t\tcount_expand $in 0 1 $fmt --no-expand-tabs &&\n'> <'\t\tcount_expand $in 0 1 --no-expand-tabs $fmt &&\n'> <'\t\tcount_expand $in 0 1 $fmt --expand-tabs=0 &&\n'> <'\t\tcount_expand $in 0 1 --expand-tabs=0 $fmt &&\n'> <'\t\tcount_expand $in 4 0 $fmt --expand-tabs=4 &&\n'> <'\t\tcount_expand $in 4 0 --expand-tabs=4 $fmt\n'> <'\t'> ) } ) ] spids: [317] ) spids: [312 316] ) (C {(test_expect_success)} {(SQ <setup>)} { (SQ <'\n'> <'\ttest_tick &&\n'> <'\tsed -e "s/Q/$HT/g" <<-EOF >msg &&\n'> <'\tQ$title\n'> <'\n'> <'\tQ$body\n'> <'\tEOF\n'> <'\tgit commit --allow-empty -F msg\n'> ) } ) (C {(test_expand)} {(DQ )}) (C {(test_expand)} {(--pretty)}) (C {(test_expand)} {(--pretty) (Lit_Other '=') (short)}) (C {(test_expand)} {(--pretty) (Lit_Other '=') (medium)}) (C {(test_expand)} {(--pretty) (Lit_Other '=') (full)}) (C {(test_expand)} {(--pretty) (Lit_Other '=') (fuller)}) (C {(test_expand)} {(--pretty) (Lit_Other '=') (raw)}) (C {(test_expand)} {(--pretty) (Lit_Other '=') (email)}) (C {(test_done)}) ] )