(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]}) (Com {[LIT_CHARS .]} {[DQ [VarSub TEST_DIRECTORY]] [LIT_CHARS /lib-terminal.sh]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS setup]} {[SQ file &&\n"> elif &&\n"> file &&\n"> >file &&\n"> file &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[DQ [LIT_CHARS "format-patch --ignore-if-in-upstream"]]} {[SQ patch0 &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[DQ [LIT_CHARS "format-patch --ignore-if-in-upstream"]]} {[SQ patch1 &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[DQ [LIT_CHARS "format-patch --ignore-if-in-upstream handles tags"]]} {[SQ patch1 &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[DQ [LIT_CHARS "format-patch doesn't consider merge commits"]]} {[SQ >file &&\n"> >file &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[DQ [LIT_CHARS "format-patch result applies"]]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[DQ [LIT_CHARS "format-patch --ignore-if-in-upstream result applies"]]} {[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 \n"> \n"> patch2 &&\n"> hdrs2 &&\n"> \\$\" hdrs2 &&\n"> \\$\" hdrs2\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \" &&\n"> \" &&\n"> patch3 &&\n"> hdrs3 &&\n"> \\$\" hdrs3 &&\n"> \\$\" hdrs3\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \" &&\n"> \" &&\n"> patch4 &&\n"> hdrs4 &&\n"> ,\\$\" hdrs4 &&\n"> \\$\" hdrs4\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \" &&\n"> \" --stdout master..side | sed -e \"/^\\$/q\" >patch5 &&\n"> ,\\$\" patch5 &&\n"> \\$\" patch5\n">]}) (Com {[LIT_CHARS test_expect_failure]} {[SQ ]} {[SQ \" &&\n"> \" --stdout master..side | sed -e \"/^\\$/q\" >patch5 &&\n"> ,\\$\" patch5 &&\n"> \\$\" patch5\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \" --stdout master..side | sed -e \"/^\\$/q\" >patch6 &&\n"> \\$\" patch6\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \" &&\n"> \" --stdout master..side | sed -e \"/^\\$/q\" >patch7 &&\n"> ,\\$\" patch7 &&\n"> \\$\" patch7\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \" --stdout master..side | sed -e \"/^\\$/q\" >patch8 &&\n"> \\$\" patch8\n">]}) (Com {[LIT_CHARS test_expect_failure]} {[SQ ]} {[SQ \" --stdout master..side | sed -e \"/^\\$/q\" >patch8 &&\n"> \\$\" patch8\n">]}) (Com {[LIT_CHARS test_expect_failure]} {[SQ ]} {[SQ \" --stdout master..side | sed -e \"/^\\$/q\" >patch8 &&\n"> \\$\" patch8\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \" &&\n"> patch9 &&\n"> \\$\" patch9\n">]}) (Com {[LIT_CHARS test_expect_failure]} {[SQ ]} {[SQ \" &&\n"> patch9 &&\n"> \\$\" patch9\n">]}) (Com {[LIT_CHARS test_expect_failure]} {[SQ ]} {[SQ \" &&\n"> patch9 &&\n"> \\$\" patch9\n">]}) (FunctionDef check_patch [] (AndOr OP_AND_IF (Com {[LIT_CHARS grep]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "^From:"]]} {[DQ [VarSub 1]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS grep]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "^Date:"]]} {[DQ [VarSub 1]]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "^Subject:"]]} {[DQ [VarSub 1]]}) ) ) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ patch &&\n"> \\$\" patch\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ patch &&\n"> \\$\" patch\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \" format-patch --stdout master..side |\n"> patch &&\n"> \\$\" patch\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \" format-patch --no-from --stdout master..side |\n"> patch &&\n"> \\$\" patch\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \" format-patch --from --stdout master..side |\n"> patch &&\n"> \\$\" patch\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \" &&\n"> patch10 &&\n"> \\$\" patch10\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \" &&\n"> \" \\\n"> patch11 &&\n"> \\$\" patch11 &&\n"> \\$\" patch11\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \" &&\n"> patch12 &&\n"> \\$\" patch12\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \" &&\n"> patch13 &&\n"> \\$\" patch13\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ list &&\n"> subjects &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ list &&\n"> subjects &&\n"> ]}) (FunctionDef check_threading [] (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('expect', {[DQ [VarSub 1]]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS shift]}) (AndOr OP_AND_IF (Pipeline (Subshell (List (Com {[LIT_CHARS git]} {[LIT_CHARS format-patch]} {[LIT_CHARS --stdout]} {[DQ [VarSub @]]}) (Com {[LIT_CHARS echo]} {[VarSub ?]} < (FilenameRedirectNode filename={[LIT_CHARS status.out]} "> 1), > ) ) ) (Com {[LIT_CHARS perl]} {[LIT_CHARS -ne]} {[SQ ]+)>/ and !exists $h{$1});\n"> ]} < (FilenameRedirectNode filename={[LIT_CHARS actual]} "> 1), > ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS 0]} {[LIT_OTHER "="]} {[DQ [ComSub (Com {[LIT_CHARS cat]} {[LIT_CHARS status.out]})]]}) (Com {[LIT_CHARS test_cmp]} {[DQ [VarSub expect]]} {[LIT_CHARS actual]}) ) ) ) ) ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect.no-threading]} >"> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "---\n"][LIT_CHARS "---\n"][LIT_CHARS "---\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect.thread]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <0>\n"][LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <1>\n"][LIT_CHARS "In-Reply-To: <0>\n"][LIT_CHARS "References: <0>\n"][LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <2>\n"][LIT_CHARS "In-Reply-To: <0>\n"][LIT_CHARS "References: <0>\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect.in-reply-to]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <0>\n"][LIT_CHARS "In-Reply-To: <1>\n"][LIT_CHARS "References: <1>\n"][LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <2>\n"][LIT_CHARS "In-Reply-To: <1>\n"][LIT_CHARS "References: <1>\n"][LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <3>\n"][LIT_CHARS "In-Reply-To: <1>\n"][LIT_CHARS "References: <1>\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \" \\\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect.cover-letter]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <0>\n"][LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <1>\n"][LIT_CHARS "In-Reply-To: <0>\n"][LIT_CHARS "References: <0>\n"][LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <2>\n"][LIT_CHARS "In-Reply-To: <0>\n"][LIT_CHARS "References: <0>\n"][LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <3>\n"][LIT_CHARS "In-Reply-To: <0>\n"][LIT_CHARS "References: <0>\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect.cl-irt]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <0>\n"][LIT_CHARS "In-Reply-To: <1>\n"][LIT_CHARS "References: <1>\n"][LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <2>\n"][LIT_CHARS "In-Reply-To: <0>\n"][LIT_CHARS "References: <1>\n"][LIT_CHARS "\t<0>\n"][LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <3>\n"][LIT_CHARS "In-Reply-To: <0>\n"][LIT_CHARS "References: <1>\n"][LIT_CHARS "\t<0>\n"][LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <4>\n"][LIT_CHARS "In-Reply-To: <0>\n"][LIT_CHARS "References: <1>\n"][LIT_CHARS "\t<0>\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \" --thread master\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \" --thread=shallow master\n">]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect.deep]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <0>\n"][LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <1>\n"][LIT_CHARS "In-Reply-To: <0>\n"][LIT_CHARS "References: <0>\n"][LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <2>\n"][LIT_CHARS "In-Reply-To: <1>\n"][LIT_CHARS "References: <0>\n"][LIT_CHARS "\t<1>\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect.deep-irt]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <0>\n"][LIT_CHARS "In-Reply-To: <1>\n"][LIT_CHARS "References: <1>\n"][LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <2>\n"][LIT_CHARS "In-Reply-To: <0>\n"][LIT_CHARS "References: <1>\n"][LIT_CHARS "\t<0>\n"][LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <3>\n"][LIT_CHARS "In-Reply-To: <2>\n"][LIT_CHARS "References: <1>\n"][LIT_CHARS "\t<0>\n"][LIT_CHARS "\t<2>\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \" master\n">]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect.deep-cl]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <0>\n"][LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <1>\n"][LIT_CHARS "In-Reply-To: <0>\n"][LIT_CHARS "References: <0>\n"][LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <2>\n"][LIT_CHARS "In-Reply-To: <1>\n"][LIT_CHARS "References: <0>\n"][LIT_CHARS "\t<1>\n"][LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <3>\n"][LIT_CHARS "In-Reply-To: <2>\n"][LIT_CHARS "References: <0>\n"][LIT_CHARS "\t<1>\n"][LIT_CHARS "\t<2>\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect.deep-cl-irt]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <0>\n"][LIT_CHARS "In-Reply-To: <1>\n"][LIT_CHARS "References: <1>\n"][LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <2>\n"][LIT_CHARS "In-Reply-To: <0>\n"][LIT_CHARS "References: <1>\n"][LIT_CHARS "\t<0>\n"][LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <3>\n"][LIT_CHARS "In-Reply-To: <2>\n"][LIT_CHARS "References: <1>\n"][LIT_CHARS "\t<0>\n"][LIT_CHARS "\t<2>\n"][LIT_CHARS "---\n"][LIT_CHARS "Message-Id: <4>\n"][LIT_CHARS "In-Reply-To: <3>\n"][LIT_CHARS "References: <1>\n"][LIT_CHARS "\t<0>\n"][LIT_CHARS "\t<2>\n"][LIT_CHARS "\t<3>\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \" --thread=deep master\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 ]}) (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 foo .* 0 *\\$\" 0000-cover-letter.patch &&\n"> foo .* 0 *\\$\" 0000-cover-letter.patch\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS " This is an excessively long subject line for a message due to the\n"][LIT_CHARS " habit some projects have of not having a short, one-line subject at\n"][LIT_CHARS " the start of the commit message, but rather sticking a whole\n"][LIT_CHARS " paragraph right at the start as the only thing in the commit\n"][LIT_CHARS " message. It had better not become the filename for the patch.\n"][LIT_CHARS " foo\n"][LIT_CHARS "\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "index 40f36c6..2dc5c23 100644\n"][LIT_CHARS "--- a/file\n"][LIT_CHARS "+++ b/file\n"][LIT_CHARS "@@ -13,4 +13,20 @@ C\n"][LIT_CHARS " 10\n"][LIT_CHARS " D\n"][LIT_CHARS " E\n"][LIT_CHARS " F\n"][LIT_CHARS "+5\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "\n"][LIT_CHARS "diff --git a/file b/file\n"][LIT_CHARS "index 40f36c6..2dc5c23 100644\n"][LIT_CHARS "--- a/file\n"][LIT_CHARS "+++ b/file\n"][LIT_CHARS "@@ -14,3 +14,19 @@ C\n"][LIT_CHARS " D\n"][LIT_CHARS " E\n"][LIT_CHARS " F\n"][LIT_CHARS "+5\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\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 ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ patch8 &&\n"> \" patch8 &&\n"> \" patch8\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ out &&\n"> \" out\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ out &&\n"> ]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "fatal: --name-only does not make sense"]]} < (FilenameRedirectNode filename={[LIT_CHARS expect.name-only]} "> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "fatal: --name-status does not make sense"]]} < (FilenameRedirectNode filename={[LIT_CHARS expect.name-status]} "> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "fatal: --check does not make sense"]]} < (FilenameRedirectNode filename={[LIT_CHARS expect.check]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> output &&\n"> output &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ">]} {[SQ error &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (= scope= flags=0 words=[] bindings=[('git_version', {[DQ [ComSub (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS --version]}) (Com {[LIT_CHARS sed]} {[DQ [LIT_CHARS "s/.* //"]]}) )]]})]) (FunctionDef signature [] (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "%s"][\ LIT_ESCAPED_CHAR "\\n"][LIT_CHARS "%s"][\ LIT_ESCAPED_CHAR "\\n"][\ LIT_ESCAPED_CHAR "\\n"]]} {[DQ [LIT_CHARS "-- "]]} {[DQ [VarSub 1 test_op=VS_TEST_COLON_HYPHEN {[VarSub git_version]}]]}) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> expect &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> expect &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ mail-signature <<-\\EOF\n"> \n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> actual &&\n"> expect &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> actual &&\n"> expect &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ other-mail-signature <<-\\EOF &&\n"> output &&\n"> actual &&\n"> expect &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS TTY]} {[SQ ]} {[SQ pager_used\" git format-patch --stdout --all &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS TTY]} {[SQ ]} {[SQ pager_used\" git --no-pager format-patch --stdout --all &&\n"> pager_used\" git -c \"pager.format-patch=false\" format-patch --stdout --all &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >file &&\n"> msg &&\n"> actual &&\n"> expect &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >file &&\n"> msg &&\n"> actual &&\n"> expect &&\n"> ]}) (= scope= flags=0 words=[] bindings=[('M8', {[DQ [LIT_CHARS "foo bar "]]})]) (= scope= flags=0 words=[] bindings=[('M64', {[VarSub M8] [VarSub M8] [VarSub M8] [VarSub M8] [VarSub M8] [VarSub M8] [VarSub M8] [VarSub M8]})]) (= scope= flags=0 words=[] bindings=[('M512', {[VarSub M64] [VarSub M64] [VarSub M64] [VarSub M64] [VarSub M64] [VarSub M64] [VarSub M64] [VarSub M64]})]) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "Subject: [PATCH] foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo\n"] [LIT_CHARS " bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar\n"] [LIT_CHARS " foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo\n"] [LIT_CHARS " bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar\n"] [LIT_CHARS " foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo\n"] [LIT_CHARS " bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar\n"] [LIT_CHARS " foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar\n"]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >file &&\n"> patch &&\n"> subject &&\n"> ]}) (= scope= flags=0 words=[] bindings=[('M8', {[DQ [LIT_CHARS "f\u00f6\u00f6 bar "]]})]) (= scope= flags=0 words=[] bindings=[('M64', {[VarSub M8] [VarSub M8] [VarSub M8] [VarSub M8] [VarSub M8] [VarSub M8] [VarSub M8] [VarSub M8]})]) (= scope= flags=0 words=[] bindings=[('M512', {[VarSub M64] [VarSub M64] [VarSub M64] [VarSub M64] [VarSub M64] [VarSub M64] [VarSub M64] [VarSub M64]})]) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "Subject: [PATCH] =?UTF-8?q?f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f?=\n"] [LIT_CHARS " =?UTF-8?q?=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar?=\n"] [LIT_CHARS " =?UTF-8?q?=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20?=\n"] [LIT_CHARS " =?UTF-8?q?bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6?=\n"] [LIT_CHARS " =?UTF-8?q?=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6?=\n"] [LIT_CHARS " =?UTF-8?q?=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f?=\n"] [LIT_CHARS " =?UTF-8?q?=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar?=\n"] [LIT_CHARS " =?UTF-8?q?=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20?=\n"] [LIT_CHARS " =?UTF-8?q?bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6?=\n"] [LIT_CHARS " =?UTF-8?q?=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6?=\n"] [LIT_CHARS " =?UTF-8?q?=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f?=\n"] [LIT_CHARS " =?UTF-8?q?=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar?=\n"] [LIT_CHARS " =?UTF-8?q?=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20?=\n"] [LIT_CHARS " =?UTF-8?q?bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6?=\n"] [LIT_CHARS " =?UTF-8?q?=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6?=\n"] [LIT_CHARS " =?UTF-8?q?=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f?=\n"] [LIT_CHARS " =?UTF-8?q?=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar?=\n"] [LIT_CHARS " =?UTF-8?q?=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20?=\n"] [LIT_CHARS " =?UTF-8?q?bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6?=\n"] [LIT_CHARS " =?UTF-8?q?=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6?=\n"] [LIT_CHARS " =?UTF-8?q?=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f?=\n"] [LIT_CHARS " =?UTF-8?q?=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar?=\n"] [LIT_CHARS " =?UTF-8?q?=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20bar=20f=C3=B6=C3=B6=20?=\n"] [LIT_CHARS " =?UTF-8?q?bar?=\n"]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >file &&\n"> patch &&\n"> subject &&\n"> ]}) (FunctionDef check_author [] (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[LIT_CHARS content]} < (FilenameRedirectNode filename={[LIT_CHARS file]} >"> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS add]} {[LIT_CHARS file]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS commit]} {[LIT_CHARS -m]} {[LIT_CHARS author-check]} more_env=[('GIT_AUTHOR_NAME', {[VarSub 1]})] ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS format-patch]} {[LIT_CHARS --stdout]} {[LIT_CHARS -1]} < (FilenameRedirectNode filename={[LIT_CHARS patch]} "> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS sed]} {[LIT_CHARS -n]} {[DQ [LIT_CHARS "/^From: /p; /^ /p; /^"][LIT_OTHER "$"][LIT_CHARS /q]]} < (FilenameRedirectNode filename={[LIT_CHARS patch]} 0), (FilenameRedirectNode filename={[LIT_CHARS actual]} "> 1), > ) (Com {[LIT_CHARS test_cmp]} {[LIT_CHARS expect]} {[LIT_CHARS actual]}) ) ) ) ) ) ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "From: \"Foo B. Bar\" \n"]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "From: \"Foo \\\"The Baz\\\" Bar\" \n"]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "From: =?UTF-8?q?F=C3=B6o=20Bar?= \n"]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "From: =?UTF-8?q?F=C3=B6o=20B=2E=20Bar?= \n"]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "From: foo_bar_foo_bar_foo_bar_foo_bar_foo_bar_foo_bar_foo_bar_foo_bar_\n"][LIT_CHARS " \n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "From: Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar\n"] [LIT_CHARS " Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo\n"] [LIT_CHARS " Bar Foo Bar Foo Bar Foo Bar \n"]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "From: \"Foo.Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar\n"] [LIT_CHARS " Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo Bar Foo\n"] [LIT_CHARS " Bar Foo Bar Foo Bar Foo Bar\" \n"]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "From: =?UTF-8?q?Fo=C3=B6=20Bar=20Foo=20Bar=20Foo=20Bar=20Foo=20Bar=20Foo?=\n"] [LIT_CHARS " =?UTF-8?q?=20Bar=20Foo=20Bar=20Foo=20Bar=20Foo=20Bar=20Foo=20Bar=20Foo=20?=\n"] [LIT_CHARS " =?UTF-8?q?Bar=20Foo=20Bar=20Foo=20Bar=20Foo=20Bar=20Foo=20Bar=20Foo=20Bar?=\n"] [LIT_CHARS " =?UTF-8?q?=20Foo=20Bar=20Foo=20Bar=20Foo=20Bar=20Foo=20Bar=20Foo=20Bar=20?=\n"] [LIT_CHARS " =?UTF-8?q?Foo=20Bar=20Foo=20Bar?= \n"]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "Subject: header with . in it\n"]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >file &&\n"> patch &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "Subject: [PREFIX 1/1] header with . in it\n"]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ patch &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "Subject: [1/1] header with . in it\n"]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ patch &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect <<-\\EOF &&\n"> patch &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ patch\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \" >patch &&\n"> expect <<-\\EOF &&\n"> \n"> \n"> patch.head &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ patch &&\n"> expect <<-\\EOF &&\n"> \n"> \n"> patch.head &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \" >patch &&\n"> expect <<-\\EOF &&\n"> \n"> patch.head &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ patch &&\n"> expect <<-\\EOF &&\n"> \n"> \n"> patch.head &&\n"> ]}) (FunctionDef append_signoff [] (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('C', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS commit-tree]} {[LIT_CHARS HEAD] [LIT_OTHER "^"] [LIT_OTHER "^"] [LIT_LBRACE "{"] [LIT_CHARS tree] [LIT_RBRACE "}"]} {[LIT_CHARS -p]} {[LIT_CHARS HEAD]})]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS format-patch]} {[LIT_CHARS --stdout]} {[LIT_CHARS --signoff]} {[VarSub C] [LIT_OTHER "^"] [LIT_CHARS ..] [VarSub C]} < (FilenameRedirectNode filename={[LIT_CHARS append_signoff.patch]} "> 1), > ) (Pipeline (Com {[LIT_CHARS sed]} {[LIT_CHARS -n]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "1,/^---"][LIT_OTHER "$"][LIT_CHARS /p]]} {[LIT_CHARS append_signoff.patch]}) (Com {[LIT_CHARS egrep]} {[LIT_CHARS -n]} {[DQ [LIT_CHARS "^Subject|Sign|^"][LIT_OTHER "$"]]}) ) ) ) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> expected &&\n"> \n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> expected <<\\EOF &&\n"> \n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> expected <<\\EOF &&\n"> \n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> expected <<\\EOF &&\n"> \n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> expected <<\\EOF &&\n"> \n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> expected <<\\EOF &&\n"> \n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> \n"> expected <<\\EOF &&\n"> \n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> expected <<\\EOF &&\n"> \n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> expected <<\\EOF &&\n"> \n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> expected <<\\EOF &&\n"> \n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> expected <<\\EOF &&\n"> \n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> \n"> expected <<\\EOF &&\n"> \n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \" |\n"> actual &&\n"> expected <<\\EOF &&\n"> \n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> \n"> expected <<\\EOF &&\n"> \n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> \n"> expected <<\\EOF &&\n"> \n"> \n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> \n"> expected <<\\EOF &&\n"> \n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> /dev/null\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> /dev/null\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> /dev/null\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> /dev/null\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> /dev/null\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> /dev/null\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ list &&\n"> list &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ list &&\n"> list &&\n"> list &&\n"> list &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ patch2 &&\n"> actual &&\n"> expect &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ patch2 &&\n"> from &&\n"> filtered &&\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 actual &&\n"> expected &&\n"> >expected &&\n"> >expected &&\n"> >expected &&\n"> > expected &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ patch &&\n"> actual &&\n"> expected &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ commit-id-base &&\n"> commit-id-P &&\n"> commit-id-Z &&\n"> patch &&\n"> actual &&\n"> expected &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ patch &&\n"> actual &&\n"> expected &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ patch &&\n"> actual &&\n"> expected &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ patch &&\n"> actual &&\n"> expected &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ patch &&\n"> actual &&\n"> expect &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ msg <<-INPUT_END &&\n"> From extra escape for reversibility\n"> >From extra escape for reversibility 2\n"> expect <<-INPUT_END &&\n"> From could trip up a loose mbox parser\n"> >From extra escape for reversibility\n"> >>From extra escape for reversibility 2\n"> patch &&\n"> From could trip up a loose mbox parser\" patch >actual &&\n"> ]}) (Com {[LIT_CHARS test_done]}) )