(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]}) (FunctionDef commit_msg_is [] (List (= scope= flags=0 words=[] bindings=[('expect', {[LIT_CHARS commit_msg_is.expect]})]) (= scope= flags=0 words=[] bindings=[('actual', {[LIT_CHARS commit_msg_is.actual]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "%s"]]} {[DQ [ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS log]} {[LIT_CHARS --pretty] [LIT_OTHER "="] [LIT_CHARS format] [LIT_OTHER ":"] [LIT_OTHER "%"] [LIT_CHARS s] [LIT_OTHER "%"] [LIT_CHARS b]} {[LIT_CHARS -1]})]]} < (FilenameRedirectNode filename={[VarSub actual]} "> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "%s"]]} {[DQ [VarSub 1]]} < (FilenameRedirectNode filename={[VarSub expect]} "> 1), > ) (Com {[LIT_CHARS test_i18ncmp]} {[VarSub expect]} {[VarSub actual]}) ) ) ) ) (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_OTHER "="] [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"> ]}) (= scope= flags=0 words=[] bindings=[('mesg_with_comment_and_newlines', {[SQ ]})]) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect\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"> 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 < 8 ------------------------\n"> 8 ------------------------\n"> 8 ------------------------\n"> expect < 8 ------------------------\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >negative &&\n"> text < 8 ------------------------\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 ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >file &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >file &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >file &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >file &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >file &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >file &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >file &&\n"> ]}) (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_OTHER "!"] [LIT_CHARS AUTOIDENT]} {[SQ ]} {[SQ .git/result &&\n"> expect &&\n"> >negative &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ was given">]} {[SQ file &&\n"> .git/result &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ file &&\n"> .git/result &&\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 test_expect_success]} {[SQ ]} {[SQ expect &&\n"> \n"> 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 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 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_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ text <<\\EOF &&\n"> ]}) (Com {[LIT_CHARS test_done]}) )