(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]} ) (FunctionDef check_summary_oneline [] (List (AndOr OP_AND_IF (Com {[LIT_CHARS test_tick]} ) (AndOr OP_AND_IF (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS commit]} {[VarSub 3 test_op=VS_TEST_PLUS {[DQ [VarSub 3]]}]} {[LIT_CHARS -m]} {[DQ [VarSub 2]]} ) (Com {[LIT_CHARS head]} {[LIT_CHARS -1]} < (FilenameRedirectNode filename={[LIT_CHARS act]} "> 1), > ) ) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('SUMMARY_PREFIX', {[DQ [ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS name-rev]} {[LIT_CHARS --name-only]} {[LIT_CHARS HEAD]})]]})]) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub 1]]} ) (= scope= flags=0 words=[] bindings=[('SUMMARY_PREFIX', {[DQ [VarSub SUMMARY_PREFIX][LIT_CHARS " ("][VarSub 1][LIT_CHARS ")"]]})]) ) ) ) ) (= scope= flags=0 words=[] bindings=[('SUMMARY_POSTFIX', {[DQ [ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS log]} {[LIT_CHARS -1]} {[LIT_CHARS --pretty] [LIT_DBRACKET_LIKE "="] [SQ ]})]]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "["][VarSub SUMMARY_PREFIX][LIT_CHARS " "][VarSub SUMMARY_POSTFIX][LIT_CHARS "] "][VarSub 2]]} < (FilenameRedirectNode filename={[LIT_CHARS exp]} "> 1), > ) (Com {[LIT_CHARS test_i18ncmp]} {[LIT_CHARS exp]} {[LIT_CHARS act]} ) ) ) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ file1 &&\n"> >file1 &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ file1 &&\n"> ]} ) (FunctionDef output_tests_cleanup [] (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS checkout]} {[LIT_CHARS master]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS rm]} {[LIT_CHARS file1]} ) (Com {[LIT_CHARS git]} {[LIT_CHARS commit]} {[LIT_CHARS -m]} {[DQ [LIT_CHARS cleanup]]} ) ) ) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \"commit is\" &&\n"> not/forbid &&\n"> \"commit is\" &&\n"> not/forbid &&\n"> current.1 &&\n"> current.2 &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \"commit is\" &&\n"> not/forbid &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ positive &&\n"> .*/>/\") &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ negative &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ negative &&\n"> actual &&\n"> expect &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >negative &&\n"> expect &&\n"> actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >negative &&\n"> actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >negative &&\n"> actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >negative &&\n"> text &&\n"> expect &&\n"> actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >negative &&\n"> text &&\n"> expect &&\n"> actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >negative &&\n"> text &&\n"> actual\n">]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "sample\n"][LIT_CHARS "\n"][LIT_CHARS "# Please enter the commit message for your changes. Lines starting\n"][LIT_CHARS "# with '#' will be ignored, and an empty message aborts the commit."]]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >negative &&\n"> \\$\" \\\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS AUTOIDENT]} {[SQ ]} {[SQ >negative &&\n"> ]} ) (Com {[LIT_CHARS write_script]} {[LIT_CHARS .git/FAKE_EDITOR]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "echo editor started > "][RIGHT_D_QUOTE "\""][ComSub (Com {[LIT_CHARS pwd]})][LIT_CHARS /.git/result][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "exit 0\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS NOAUTOIDENT]} {[SQ ]} {[SQ .git/result\n"> expect &&\n"> >negative &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ g &&\n"> g &&\n"> h &&\n"> g &&\n"> .git/result &&\n"> ]} ) (Com {[LIT_CHARS write_script]} {[LIT_CHARS .git/FAKE_EDITOR]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "# kill -TERM command added below.\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS EXECKEEPSPID]} {[SQ ]} {[SQ >negative &&\n"> ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ > .git/FAKE_EDITOR\n"> ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[LIT_CHARS .git/MERGE_MSG]} {[LIT_CHARS .git/COMMIT_EDITMSG]} ) (Com {[LIT_CHARS git]} {[LIT_CHARS reset]} {[LIT_CHARS -q]} {[LIT_CHARS --hard]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]} ) (Com {[LIT_CHARS write_script]} {[LIT_CHARS .git/FAKE_EDITOR]} < (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "mv \"$1\" \"$1.orig\"\n"] [LIT_CHARS "(\n"] [LIT_CHARS "\techo message\n"] [LIT_CHARS "\tcat \"$1.orig\"\n"] [LIT_CHARS ") >\"$1\"\n"]} 0), > ) (Com {[LIT_CHARS echo]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS template]} "> 1), > ) (FunctionDef clear_config [] (Subshell (List (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS --unset-all]} {[DQ [VarSub 1]]} ) (Case to_match={[VarSub ?]}, pat_word_list=[[{[LIT_CHARS 0]}, {[LIT_CHARS 5]}], [{[LIT_OTHER "*"]}]] (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) ) (FunctionDef try_commit [] (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS reset]} {[LIT_CHARS --hard]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} < (FilenameRedirectNode filename={[LIT_CHARS negative]} >"> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS commit]} {[LIT_CHARS -a]} {[VarSub *]} {[VarSub use_template]} more_env=[('GIT_EDITOR', {[LIT_CHARS .git/FAKE_EDITOR]})] ) (Case to_match={[DQ [VarSub use_template]]}, pat_word_list=[[{[SQ ]}], [{[LIT_OTHER "*"]}]] (Com {[LIT_CHARS test_i18ngrep]} {[LIT_OTHER "!"]} {[DQ [LIT_CHARS "^## Custom template"]]} {[LIT_CHARS .git/COMMIT_EDITMSG]} ) (Com {[LIT_CHARS test_i18ngrep]} {[DQ [LIT_CHARS "^## Custom template"]]} {[LIT_CHARS .git/COMMIT_EDITMSG]} ) ) ) ) ) ) (FunctionDef try_commit_status_combo [] (List (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) ) ) (Com {[LIT_CHARS try_commit_status_combo]} ) (= scope= flags=0 words=[] bindings=[('use_template', {[DQ [LIT_CHARS "-t template"]]})]) (Com {[LIT_CHARS try_commit_status_combo]} ) (Com {[LIT_CHARS test_done]} ) )