(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 /diff-lib.sh]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "do {\n"][LIT_CHARS " nothing;\n"][LIT_CHARS "} while (0);\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS x]} "> 1), > ) (Com {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS --add]} {[LIT_CHARS x]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "do\n"][LIT_CHARS "{\n"][LIT_CHARS " nothing;\n"][LIT_CHARS "}\n"][LIT_CHARS "while (0);\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS x]} "> 1), > ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "diff --git a/x b/x\n"][LIT_CHARS "index adf3937..6edc172 100644\n"][LIT_CHARS "--- a/x\n"][LIT_CHARS "+++ b/x\n"][LIT_CHARS "@@ -1,3 +1,5 @@\n"][LIT_CHARS "-do {\n"][LIT_CHARS "+do\n"][LIT_CHARS "+{\n"][LIT_CHARS " nothing;\n"][LIT_CHARS "-} while (0);\n"][LIT_CHARS "+}\n"][LIT_CHARS "+while (0);\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS git]} {[LIT_CHARS diff]} < (FilenameRedirectNode filename={[LIT_CHARS out]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[DQ [LIT_CHARS "Ray's example without options"]]} {[SQ ]} ) (Com {[LIT_CHARS git]} {[LIT_CHARS diff]} {[LIT_CHARS -w]} < (FilenameRedirectNode filename={[LIT_CHARS out]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[DQ [LIT_CHARS "Ray's example with -w"]]} {[SQ ]} ) (Com {[LIT_CHARS git]} {[LIT_CHARS diff]} {[LIT_CHARS -b]} < (FilenameRedirectNode filename={[LIT_CHARS out]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[DQ [LIT_CHARS "Ray's example with -b"]]} {[SQ ]} ) (Com {[LIT_CHARS tr]} {[SQ ]} {[SQ ]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "whitespace at beginning\n"][LIT_CHARS "whitespace change\n"][LIT_CHARS "whitespace in the middle\n"][LIT_CHARS "whitespace at end\n"][LIT_CHARS "unchanged line\n"][LIT_CHARS "CR at endQ\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS x]} "> 1), > ) (Com {[LIT_CHARS git]} {[LIT_CHARS update-index]} {[LIT_CHARS x]} ) (Com {[LIT_CHARS tr]} {[SQ ]} {[SQ ]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "\twhitespace at beginning\n"][LIT_CHARS "whitespace \t change\n"][LIT_CHARS "white space in the middle\n"][LIT_CHARS "whitespace at end__\n"][LIT_CHARS "unchanged line\n"][LIT_CHARS "CR at end\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS x]} "> 1), > ) (Com {[LIT_CHARS tr]} {[SQ ]} {[SQ ]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "diff --git a/x b/x\n"][LIT_CHARS "index d99af23..8b32fb5 100644\n"][LIT_CHARS "--- a/x\n"][LIT_CHARS "+++ b/x\n"][LIT_CHARS "@@ -1,6 +1,6 @@\n"][LIT_CHARS "-whitespace at beginning\n"][LIT_CHARS "-whitespace change\n"][LIT_CHARS "-whitespace in the middle\n"][LIT_CHARS "-whitespace at end\n"][LIT_CHARS "+\twhitespace at beginning\n"][LIT_CHARS "+whitespace \t change\n"][LIT_CHARS "+white space in the middle\n"][LIT_CHARS "+whitespace at end__\n"][LIT_CHARS " unchanged line\n"][LIT_CHARS "-CR at endQ\n"][LIT_CHARS "+CR at end\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS git]} {[LIT_CHARS diff]} < (FilenameRedirectNode filename={[LIT_CHARS out]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ ]} 0), (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS git]} {[LIT_CHARS diff]} {[LIT_CHARS -w]} < (FilenameRedirectNode filename={[LIT_CHARS out]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS git]} {[LIT_CHARS diff]} {[LIT_CHARS -w]} {[LIT_CHARS -b]} < (FilenameRedirectNode filename={[LIT_CHARS out]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS git]} {[LIT_CHARS diff]} {[LIT_CHARS -w]} {[LIT_CHARS --ignore-space-at-eol]} < (FilenameRedirectNode filename={[LIT_CHARS out]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS git]} {[LIT_CHARS diff]} {[LIT_CHARS -w]} {[LIT_CHARS -b]} {[LIT_CHARS --ignore-space-at-eol]} < (FilenameRedirectNode filename={[LIT_CHARS out]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS tr]} {[SQ ]} {[SQ ]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "diff --git a/x b/x\n"][LIT_CHARS "index d99af23..8b32fb5 100644\n"][LIT_CHARS "--- a/x\n"][LIT_CHARS "+++ b/x\n"][LIT_CHARS "@@ -1,6 +1,6 @@\n"][LIT_CHARS "-whitespace at beginning\n"][LIT_CHARS "+\twhitespace at beginning\n"][LIT_CHARS " whitespace \t change\n"][LIT_CHARS "-whitespace in the middle\n"][LIT_CHARS "+white space in the middle\n"][LIT_CHARS " whitespace at end__\n"][LIT_CHARS " unchanged line\n"][LIT_CHARS " CR at end\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS git]} {[LIT_CHARS diff]} {[LIT_CHARS -b]} < (FilenameRedirectNode filename={[LIT_CHARS out]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS git]} {[LIT_CHARS diff]} {[LIT_CHARS -b]} {[LIT_CHARS --ignore-space-at-eol]} < (FilenameRedirectNode filename={[LIT_CHARS out]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS tr]} {[SQ ]} {[SQ ]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "diff --git a/x b/x\n"][LIT_CHARS "index d99af23..8b32fb5 100644\n"][LIT_CHARS "--- a/x\n"][LIT_CHARS "+++ b/x\n"][LIT_CHARS "@@ -1,6 +1,6 @@\n"][LIT_CHARS "-whitespace at beginning\n"][LIT_CHARS "-whitespace change\n"][LIT_CHARS "-whitespace in the middle\n"][LIT_CHARS "+\twhitespace at beginning\n"][LIT_CHARS "+whitespace \t change\n"][LIT_CHARS "+white space in the middle\n"][LIT_CHARS " whitespace at end__\n"][LIT_CHARS " unchanged line\n"][LIT_CHARS " CR at end\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS git]} {[LIT_CHARS diff]} {[LIT_CHARS --ignore-space-at-eol]} < (FilenameRedirectNode filename={[LIT_CHARS out]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\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 x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\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 x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ .gitattributes &&\n"> x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> > x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> >x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> x &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> ]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ ]} 0), (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x \"hello world\" &&\n"> x \"hello world\" &&\n"> actual &&\n"> ]} ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "diff --git a/x b/z\n"][LIT_CHARS "similarity index NUM%\n"][LIT_CHARS "rename from x\n"][LIT_CHARS "rename to z\n"][LIT_CHARS "index 380c32a..a97b785 100644\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> z &&\n"> actual &&\n"> ]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expected]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "diff --git a/empty b/void\n"] [LIT_CHARS "similarity index 100%\n"] [LIT_CHARS "rename from empty\n"] [LIT_CHARS "rename to void\n"]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ empty &&\n"> current &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x hello &&\n"> x goodbye &&\n"> actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS expected]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "diff --git a/x b/x\n"] [LIT_CHARS "index 9daeafb..2874b91 100644\n"] [LIT_CHARS "--- a/x\n"] [LIT_CHARS "+++ b/x\n"] [LIT_CHARS "@@ -1 +1,4 @@\n"] [LIT_CHARS " test\n"] [LIT_CHARS "+{\n"] [LIT_CHARS "+\t\n"] [LIT_CHARS "+}\n"]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ x &&\n"> > x &&\n"> current &&\n"> ]} ) (Com {[LIT_CHARS test_done]} ) )