(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:{(SQ )} 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 -1] ) (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 -1] ) ] 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:-1 arg_word:{(expect)} spids:[243])] ) ] negated: False ) (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: False ) ] spids: [248] ) (SimpleCommand words: [{(sed)} {(-e)} {(SQ <"s/ /./g">)}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(actual)} spids:[298])] ) ] negated: False ) (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 -1] ) (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 -1] ) ] 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 -1] ) (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 -1] ) ] 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)}) ] )