(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: { (SQ (Token id:Id.Lit_Chars val:'Test special whitespace in diff engine.\n' span_id:15) (Token id:Id.Lit_Chars val:'\n' span_id:16) ) } spids: [13] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(.)} {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY')) (/diff-lib.sh)}) (C {(test_expect_success)} {(DQ ("Ray Lehtiniemi's example"))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:38) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >x &&\n' span_id:39) (Token id:Id.Lit_Chars val:'\tdo {\n' span_id:40) (Token id:Id.Lit_Chars val:'\t nothing;\n' span_id:41) (Token id:Id.Lit_Chars val:'\t} while (0);\n' span_id:42) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:43) (Token id:Id.Lit_Chars val:'\tgit update-index --add x &&\n' span_id:44) (Token id:Id.Lit_Chars val:'\n' span_id:45) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >x &&\n' span_id:46) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:47) (Token id:Id.Lit_Chars val:'\t{\n' span_id:48) (Token id:Id.Lit_Chars val:'\t nothing;\n' span_id:49) (Token id:Id.Lit_Chars val:'\t}\n' span_id:50) (Token id:Id.Lit_Chars val:'\twhile (0);\n' span_id:51) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:52) (Token id:Id.Lit_Chars val:'\n' span_id:53) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >expect &&\n' span_id:54) (Token id:Id.Lit_Chars val:'\tdiff --git a/x b/x\n' span_id:55) (Token id:Id.Lit_Chars val:'\tindex adf3937..6edc172 100644\n' span_id:56) (Token id:Id.Lit_Chars val:'\t--- a/x\n' span_id:57) (Token id:Id.Lit_Chars val:'\t+++ b/x\n' span_id:58) (Token id:Id.Lit_Chars val:'\t@@ -1,3 +1,5 @@\n' span_id:59) (Token id:Id.Lit_Chars val:'\t-do {\n' span_id:60) (Token id:Id.Lit_Chars val:'\t+do\n' span_id:61) (Token id:Id.Lit_Chars val:'\t+{\n' span_id:62) (Token id:Id.Lit_Chars val:'\t nothing;\n' span_id:63) (Token id:Id.Lit_Chars val:'\t-} while (0);\n' span_id:64) (Token id:Id.Lit_Chars val:'\t+}\n' span_id:65) (Token id:Id.Lit_Chars val:'\t+while (0);\n' span_id:66) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:67) (Token id:Id.Lit_Chars val:'\n' span_id:68) (Token id:Id.Lit_Chars val:'\tgit diff >out &&\n' span_id:69) (Token id:Id.Lit_Chars val:'\ttest_cmp expect out &&\n' span_id:70) (Token id:Id.Lit_Chars val:'\n' span_id:71) (Token id:Id.Lit_Chars val:'\tgit diff -w >out &&\n' span_id:72) (Token id:Id.Lit_Chars val:'\ttest_cmp expect out &&\n' span_id:73) (Token id:Id.Lit_Chars val:'\n' span_id:74) (Token id:Id.Lit_Chars val:'\tgit diff -b >out &&\n' span_id:75) (Token id:Id.Lit_Chars val:'\ttest_cmp expect out\n' span_id:76) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'another test, without options' span_id:83))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:87) (Token id:Id.Lit_Chars val:'\ttr Q "\\015" <<-\\EOF >x &&\n' span_id:88) (Token id:Id.Lit_Chars val:'\twhitespace at beginning\n' span_id:89) (Token id:Id.Lit_Chars val:'\twhitespace change\n' span_id:90) (Token id:Id.Lit_Chars val:'\twhitespace in the middle\n' span_id:91) (Token id:Id.Lit_Chars val:'\twhitespace at end\n' span_id:92) (Token id:Id.Lit_Chars val:'\tunchanged line\n' span_id:93) (Token id:Id.Lit_Chars val:'\tCR at endQ\n' span_id:94) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:95) (Token id:Id.Lit_Chars val:'\n' span_id:96) (Token id:Id.Lit_Chars val:'\tgit update-index x &&\n' span_id:97) (Token id:Id.Lit_Chars val:'\n' span_id:98) (Token id:Id.Lit_Chars val:'\ttr "_" " " <<-\\EOF >x &&\n' span_id:99) (Token id:Id.Lit_Chars val:'\t_\twhitespace at beginning\n' span_id:100) (Token id:Id.Lit_Chars val:'\twhitespace \t change\n' span_id:101) (Token id:Id.Lit_Chars val:'\twhite space in the middle\n' span_id:102) (Token id:Id.Lit_Chars val:'\twhitespace at end__\n' span_id:103) (Token id:Id.Lit_Chars val:'\tunchanged line\n' span_id:104) (Token id:Id.Lit_Chars val:'\tCR at end\n' span_id:105) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:106) (Token id:Id.Lit_Chars val:'\n' span_id:107) (Token id: Id.Lit_Chars val: '\ttr "Q_" "\\015 " <<-\\EOF >expect &&\n' span_id: 108 ) (Token id:Id.Lit_Chars val:'\tdiff --git a/x b/x\n' span_id:109) (Token id:Id.Lit_Chars val:'\tindex d99af23..22d9f73 100644\n' span_id:110) (Token id:Id.Lit_Chars val:'\t--- a/x\n' span_id:111) (Token id:Id.Lit_Chars val:'\t+++ b/x\n' span_id:112) (Token id:Id.Lit_Chars val:'\t@@ -1,6 +1,6 @@\n' span_id:113) (Token id:Id.Lit_Chars val:'\t-whitespace at beginning\n' span_id:114) (Token id:Id.Lit_Chars val:'\t-whitespace change\n' span_id:115) (Token id:Id.Lit_Chars val:'\t-whitespace in the middle\n' span_id:116) (Token id:Id.Lit_Chars val:'\t-whitespace at end\n' span_id:117) (Token id:Id.Lit_Chars val:'\t+ \twhitespace at beginning\n' span_id:118) (Token id:Id.Lit_Chars val:'\t+whitespace \t change\n' span_id:119) (Token id:Id.Lit_Chars val:'\t+white space in the middle\n' span_id:120) (Token id:Id.Lit_Chars val:'\t+whitespace at end__\n' span_id:121) (Token id:Id.Lit_Chars val:'\t unchanged line\n' span_id:122) (Token id:Id.Lit_Chars val:'\t-CR at endQ\n' span_id:123) (Token id:Id.Lit_Chars val:'\t+CR at end\n' span_id:124) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:125) (Token id:Id.Lit_Chars val:'\n' span_id:126) (Token id:Id.Lit_Chars val:'\tgit diff >out &&\n' span_id:127) (Token id:Id.Lit_Chars val:'\ttest_cmp expect out &&\n' span_id:128) (Token id:Id.Lit_Chars val:'\n' span_id:129) (Token id:Id.Lit_Chars val:'\t>expect &&\n' span_id:130) (Token id:Id.Lit_Chars val:'\tgit diff -w >out &&\n' span_id:131) (Token id:Id.Lit_Chars val:'\ttest_cmp expect out &&\n' span_id:132) (Token id:Id.Lit_Chars val:'\n' span_id:133) (Token id:Id.Lit_Chars val:'\tgit diff -w -b >out &&\n' span_id:134) (Token id:Id.Lit_Chars val:'\ttest_cmp expect out &&\n' span_id:135) (Token id:Id.Lit_Chars val:'\n' span_id:136) (Token id: Id.Lit_Chars val: '\tgit diff -w --ignore-space-at-eol >out &&\n' span_id: 137 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect out &&\n' span_id:138) (Token id:Id.Lit_Chars val:'\n' span_id:139) (Token id:Id.Lit_Chars val:'\tgit diff -w -b --ignore-space-at-eol >out &&\n' span_id:140) (Token id:Id.Lit_Chars val:'\ttest_cmp expect out &&\n' span_id:141) (Token id:Id.Lit_Chars val:'\n' span_id:142) (Token id:Id.Lit_Chars val:'\n' span_id:143) (Token id: Id.Lit_Chars val: '\ttr "Q_" "\\015 " <<-\\EOF >expect &&\n' span_id: 144 ) (Token id:Id.Lit_Chars val:'\tdiff --git a/x b/x\n' span_id:145) (Token id:Id.Lit_Chars val:'\tindex d99af23..22d9f73 100644\n' span_id:146) (Token id:Id.Lit_Chars val:'\t--- a/x\n' span_id:147) (Token id:Id.Lit_Chars val:'\t+++ b/x\n' span_id:148) (Token id:Id.Lit_Chars val:'\t@@ -1,6 +1,6 @@\n' span_id:149) (Token id:Id.Lit_Chars val:'\t-whitespace at beginning\n' span_id:150) (Token id:Id.Lit_Chars val:'\t+_\twhitespace at beginning\n' span_id:151) (Token id:Id.Lit_Chars val:'\t whitespace \t change\n' span_id:152) (Token id:Id.Lit_Chars val:'\t-whitespace in the middle\n' span_id:153) (Token id:Id.Lit_Chars val:'\t+white space in the middle\n' span_id:154) (Token id:Id.Lit_Chars val:'\t whitespace at end__\n' span_id:155) (Token id:Id.Lit_Chars val:'\t unchanged line\n' span_id:156) (Token id:Id.Lit_Chars val:'\t CR at end\n' span_id:157) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:158) (Token id:Id.Lit_Chars val:'\tgit diff -b >out &&\n' span_id:159) (Token id:Id.Lit_Chars val:'\ttest_cmp expect out &&\n' span_id:160) (Token id:Id.Lit_Chars val:'\n' span_id:161) (Token id: Id.Lit_Chars val: '\tgit diff -b --ignore-space-at-eol >out &&\n' span_id: 162 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect out &&\n' span_id:163) (Token id:Id.Lit_Chars val:'\n' span_id:164) (Token id:Id.Lit_Chars val:'\ttr "Q_" "\\015 " <<-\\EOF >expect &&\n' span_id:165) (Token id:Id.Lit_Chars val:'\tdiff --git a/x b/x\n' span_id:166) (Token id:Id.Lit_Chars val:'\tindex d99af23..22d9f73 100644\n' span_id:167) (Token id:Id.Lit_Chars val:'\t--- a/x\n' span_id:168) (Token id:Id.Lit_Chars val:'\t+++ b/x\n' span_id:169) (Token id:Id.Lit_Chars val:'\t@@ -1,6 +1,6 @@\n' span_id:170) (Token id:Id.Lit_Chars val:'\t-whitespace at beginning\n' span_id:171) (Token id:Id.Lit_Chars val:'\t-whitespace change\n' span_id:172) (Token id:Id.Lit_Chars val:'\t-whitespace in the middle\n' span_id:173) (Token id:Id.Lit_Chars val:'\t+_\twhitespace at beginning\n' span_id:174) (Token id:Id.Lit_Chars val:'\t+whitespace \t change\n' span_id:175) (Token id:Id.Lit_Chars val:'\t+white space in the middle\n' span_id:176) (Token id:Id.Lit_Chars val:'\t whitespace at end__\n' span_id:177) (Token id:Id.Lit_Chars val:'\t unchanged line\n' span_id:178) (Token id:Id.Lit_Chars val:'\t CR at end\n' span_id:179) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:180) (Token id:Id.Lit_Chars val:'\tgit diff --ignore-space-at-eol >out &&\n' span_id:181) (Token id:Id.Lit_Chars val:'\ttest_cmp expect out\n' span_id:182) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ignore-blank-lines: only new lines' span_id:189))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:193) (Token id:Id.Lit_Chars val:'\ttest_seq 5 >x &&\n' span_id:194) (Token id:Id.Lit_Chars val:'\tgit update-index x &&\n' span_id:195) (Token id:Id.Lit_Chars val:'\ttest_seq 5 | sed "/3/i\\\\\n' span_id:196) (Token id:Id.Lit_Chars val:'" >x &&\n' span_id:197) (Token id: Id.Lit_Chars val: '\tgit diff --ignore-blank-lines >out &&\n' span_id: 198 ) (Token id:Id.Lit_Chars val:'\t>expect &&\n' span_id:199) (Token id:Id.Lit_Chars val:'\ttest_cmp out expect\n' span_id:200) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ignore-blank-lines: only new lines with space' span_id:207))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:211) (Token id:Id.Lit_Chars val:'\ttest_seq 5 >x &&\n' span_id:212) (Token id:Id.Lit_Chars val:'\tgit update-index x &&\n' span_id:213) (Token id:Id.Lit_Chars val:'\ttest_seq 5 | sed "/3/i\\\\\n' span_id:214) (Token id:Id.Lit_Chars val:' " >x &&\n' span_id:215) (Token id: Id.Lit_Chars val: '\tgit diff -w --ignore-blank-lines >out &&\n' span_id: 216 ) (Token id:Id.Lit_Chars val:'\t>expect &&\n' span_id:217) (Token id:Id.Lit_Chars val:'\ttest_cmp out expect\n' span_id:218) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ignore-blank-lines: after change' span_id:225))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:229) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >x &&\n' span_id:230) (Token id:Id.Lit_Chars val:'\t1\n' span_id:231) (Token id:Id.Lit_Chars val:'\t2\n' span_id:232) (Token id:Id.Lit_Chars val:'\n' span_id:233) (Token id:Id.Lit_Chars val:'\t3\n' span_id:234) (Token id:Id.Lit_Chars val:'\t4\n' span_id:235) (Token id:Id.Lit_Chars val:'\t5\n' span_id:236) (Token id:Id.Lit_Chars val:'\n' span_id:237) (Token id:Id.Lit_Chars val:'\t6\n' span_id:238) (Token id:Id.Lit_Chars val:'\t7\n' span_id:239) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:240) (Token id:Id.Lit_Chars val:'\tgit update-index x &&\n' span_id:241) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >x &&\n' span_id:242) (Token id:Id.Lit_Chars val:'\tchange\n' span_id:243) (Token id:Id.Lit_Chars val:'\n' span_id:244) (Token id:Id.Lit_Chars val:'\t1\n' span_id:245) (Token id:Id.Lit_Chars val:'\t2\n' span_id:246) (Token id:Id.Lit_Chars val:'\t3\n' span_id:247) (Token id:Id.Lit_Chars val:'\t4\n' span_id:248) (Token id:Id.Lit_Chars val:'\t5\n' span_id:249) (Token id:Id.Lit_Chars val:'\t6\n' span_id:250) (Token id:Id.Lit_Chars val:'\n' span_id:251) (Token id:Id.Lit_Chars val:'\t7\n' span_id:252) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:253) (Token id: Id.Lit_Chars val: '\tgit diff --inter-hunk-context=100 --ignore-blank-lines >out.tmp &&\n' span_id: 254 ) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >expected &&\n' span_id:255) (Token id:Id.Lit_Chars val:'\tdiff --git a/x b/x\n' span_id:256) (Token id:Id.Lit_Chars val:'\t--- a/x\n' span_id:257) (Token id:Id.Lit_Chars val:'\t+++ b/x\n' span_id:258) (Token id:Id.Lit_Chars val:'\t@@ -1,6 +1,7 @@\n' span_id:259) (Token id:Id.Lit_Chars val:'\t+change\n' span_id:260) (Token id:Id.Lit_Chars val:'\t+\n' span_id:261) (Token id:Id.Lit_Chars val:'\t 1\n' span_id:262) (Token id:Id.Lit_Chars val:'\t 2\n' span_id:263) (Token id:Id.Lit_Chars val:'\t-\n' span_id:264) (Token id:Id.Lit_Chars val:'\t 3\n' span_id:265) (Token id:Id.Lit_Chars val:'\t 4\n' span_id:266) (Token id:Id.Lit_Chars val:'\t 5\n' span_id:267) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:268) (Token id:Id.Lit_Chars val:'\tcompare_diff_patch expected out.tmp\n' span_id:269) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ignore-blank-lines: before change' span_id:276))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:280) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >x &&\n' span_id:281) (Token id:Id.Lit_Chars val:'\t1\n' span_id:282) (Token id:Id.Lit_Chars val:'\t2\n' span_id:283) (Token id:Id.Lit_Chars val:'\n' span_id:284) (Token id:Id.Lit_Chars val:'\t3\n' span_id:285) (Token id:Id.Lit_Chars val:'\t4\n' span_id:286) (Token id:Id.Lit_Chars val:'\t5\n' span_id:287) (Token id:Id.Lit_Chars val:'\t6\n' span_id:288) (Token id:Id.Lit_Chars val:'\t7\n' span_id:289) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:290) (Token id:Id.Lit_Chars val:'\tgit update-index x &&\n' span_id:291) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >x &&\n' span_id:292) (Token id:Id.Lit_Chars val:'\n' span_id:293) (Token id:Id.Lit_Chars val:'\t1\n' span_id:294) (Token id:Id.Lit_Chars val:'\t2\n' span_id:295) (Token id:Id.Lit_Chars val:'\t3\n' span_id:296) (Token id:Id.Lit_Chars val:'\t4\n' span_id:297) (Token id:Id.Lit_Chars val:'\t5\n' span_id:298) (Token id:Id.Lit_Chars val:'\n' span_id:299) (Token id:Id.Lit_Chars val:'\t6\n' span_id:300) (Token id:Id.Lit_Chars val:'\t7\n' span_id:301) (Token id:Id.Lit_Chars val:'\tchange\n' span_id:302) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:303) (Token id: Id.Lit_Chars val: '\tgit diff --inter-hunk-context=100 --ignore-blank-lines >out.tmp &&\n' span_id: 304 ) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >expected &&\n' span_id:305) (Token id:Id.Lit_Chars val:'\tdiff --git a/x b/x\n' span_id:306) (Token id:Id.Lit_Chars val:'\t--- a/x\n' span_id:307) (Token id:Id.Lit_Chars val:'\t+++ b/x\n' span_id:308) (Token id:Id.Lit_Chars val:'\t@@ -4,5 +4,7 @@\n' span_id:309) (Token id:Id.Lit_Chars val:'\t 3\n' span_id:310) (Token id:Id.Lit_Chars val:'\t 4\n' span_id:311) (Token id:Id.Lit_Chars val:'\t 5\n' span_id:312) (Token id:Id.Lit_Chars val:'\t+\n' span_id:313) (Token id:Id.Lit_Chars val:'\t 6\n' span_id:314) (Token id:Id.Lit_Chars val:'\t 7\n' span_id:315) (Token id:Id.Lit_Chars val:'\t+change\n' span_id:316) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:317) (Token id:Id.Lit_Chars val:'\tcompare_diff_patch expected out.tmp\n' span_id:318) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ignore-blank-lines: between changes' span_id:325))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:329) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >x &&\n' span_id:330) (Token id:Id.Lit_Chars val:'\t1\n' span_id:331) (Token id:Id.Lit_Chars val:'\t2\n' span_id:332) (Token id:Id.Lit_Chars val:'\t3\n' span_id:333) (Token id:Id.Lit_Chars val:'\t4\n' span_id:334) (Token id:Id.Lit_Chars val:'\t5\n' span_id:335) (Token id:Id.Lit_Chars val:'\n' span_id:336) (Token id:Id.Lit_Chars val:'\n' span_id:337) (Token id:Id.Lit_Chars val:'\t6\n' span_id:338) (Token id:Id.Lit_Chars val:'\t7\n' span_id:339) (Token id:Id.Lit_Chars val:'\t8\n' span_id:340) (Token id:Id.Lit_Chars val:'\t9\n' span_id:341) (Token id:Id.Lit_Chars val:'\t10\n' span_id:342) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:343) (Token id:Id.Lit_Chars val:'\tgit update-index x &&\n' span_id:344) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >x &&\n' span_id:345) (Token id:Id.Lit_Chars val:'\tchange\n' span_id:346) (Token id:Id.Lit_Chars val:'\t1\n' span_id:347) (Token id:Id.Lit_Chars val:'\t2\n' span_id:348) (Token id:Id.Lit_Chars val:'\n' span_id:349) (Token id:Id.Lit_Chars val:'\t3\n' span_id:350) (Token id:Id.Lit_Chars val:'\t4\n' span_id:351) (Token id:Id.Lit_Chars val:'\t5\n' span_id:352) (Token id:Id.Lit_Chars val:'\t6\n' span_id:353) (Token id:Id.Lit_Chars val:'\t7\n' span_id:354) (Token id:Id.Lit_Chars val:'\t8\n' span_id:355) (Token id:Id.Lit_Chars val:'\n' span_id:356) (Token id:Id.Lit_Chars val:'\t9\n' span_id:357) (Token id:Id.Lit_Chars val:'\t10\n' span_id:358) (Token id:Id.Lit_Chars val:'\tchange\n' span_id:359) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:360) (Token id: Id.Lit_Chars val: '\tgit diff --ignore-blank-lines >out.tmp &&\n' span_id: 361 ) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >expected &&\n' span_id:362) (Token id:Id.Lit_Chars val:'\tdiff --git a/x b/x\n' span_id:363) (Token id:Id.Lit_Chars val:'\t--- a/x\n' span_id:364) (Token id:Id.Lit_Chars val:'\t+++ b/x\n' span_id:365) (Token id:Id.Lit_Chars val:'\t@@ -1,5 +1,7 @@\n' span_id:366) (Token id:Id.Lit_Chars val:'\t+change\n' span_id:367) (Token id:Id.Lit_Chars val:'\t 1\n' span_id:368) (Token id:Id.Lit_Chars val:'\t 2\n' span_id:369) (Token id:Id.Lit_Chars val:'\t+\n' span_id:370) (Token id:Id.Lit_Chars val:'\t 3\n' span_id:371) (Token id:Id.Lit_Chars val:'\t 4\n' span_id:372) (Token id:Id.Lit_Chars val:'\t 5\n' span_id:373) (Token id:Id.Lit_Chars val:'\t@@ -8,5 +8,7 @@\n' span_id:374) (Token id:Id.Lit_Chars val:'\t 6\n' span_id:375) (Token id:Id.Lit_Chars val:'\t 7\n' span_id:376) (Token id:Id.Lit_Chars val:'\t 8\n' span_id:377) (Token id:Id.Lit_Chars val:'\t+\n' span_id:378) (Token id:Id.Lit_Chars val:'\t 9\n' span_id:379) (Token id:Id.Lit_Chars val:'\t 10\n' span_id:380) (Token id:Id.Lit_Chars val:'\t+change\n' span_id:381) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:382) (Token id:Id.Lit_Chars val:'\tcompare_diff_patch expected out.tmp\n' span_id:383) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'ignore-blank-lines: between changes (with interhunkctx)' span_id: 390 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:394) (Token id:Id.Lit_Chars val:'\ttest_seq 10 >x &&\n' span_id:395) (Token id:Id.Lit_Chars val:'\tgit update-index x &&\n' span_id:396) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >x &&\n' span_id:397) (Token id:Id.Lit_Chars val:'\tchange\n' span_id:398) (Token id:Id.Lit_Chars val:'\t1\n' span_id:399) (Token id:Id.Lit_Chars val:'\t2\n' span_id:400) (Token id:Id.Lit_Chars val:'\n' span_id:401) (Token id:Id.Lit_Chars val:'\t3\n' span_id:402) (Token id:Id.Lit_Chars val:'\t4\n' span_id:403) (Token id:Id.Lit_Chars val:'\t5\n' span_id:404) (Token id:Id.Lit_Chars val:'\n' span_id:405) (Token id:Id.Lit_Chars val:'\t6\n' span_id:406) (Token id:Id.Lit_Chars val:'\t7\n' span_id:407) (Token id:Id.Lit_Chars val:'\t8\n' span_id:408) (Token id:Id.Lit_Chars val:'\t9\n' span_id:409) (Token id:Id.Lit_Chars val:'\n' span_id:410) (Token id:Id.Lit_Chars val:'\t10\n' span_id:411) (Token id:Id.Lit_Chars val:'\tchange\n' span_id:412) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:413) (Token id: Id.Lit_Chars val: '\tgit diff --inter-hunk-context=2 --ignore-blank-lines >out.tmp &&\n' span_id: 414 ) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >expected &&\n' span_id:415) (Token id:Id.Lit_Chars val:'\tdiff --git a/x b/x\n' span_id:416) (Token id:Id.Lit_Chars val:'\t--- a/x\n' span_id:417) (Token id:Id.Lit_Chars val:'\t+++ b/x\n' span_id:418) (Token id:Id.Lit_Chars val:'\t@@ -1,10 +1,15 @@\n' span_id:419) (Token id:Id.Lit_Chars val:'\t+change\n' span_id:420) (Token id:Id.Lit_Chars val:'\t 1\n' span_id:421) (Token id:Id.Lit_Chars val:'\t 2\n' span_id:422) (Token id:Id.Lit_Chars val:'\t+\n' span_id:423) (Token id:Id.Lit_Chars val:'\t 3\n' span_id:424) (Token id:Id.Lit_Chars val:'\t 4\n' span_id:425) (Token id:Id.Lit_Chars val:'\t 5\n' span_id:426) (Token id:Id.Lit_Chars val:'\t+\n' span_id:427) (Token id:Id.Lit_Chars val:'\t 6\n' span_id:428) (Token id:Id.Lit_Chars val:'\t 7\n' span_id:429) (Token id:Id.Lit_Chars val:'\t 8\n' span_id:430) (Token id:Id.Lit_Chars val:'\t 9\n' span_id:431) (Token id:Id.Lit_Chars val:'\t+\n' span_id:432) (Token id:Id.Lit_Chars val:'\t 10\n' span_id:433) (Token id:Id.Lit_Chars val:'\t+change\n' span_id:434) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:435) (Token id:Id.Lit_Chars val:'\tcompare_diff_patch expected out.tmp\n' span_id:436) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ignore-blank-lines: scattered spaces' span_id:443))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:447) (Token id:Id.Lit_Chars val:'\ttest_seq 10 >x &&\n' span_id:448) (Token id:Id.Lit_Chars val:'\tgit update-index x &&\n' span_id:449) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >x &&\n' span_id:450) (Token id:Id.Lit_Chars val:'\tchange\n' span_id:451) (Token id:Id.Lit_Chars val:'\t1\n' span_id:452) (Token id:Id.Lit_Chars val:'\t2\n' span_id:453) (Token id:Id.Lit_Chars val:'\t3\n' span_id:454) (Token id:Id.Lit_Chars val:'\n' span_id:455) (Token id:Id.Lit_Chars val:'\t4\n' span_id:456) (Token id:Id.Lit_Chars val:'\n' span_id:457) (Token id:Id.Lit_Chars val:'\t5\n' span_id:458) (Token id:Id.Lit_Chars val:'\n' span_id:459) (Token id:Id.Lit_Chars val:'\t6\n' span_id:460) (Token id:Id.Lit_Chars val:'\n' span_id:461) (Token id:Id.Lit_Chars val:'\n' span_id:462) (Token id:Id.Lit_Chars val:'\t7\n' span_id:463) (Token id:Id.Lit_Chars val:'\n' span_id:464) (Token id:Id.Lit_Chars val:'\t8\n' span_id:465) (Token id:Id.Lit_Chars val:'\t9\n' span_id:466) (Token id:Id.Lit_Chars val:'\t10\n' span_id:467) (Token id:Id.Lit_Chars val:'\tchange\n' span_id:468) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:469) (Token id: Id.Lit_Chars val: '\tgit diff --inter-hunk-context=4 --ignore-blank-lines >out.tmp &&\n' span_id: 470 ) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >expected &&\n' span_id:471) (Token id:Id.Lit_Chars val:'\tdiff --git a/x b/x\n' span_id:472) (Token id:Id.Lit_Chars val:'\t--- a/x\n' span_id:473) (Token id:Id.Lit_Chars val:'\t+++ b/x\n' span_id:474) (Token id:Id.Lit_Chars val:'\t@@ -1,3 +1,4 @@\n' span_id:475) (Token id:Id.Lit_Chars val:'\t+change\n' span_id:476) (Token id:Id.Lit_Chars val:'\t 1\n' span_id:477) (Token id:Id.Lit_Chars val:'\t 2\n' span_id:478) (Token id:Id.Lit_Chars val:'\t 3\n' span_id:479) (Token id:Id.Lit_Chars val:'\t@@ -8,3 +15,4 @@\n' span_id:480) (Token id:Id.Lit_Chars val:'\t 8\n' span_id:481) (Token id:Id.Lit_Chars val:'\t 9\n' span_id:482) (Token id:Id.Lit_Chars val:'\t 10\n' span_id:483) (Token id:Id.Lit_Chars val:'\t+change\n' span_id:484) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:485) (Token id:Id.Lit_Chars val:'\tcompare_diff_patch expected out.tmp\n' span_id:486) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ignore-blank-lines: spaces coalesce' span_id:493))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:497) (Token id:Id.Lit_Chars val:'\ttest_seq 6 >x &&\n' span_id:498) (Token id:Id.Lit_Chars val:'\tgit update-index x &&\n' span_id:499) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >x &&\n' span_id:500) (Token id:Id.Lit_Chars val:'\tchange\n' span_id:501) (Token id:Id.Lit_Chars val:'\t1\n' span_id:502) (Token id:Id.Lit_Chars val:'\t2\n' span_id:503) (Token id:Id.Lit_Chars val:'\t3\n' span_id:504) (Token id:Id.Lit_Chars val:'\n' span_id:505) (Token id:Id.Lit_Chars val:'\t4\n' span_id:506) (Token id:Id.Lit_Chars val:'\n' span_id:507) (Token id:Id.Lit_Chars val:'\t5\n' span_id:508) (Token id:Id.Lit_Chars val:'\n' span_id:509) (Token id:Id.Lit_Chars val:'\t6\n' span_id:510) (Token id:Id.Lit_Chars val:'\tchange\n' span_id:511) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:512) (Token id: Id.Lit_Chars val: '\tgit diff --inter-hunk-context=4 --ignore-blank-lines >out.tmp &&\n' span_id: 513 ) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >expected &&\n' span_id:514) (Token id:Id.Lit_Chars val:'\tdiff --git a/x b/x\n' span_id:515) (Token id:Id.Lit_Chars val:'\t--- a/x\n' span_id:516) (Token id:Id.Lit_Chars val:'\t+++ b/x\n' span_id:517) (Token id:Id.Lit_Chars val:'\t@@ -1,6 +1,11 @@\n' span_id:518) (Token id:Id.Lit_Chars val:'\t+change\n' span_id:519) (Token id:Id.Lit_Chars val:'\t 1\n' span_id:520) (Token id:Id.Lit_Chars val:'\t 2\n' span_id:521) (Token id:Id.Lit_Chars val:'\t 3\n' span_id:522) (Token id:Id.Lit_Chars val:'\t+\n' span_id:523) (Token id:Id.Lit_Chars val:'\t 4\n' span_id:524) (Token id:Id.Lit_Chars val:'\t+\n' span_id:525) (Token id:Id.Lit_Chars val:'\t 5\n' span_id:526) (Token id:Id.Lit_Chars val:'\t+\n' span_id:527) (Token id:Id.Lit_Chars val:'\t 6\n' span_id:528) (Token id:Id.Lit_Chars val:'\t+change\n' span_id:529) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:530) (Token id:Id.Lit_Chars val:'\tcompare_diff_patch expected out.tmp\n' span_id:531) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ignore-blank-lines: mix changes and blank lines' span_id:538))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:542) (Token id:Id.Lit_Chars val:'\ttest_seq 16 >x &&\n' span_id:543) (Token id:Id.Lit_Chars val:'\tgit update-index x &&\n' span_id:544) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >x &&\n' span_id:545) (Token id:Id.Lit_Chars val:'\tchange\n' span_id:546) (Token id:Id.Lit_Chars val:'\t1\n' span_id:547) (Token id:Id.Lit_Chars val:'\t2\n' span_id:548) (Token id:Id.Lit_Chars val:'\n' span_id:549) (Token id:Id.Lit_Chars val:'\t3\n' span_id:550) (Token id:Id.Lit_Chars val:'\t4\n' span_id:551) (Token id:Id.Lit_Chars val:'\t5\n' span_id:552) (Token id:Id.Lit_Chars val:'\tchange\n' span_id:553) (Token id:Id.Lit_Chars val:'\t6\n' span_id:554) (Token id:Id.Lit_Chars val:'\t7\n' span_id:555) (Token id:Id.Lit_Chars val:'\t8\n' span_id:556) (Token id:Id.Lit_Chars val:'\n' span_id:557) (Token id:Id.Lit_Chars val:'\t9\n' span_id:558) (Token id:Id.Lit_Chars val:'\t10\n' span_id:559) (Token id:Id.Lit_Chars val:'\t11\n' span_id:560) (Token id:Id.Lit_Chars val:'\tchange\n' span_id:561) (Token id:Id.Lit_Chars val:'\t12\n' span_id:562) (Token id:Id.Lit_Chars val:'\t13\n' span_id:563) (Token id:Id.Lit_Chars val:'\t14\n' span_id:564) (Token id:Id.Lit_Chars val:'\n' span_id:565) (Token id:Id.Lit_Chars val:'\t15\n' span_id:566) (Token id:Id.Lit_Chars val:'\t16\n' span_id:567) (Token id:Id.Lit_Chars val:'\tchange\n' span_id:568) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:569) (Token id:Id.Lit_Chars val:'\tgit diff --ignore-blank-lines >out.tmp &&\n' span_id:570) (Token id:Id.Lit_Chars val:'\tcat <<-\\EOF >expected &&\n' span_id:571) (Token id:Id.Lit_Chars val:'\tdiff --git a/x b/x\n' span_id:572) (Token id:Id.Lit_Chars val:'\t--- a/x\n' span_id:573) (Token id:Id.Lit_Chars val:'\t+++ b/x\n' span_id:574) (Token id:Id.Lit_Chars val:'\t@@ -1,8 +1,11 @@\n' span_id:575) (Token id:Id.Lit_Chars val:'\t+change\n' span_id:576) (Token id:Id.Lit_Chars val:'\t 1\n' span_id:577) (Token id:Id.Lit_Chars val:'\t 2\n' span_id:578) (Token id:Id.Lit_Chars val:'\t+\n' span_id:579) (Token id:Id.Lit_Chars val:'\t 3\n' span_id:580) (Token id:Id.Lit_Chars val:'\t 4\n' span_id:581) (Token id:Id.Lit_Chars val:'\t 5\n' span_id:582) (Token id:Id.Lit_Chars val:'\t+change\n' span_id:583) (Token id:Id.Lit_Chars val:'\t 6\n' span_id:584) (Token id:Id.Lit_Chars val:'\t 7\n' span_id:585) (Token id:Id.Lit_Chars val:'\t 8\n' span_id:586) (Token id:Id.Lit_Chars val:'\t@@ -9,8 +13,11 @@\n' span_id:587) (Token id:Id.Lit_Chars val:'\t 9\n' span_id:588) (Token id:Id.Lit_Chars val:'\t 10\n' span_id:589) (Token id:Id.Lit_Chars val:'\t 11\n' span_id:590) (Token id:Id.Lit_Chars val:'\t+change\n' span_id:591) (Token id:Id.Lit_Chars val:'\t 12\n' span_id:592) (Token id:Id.Lit_Chars val:'\t 13\n' span_id:593) (Token id:Id.Lit_Chars val:'\t 14\n' span_id:594) (Token id:Id.Lit_Chars val:'\t+\n' span_id:595) (Token id:Id.Lit_Chars val:'\t 15\n' span_id:596) (Token id:Id.Lit_Chars val:'\t 16\n' span_id:597) (Token id:Id.Lit_Chars val:'\t+change\n' span_id:598) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:599) (Token id:Id.Lit_Chars val:'\tcompare_diff_patch expected out.tmp\n' span_id:600) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check mixed spaces and tabs in indent' span_id:607))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:611) (Token id:Id.Lit_Chars val:'\t# This is indented with SP HT SP.\n' span_id:612) (Token id:Id.Lit_Chars val:'\techo " \t foo();" >x &&\n' span_id:613) (Token id: Id.Lit_Chars val: '\tgit diff --check | grep "space before tab in indent"\n' span_id: 614 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check mixed tabs and spaces in indent' span_id:621))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:625) (Token id:Id.Lit_Chars val:'\t# This is indented with HT SP HT.\n' span_id:626) (Token id:Id.Lit_Chars val:'\techo "\t \tfoo();" >x &&\n' span_id:627) (Token id: Id.Lit_Chars val: '\tgit diff --check | grep "space before tab in indent"\n' span_id: 628 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check with no whitespace errors' span_id:635))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:639) (Token id:Id.Lit_Chars val:'\tgit commit -m "snapshot" &&\n' span_id:640) (Token id:Id.Lit_Chars val:'\techo "foo();" >x &&\n' span_id:641) (Token id:Id.Lit_Chars val:'\tgit diff --check\n' span_id:642) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check with trailing whitespace' span_id:649))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:653) (Token id:Id.Lit_Chars val:'\techo "foo(); " >x &&\n' span_id:654) (Token id:Id.Lit_Chars val:'\ttest_must_fail git diff --check\n' span_id:655) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check with space before tab in indent' span_id:662))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:666) (Token id: Id.Lit_Chars val: '\t# indent has space followed by hard tab\n' span_id: 667 ) (Token id:Id.Lit_Chars val:'\techo " \tfoo();" >x &&\n' span_id:668) (Token id:Id.Lit_Chars val:'\ttest_must_fail git diff --check\n' span_id:669) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--check and --exit-code are not exclusive' span_id:676))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:680) (Token id:Id.Lit_Chars val:'\tgit checkout x &&\n' span_id:681) (Token id:Id.Lit_Chars val:'\tgit diff --check --exit-code\n' span_id:682) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'--check and --quiet are not exclusive' span_id:689))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:693) (Token id:Id.Lit_Chars val:'\tgit diff --check --quiet\n' span_id:694) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check staged with no whitespace errors' span_id:701))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:705) (Token id:Id.Lit_Chars val:'\techo "foo();" >x &&\n' span_id:706) (Token id:Id.Lit_Chars val:'\tgit add x &&\n' span_id:707) (Token id:Id.Lit_Chars val:'\tgit diff --cached --check\n' span_id:708) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check staged with trailing whitespace' span_id:715))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:719) (Token id:Id.Lit_Chars val:'\techo "foo(); " >x &&\n' span_id:720) (Token id:Id.Lit_Chars val:'\tgit add x &&\n' span_id:721) (Token id: Id.Lit_Chars val: '\ttest_must_fail git diff --cached --check\n' span_id: 722 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check staged with space before tab in indent' span_id:729))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:733) (Token id: Id.Lit_Chars val: '\t# indent has space followed by hard tab\n' span_id: 734 ) (Token id:Id.Lit_Chars val:'\techo " \tfoo();" >x &&\n' span_id:735) (Token id:Id.Lit_Chars val:'\tgit add x &&\n' span_id:736) (Token id:Id.Lit_Chars val:'\ttest_must_fail git diff --cached --check\n' span_id:737) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check with no whitespace errors (diff-index)' span_id:744))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:748) (Token id:Id.Lit_Chars val:'\techo "foo();" >x &&\n' span_id:749) (Token id:Id.Lit_Chars val:'\tgit add x &&\n' span_id:750) (Token id:Id.Lit_Chars val:'\tgit diff-index --check HEAD\n' span_id:751) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check with trailing whitespace (diff-index)' span_id:758))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:762) (Token id:Id.Lit_Chars val:'\techo "foo(); " >x &&\n' span_id:763) (Token id:Id.Lit_Chars val:'\tgit add x &&\n' span_id:764) (Token id: Id.Lit_Chars val: '\ttest_must_fail git diff-index --check HEAD\n' span_id: 765 ) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'check with space before tab in indent (diff-index)' span_id: 772 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:776) (Token id: Id.Lit_Chars val: '\t# indent has space followed by hard tab\n' span_id: 777 ) (Token id:Id.Lit_Chars val:'\techo " \tfoo();" >x &&\n' span_id:778) (Token id:Id.Lit_Chars val:'\tgit add x &&\n' span_id:779) (Token id:Id.Lit_Chars val:'\ttest_must_fail git diff-index --check HEAD\n' span_id:780) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'check staged with no whitespace errors (diff-index)' span_id: 787 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:791) (Token id:Id.Lit_Chars val:'\techo "foo();" >x &&\n' span_id:792) (Token id:Id.Lit_Chars val:'\tgit add x &&\n' span_id:793) (Token id: Id.Lit_Chars val: '\tgit diff-index --cached --check HEAD\n' span_id: 794 ) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'check staged with trailing whitespace (diff-index)' span_id: 801 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:805) (Token id:Id.Lit_Chars val:'\techo "foo(); " >x &&\n' span_id:806) (Token id:Id.Lit_Chars val:'\tgit add x &&\n' span_id:807) (Token id: Id.Lit_Chars val: '\ttest_must_fail git diff-index --cached --check HEAD\n' span_id: 808 ) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'check staged with space before tab in indent (diff-index)' span_id: 815 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:819) (Token id: Id.Lit_Chars val: '\t# indent has space followed by hard tab\n' span_id: 820 ) (Token id:Id.Lit_Chars val:'\techo " \tfoo();" >x &&\n' span_id:821) (Token id:Id.Lit_Chars val:'\tgit add x &&\n' span_id:822) (Token id:Id.Lit_Chars val:'\ttest_must_fail git diff-index --cached --check HEAD\n' span_id:823) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check with no whitespace errors (diff-tree)' span_id:830))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:834) (Token id:Id.Lit_Chars val:'\techo "foo();" >x &&\n' span_id:835) (Token id:Id.Lit_Chars val:'\tgit commit -m "new commit" x &&\n' span_id:836) (Token id:Id.Lit_Chars val:'\tgit diff-tree --check HEAD^ HEAD\n' span_id:837) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check with trailing whitespace (diff-tree)' span_id:844))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:848) (Token id:Id.Lit_Chars val:'\techo "foo(); " >x &&\n' span_id:849) (Token id:Id.Lit_Chars val:'\tgit commit -m "another commit" x &&\n' span_id:850) (Token id: Id.Lit_Chars val: '\ttest_must_fail git diff-tree --check HEAD^ HEAD\n' span_id: 851 ) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'check with space before tab in indent (diff-tree)' span_id: 858 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:862) (Token id: Id.Lit_Chars val: '\t# indent has space followed by hard tab\n' span_id: 863 ) (Token id:Id.Lit_Chars val:'\techo " \tfoo();" >x &&\n' span_id:864) (Token id:Id.Lit_Chars val:'\tgit commit -m "yet another" x &&\n' span_id:865) (Token id:Id.Lit_Chars val:'\ttest_must_fail git diff-tree --check HEAD^ HEAD\n' span_id:866) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check trailing whitespace (trailing-space: off)' span_id:873))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:877) (Token id: Id.Lit_Chars val: '\tgit config core.whitespace "-trailing-space" &&\n' span_id: 878 ) (Token id:Id.Lit_Chars val:'\techo "foo (); " >x &&\n' span_id:879) (Token id:Id.Lit_Chars val:'\tgit diff --check\n' span_id:880) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check trailing whitespace (trailing-space: on)' span_id:887))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:891) (Token id: Id.Lit_Chars val: '\tgit config core.whitespace "trailing-space" &&\n' span_id: 892 ) (Token id:Id.Lit_Chars val:'\techo "foo (); " >x &&\n' span_id:893) (Token id:Id.Lit_Chars val:'\ttest_must_fail git diff --check\n' span_id:894) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'check space before tab in indent (space-before-tab: off)' span_id: 901 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:905) (Token id: Id.Lit_Chars val: '\t# indent contains space followed by HT\n' span_id: 906 ) (Token id:Id.Lit_Chars val:'\tgit config core.whitespace "-space-before-tab" &&\n' span_id:907) (Token id:Id.Lit_Chars val:'\techo " \tfoo ();" >x &&\n' span_id:908) (Token id:Id.Lit_Chars val:'\tgit diff --check\n' span_id:909) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'check space before tab in indent (space-before-tab: on)' span_id: 916 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:920) (Token id: Id.Lit_Chars val: '\t# indent contains space followed by HT\n' span_id: 921 ) (Token id:Id.Lit_Chars val:'\tgit config core.whitespace "space-before-tab" &&\n' span_id:922) (Token id:Id.Lit_Chars val:'\techo " \tfoo (); " >x &&\n' span_id:923) (Token id:Id.Lit_Chars val:'\ttest_must_fail git diff --check\n' span_id:924) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'check spaces as indentation (indent-with-non-tab: off)' span_id: 931 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:935) (Token id: Id.Lit_Chars val: '\tgit config core.whitespace "-indent-with-non-tab" &&\n' span_id: 936 ) (Token id:Id.Lit_Chars val:'\techo " foo ();" >x &&\n' span_id:937) (Token id:Id.Lit_Chars val:'\tgit diff --check\n' span_id:938) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'check spaces as indentation (indent-with-non-tab: on)' span_id: 945 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:949) (Token id: Id.Lit_Chars val: '\tgit config core.whitespace "indent-with-non-tab" &&\n' span_id: 950 ) (Token id:Id.Lit_Chars val:'\techo " foo ();" >x &&\n' span_id:951) (Token id:Id.Lit_Chars val:'\ttest_must_fail git diff --check\n' span_id:952) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ditto, but tabwidth=9' span_id:959))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:963) (Token id: Id.Lit_Chars val: '\tgit config core.whitespace "indent-with-non-tab,tabwidth=9" &&\n' span_id: 964 ) (Token id:Id.Lit_Chars val:'\tgit diff --check\n' span_id:965) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'check tabs and spaces as indentation (indent-with-non-tab: on)' span_id: 972 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:976) (Token id: Id.Lit_Chars val: '\tgit config core.whitespace "indent-with-non-tab" &&\n' span_id: 977 ) (Token id:Id.Lit_Chars val:'\techo "\t foo ();" >x &&\n' span_id:978) (Token id:Id.Lit_Chars val:'\ttest_must_fail git diff --check\n' span_id:979) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ditto, but tabwidth=10' span_id:986))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:990) (Token id: Id.Lit_Chars val: '\tgit config core.whitespace "indent-with-non-tab,tabwidth=10" &&\n' span_id: 991 ) (Token id:Id.Lit_Chars val:'\ttest_must_fail git diff --check\n' span_id:992) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ditto, but tabwidth=20' span_id:999))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1003) (Token id: Id.Lit_Chars val: '\tgit config core.whitespace "indent-with-non-tab,tabwidth=20" &&\n' span_id: 1004 ) (Token id:Id.Lit_Chars val:'\tgit diff --check\n' span_id:1005) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check tabs as indentation (tab-in-indent: off)' span_id:1012))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1016) (Token id: Id.Lit_Chars val: '\tgit config core.whitespace "-tab-in-indent" &&\n' span_id: 1017 ) (Token id:Id.Lit_Chars val:'\techo "\tfoo ();" >x &&\n' span_id:1018) (Token id:Id.Lit_Chars val:'\tgit diff --check\n' span_id:1019) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'check tabs as indentation (tab-in-indent: on)' span_id:1026))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1030) (Token id: Id.Lit_Chars val: '\tgit config core.whitespace "tab-in-indent" &&\n' span_id: 1031 ) (Token id:Id.Lit_Chars val:'\techo "\tfoo ();" >x &&\n' span_id:1032) (Token id:Id.Lit_Chars val:'\ttest_must_fail git diff --check\n' span_id:1033) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'check tabs and spaces as indentation (tab-in-indent: on)' span_id: 1040 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1044) (Token id: Id.Lit_Chars val: '\tgit config core.whitespace "tab-in-indent" &&\n' span_id: 1045 ) (Token id:Id.Lit_Chars val:'\techo "\t foo ();" >x &&\n' span_id:1046) (Token id:Id.Lit_Chars val:'\ttest_must_fail git diff --check\n' span_id:1047) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ditto, but tabwidth=1 (must be irrelevant)' span_id:1054))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1058) (Token id: Id.Lit_Chars val: '\tgit config core.whitespace "tab-in-indent,tabwidth=1" &&\n' span_id: 1059 ) (Token id:Id.Lit_Chars val:'\ttest_must_fail git diff --check\n' span_id:1060) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'check tab-in-indent and indent-with-non-tab conflict' span_id: 1067 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1071) (Token id: Id.Lit_Chars val: '\tgit config core.whitespace "tab-in-indent,indent-with-non-tab" &&\n' span_id: 1072 ) (Token id:Id.Lit_Chars val:'\techo "foo ();" >x &&\n' span_id:1073) (Token id:Id.Lit_Chars val:'\ttest_must_fail git diff --check\n' span_id:1074) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'check tab-in-indent excluded from wildcard whitespace attribute' span_id: 1081 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1085) (Token id: Id.Lit_Chars val: '\tgit config --unset core.whitespace &&\n' span_id: 1086 ) (Token id:Id.Lit_Chars val:'\techo "x whitespace" >.gitattributes &&\n' span_id:1087) (Token id:Id.Lit_Chars val:'\techo "\t foo ();" >x &&\n' span_id:1088) (Token id:Id.Lit_Chars val:'\tgit diff --check &&\n' span_id:1089) (Token id:Id.Lit_Chars val:'\trm -f .gitattributes\n' span_id:1090) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'line numbers in --check output are correct' span_id:1097))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1101) (Token id:Id.Lit_Chars val:'\techo "" >x &&\n' span_id:1102) (Token id:Id.Lit_Chars val:'\techo "foo(); " >>x &&\n' span_id:1103) (Token id:Id.Lit_Chars val:'\tgit diff --check | grep "x:2:"\n' span_id:1104) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'checkdiff detects new trailing blank lines (1)' span_id:1111))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1115) (Token id:Id.Lit_Chars val:'\techo "foo();" >x &&\n' span_id:1116) (Token id:Id.Lit_Chars val:'\techo "" >>x &&\n' span_id:1117) (Token id: Id.Lit_Chars val: '\tgit diff --check | grep "new blank line"\n' span_id: 1118 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'checkdiff detects new trailing blank lines (2)' span_id:1125))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1129) (Token id: Id.Lit_Chars val: '\t{ echo a; echo b; echo; echo; } >x &&\n' span_id: 1130 ) (Token id:Id.Lit_Chars val:'\tgit add x &&\n' span_id:1131) (Token id: Id.Lit_Chars val: '\t{ echo a; echo; echo; echo; echo; } >x &&\n' span_id: 1132 ) (Token id:Id.Lit_Chars val:'\tgit diff --check | grep "new blank line"\n' span_id:1133) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'checkdiff allows new blank lines' span_id:1140))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1144) (Token id:Id.Lit_Chars val:'\tgit checkout x &&\n' span_id:1145) (Token id:Id.Lit_Chars val:'\tmv x y &&\n' span_id:1146) (Token id:Id.Lit_Chars val:'\t(\n' span_id:1147) (Token id:Id.Lit_Chars val:'\t\techo "/* This is new */" &&\n' span_id:1148) (Token id:Id.Lit_Chars val:'\t\techo "" &&\n' span_id:1149) (Token id:Id.Lit_Chars val:'\t\tcat y\n' span_id:1150) (Token id:Id.Lit_Chars val:'\t) >x &&\n' span_id:1151) (Token id:Id.Lit_Chars val:'\tgit diff --check\n' span_id:1152) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1158) fd: -1 here_begin: {(EOF)} here_end_span_id: 1165 ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1161) fd: -1 arg_word: {(expect)} ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'whitespace-only changes not reported' span_id:1169))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1173) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:1174) (Token id:Id.Lit_Chars val:'\techo >x "hello world" &&\n' span_id:1175) (Token id:Id.Lit_Chars val:'\tgit add x &&\n' span_id:1176) (Token id:Id.Lit_Chars val:'\tgit commit -m "hello 1" &&\n' span_id:1177) (Token id:Id.Lit_Chars val:'\techo >x "hello world" &&\n' span_id:1178) (Token id:Id.Lit_Chars val:'\tgit diff -b >actual &&\n' span_id:1179) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:1180) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1186) fd: -1 here_begin: {(EOF)} here_end_span_id: 1198 stdin_parts: [ ('diff --git a/x b/z\n') ('similarity index NUM%\n') ('rename from x\n') ('rename to z\n') ('index 380c32a..a97b785 100644\n') ] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1189) fd: -1 arg_word: {(expect)} ) ] ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'whitespace-only changes reported across renames' span_id: 1202 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1206) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:1207) (Token id: Id.Lit_Chars val: '\tfor i in 1 2 3 4 5 6 7 8 9; do echo "$i$i$i$i$i$i"; done >x &&\n' span_id: 1208 ) (Token id:Id.Lit_Chars val:'\tgit add x &&\n' span_id:1209) (Token id:Id.Lit_Chars val:'\tgit commit -m "base" &&\n' span_id:1210) (Token id:Id.Lit_Chars val:'\tsed -e "5s/^/ /" x >z &&\n' span_id:1211) (Token id:Id.Lit_Chars val:'\tgit rm x &&\n' span_id:1212) (Token id:Id.Lit_Chars val:'\tgit add z &&\n' span_id:1213) (Token id:Id.Lit_Chars val:'\tgit diff -w -M --cached |\n' span_id:1214) (Token id: Id.Lit_Chars val: '\tsed -e "/^similarity index /s/[0-9][0-9]*/NUM/" >actual &&\n' span_id: 1215 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:1216) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1222) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:1225) fd: -1 here_begin: {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:1226)) (OF) } here_end_span_id: 1233 stdin_parts: [ ('diff --git a/empty b/void\n') ('similarity index 100%\n') ('rename from empty\n') ('rename to void\n') ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'rename empty' span_id:1238))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1242) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:1243) (Token id:Id.Lit_Chars val:'\t>empty &&\n' span_id:1244) (Token id:Id.Lit_Chars val:'\tgit add empty &&\n' span_id:1245) (Token id:Id.Lit_Chars val:'\tgit commit -m empty &&\n' span_id:1246) (Token id:Id.Lit_Chars val:'\tgit mv empty void &&\n' span_id:1247) (Token id:Id.Lit_Chars val:'\tgit diff -w --cached -M >current &&\n' span_id:1248) (Token id:Id.Lit_Chars val:'\ttest_cmp expected current\n' span_id:1249) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'combined diff with autocrlf conversion' span_id:1256))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1260) (Token id:Id.Lit_Chars val:'\n' span_id:1261) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:1262) (Token id:Id.Lit_Chars val:'\techo >x hello &&\n' span_id:1263) (Token id:Id.Lit_Chars val:'\tgit commit -m "one side" x &&\n' span_id:1264) (Token id:Id.Lit_Chars val:'\tgit checkout HEAD^ &&\n' span_id:1265) (Token id:Id.Lit_Chars val:'\techo >x goodbye &&\n' span_id:1266) (Token id: Id.Lit_Chars val: '\tgit commit -m "the other side" x &&\n' span_id: 1267 ) (Token id:Id.Lit_Chars val:'\tgit config core.autocrlf true &&\n' span_id:1268) (Token id:Id.Lit_Chars val:'\ttest_must_fail git merge master &&\n' span_id:1269) (Token id:Id.Lit_Chars val:'\n' span_id:1270) (Token id: Id.Lit_Chars val: '\tgit diff | sed -e "1,/^@@@/d" >actual &&\n' span_id: 1271 ) (Token id:Id.Lit_Chars val:'\t! grep "^-" actual\n' span_id:1272) (Token id:Id.Lit_Chars val:'\n' span_id:1273) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup diff colors' span_id:1284))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1288) (Token id:Id.Lit_Chars val:'\tgit config color.diff always &&\n' span_id:1289) (Token id:Id.Lit_Chars val:'\tgit config color.diff.plain normal &&\n' span_id:1290) (Token id:Id.Lit_Chars val:'\tgit config color.diff.meta bold &&\n' span_id:1291) (Token id:Id.Lit_Chars val:'\tgit config color.diff.frag cyan &&\n' span_id:1292) (Token id: Id.Lit_Chars val: '\tgit config color.diff.func normal &&\n' span_id: 1293 ) (Token id:Id.Lit_Chars val:'\tgit config color.diff.old red &&\n' span_id:1294) (Token id:Id.Lit_Chars val:'\tgit config color.diff.new green &&\n' span_id:1295) (Token id:Id.Lit_Chars val:'\tgit config color.diff.commit yellow &&\n' span_id:1296) (Token id: Id.Lit_Chars val: '\tgit config color.diff.whitespace blue &&\n' span_id: 1297 ) (Token id:Id.Lit_Chars val:'\n' span_id:1298) (Token id:Id.Lit_Chars val:'\tgit config core.autocrlf false\n' span_id:1299) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff that introduces a line with only tabs' span_id:1306))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1310) (Token id: Id.Lit_Chars val: '\tgit config core.whitespace blank-at-eol &&\n' span_id: 1311 ) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:1312) (Token id:Id.Lit_Chars val:'\techo "test" >x &&\n' span_id:1313) (Token id:Id.Lit_Chars val:'\tgit commit -m "initial" x &&\n' span_id:1314) (Token id: Id.Lit_Chars val: '\techo "{NTN}" | tr "NT" "\\n\\t" >>x &&\n' span_id: 1315 ) (Token id: Id.Lit_Chars val: '\tgit -c color.diff=always diff | test_decode_color >current &&\n' span_id: 1316 ) (Token id:Id.Lit_Chars val:'\n' span_id:1317) (Token id:Id.Lit_Chars val:'\tcat >expected <<-\\EOF &&\n' span_id:1318) (Token id:Id.Lit_Chars val:'\t<BOLD>diff --git a/x b/x<RESET>\n' span_id:1319) (Token id: Id.Lit_Chars val: '\t<BOLD>index 9daeafb..2874b91 100644<RESET>\n' span_id: 1320 ) (Token id:Id.Lit_Chars val:'\t<BOLD>--- a/x<RESET>\n' span_id:1321) (Token id:Id.Lit_Chars val:'\t<BOLD>+++ b/x<RESET>\n' span_id:1322) (Token id:Id.Lit_Chars val:'\t<CYAN>@@ -1 +1,4 @@<RESET>\n' span_id:1323) (Token id:Id.Lit_Chars val:'\t test<RESET>\n' span_id:1324) (Token id:Id.Lit_Chars val:'\t<GREEN>+<RESET><GREEN>{<RESET>\n' span_id:1325) (Token id:Id.Lit_Chars val:'\t<GREEN>+<RESET><BLUE>\t<RESET>\n' span_id:1326) (Token id:Id.Lit_Chars val:'\t<GREEN>+<RESET><GREEN>}<RESET>\n' span_id:1327) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1328) (Token id:Id.Lit_Chars val:'\n' span_id:1329) (Token id:Id.Lit_Chars val:'\ttest_cmp expected current\n' span_id:1330) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'diff that introduces and removes ws breakages' span_id:1337))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1341) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:1342) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1343) (Token id:Id.Lit_Chars val:'\t\techo "0. blank-at-eol " &&\n' span_id:1344) (Token id:Id.Lit_Chars val:'\t\techo "1. blank-at-eol "\n' span_id:1345) (Token id:Id.Lit_Chars val:'\t} >x &&\n' span_id:1346) (Token id:Id.Lit_Chars val:'\tgit commit -a --allow-empty -m preimage &&\n' span_id:1347) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1348) (Token id:Id.Lit_Chars val:'\t\techo "0. blank-at-eol " &&\n' span_id:1349) (Token id:Id.Lit_Chars val:'\t\techo "1. still-blank-at-eol " &&\n' span_id:1350) (Token id:Id.Lit_Chars val:'\t\techo "2. and a new line "\n' span_id:1351) (Token id:Id.Lit_Chars val:'\t} >x &&\n' span_id:1352) (Token id:Id.Lit_Chars val:'\n' span_id:1353) (Token id:Id.Lit_Chars val:'\tgit -c color.diff=always diff |\n' span_id:1354) (Token id:Id.Lit_Chars val:'\ttest_decode_color >current &&\n' span_id:1355) (Token id:Id.Lit_Chars val:'\n' span_id:1356) (Token id:Id.Lit_Chars val:'\tcat >expected <<-\\EOF &&\n' span_id:1357) (Token id:Id.Lit_Chars val:'\t<BOLD>diff --git a/x b/x<RESET>\n' span_id:1358) (Token id:Id.Lit_Chars val:'\t<BOLD>index d0233a2..700886e 100644<RESET>\n' span_id:1359) (Token id:Id.Lit_Chars val:'\t<BOLD>--- a/x<RESET>\n' span_id:1360) (Token id:Id.Lit_Chars val:'\t<BOLD>+++ b/x<RESET>\n' span_id:1361) (Token id:Id.Lit_Chars val:'\t<CYAN>@@ -1,2 +1,3 @@<RESET>\n' span_id:1362) (Token id:Id.Lit_Chars val:'\t 0. blank-at-eol <RESET>\n' span_id:1363) (Token id:Id.Lit_Chars val:'\t<RED>-1. blank-at-eol <RESET>\n' span_id:1364) (Token id: Id.Lit_Chars val: '\t<GREEN>+<RESET><GREEN>1. still-blank-at-eol<RESET><BLUE> <RESET>\n' span_id: 1365 ) (Token id: Id.Lit_Chars val: '\t<GREEN>+<RESET><GREEN>2. and a new line<RESET><BLUE> <RESET>\n' span_id: 1366 ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1367) (Token id:Id.Lit_Chars val:'\n' span_id:1368) (Token id:Id.Lit_Chars val:'\ttest_cmp expected current\n' span_id:1369) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ws-error-highlight test setup' span_id:1376))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1380) (Token id:Id.Lit_Chars val:'\n' span_id:1381) (Token id:Id.Lit_Chars val:'\tgit reset --hard &&\n' span_id:1382) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1383) (Token id:Id.Lit_Chars val:'\t\techo "0. blank-at-eol " &&\n' span_id:1384) (Token id:Id.Lit_Chars val:'\t\techo "1. blank-at-eol "\n' span_id:1385) (Token id:Id.Lit_Chars val:'\t} >x &&\n' span_id:1386) (Token id: Id.Lit_Chars val: '\tgit commit -a --allow-empty -m preimage &&\n' span_id: 1387 ) (Token id:Id.Lit_Chars val:'\t{\n' span_id:1388) (Token id:Id.Lit_Chars val:'\t\techo "0. blank-at-eol " &&\n' span_id:1389) (Token id:Id.Lit_Chars val:'\t\techo "1. still-blank-at-eol " &&\n' span_id:1390) (Token id:Id.Lit_Chars val:'\t\techo "2. and a new line "\n' span_id:1391) (Token id:Id.Lit_Chars val:'\t} >x &&\n' span_id:1392) (Token id:Id.Lit_Chars val:'\n' span_id:1393) (Token id: Id.Lit_Chars val: '\tcat >expect.default-old <<-\\EOF &&\n' span_id: 1394 ) (Token id:Id.Lit_Chars val:'\t<BOLD>diff --git a/x b/x<RESET>\n' span_id:1395) (Token id: Id.Lit_Chars val: '\t<BOLD>index d0233a2..700886e 100644<RESET>\n' span_id: 1396 ) (Token id:Id.Lit_Chars val:'\t<BOLD>--- a/x<RESET>\n' span_id:1397) (Token id:Id.Lit_Chars val:'\t<BOLD>+++ b/x<RESET>\n' span_id:1398) (Token id:Id.Lit_Chars val:'\t<CYAN>@@ -1,2 +1,3 @@<RESET>\n' span_id:1399) (Token id:Id.Lit_Chars val:'\t 0. blank-at-eol <RESET>\n' span_id:1400) (Token id:Id.Lit_Chars val:'\t<RED>-<RESET><RED>1. blank-at-eol<RESET><BLUE> <RESET>\n' span_id:1401) (Token id: Id.Lit_Chars val: '\t<GREEN>+<RESET><GREEN>1. still-blank-at-eol<RESET><BLUE> <RESET>\n' span_id: 1402 ) (Token id: Id.Lit_Chars val: '\t<GREEN>+<RESET><GREEN>2. and a new line<RESET><BLUE> <RESET>\n' span_id: 1403 ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1404) (Token id:Id.Lit_Chars val:'\n' span_id:1405) (Token id:Id.Lit_Chars val:'\tcat >expect.all <<-\\EOF &&\n' span_id:1406) (Token id:Id.Lit_Chars val:'\t<BOLD>diff --git a/x b/x<RESET>\n' span_id:1407) (Token id: Id.Lit_Chars val: '\t<BOLD>index d0233a2..700886e 100644<RESET>\n' span_id: 1408 ) (Token id:Id.Lit_Chars val:'\t<BOLD>--- a/x<RESET>\n' span_id:1409) (Token id:Id.Lit_Chars val:'\t<BOLD>+++ b/x<RESET>\n' span_id:1410) (Token id:Id.Lit_Chars val:'\t<CYAN>@@ -1,2 +1,3 @@<RESET>\n' span_id:1411) (Token id: Id.Lit_Chars val: '\t <RESET>0. blank-at-eol<RESET><BLUE> <RESET>\n' span_id: 1412 ) (Token id:Id.Lit_Chars val:'\t<RED>-<RESET><RED>1. blank-at-eol<RESET><BLUE> <RESET>\n' span_id:1413) (Token id: Id.Lit_Chars val: '\t<GREEN>+<RESET><GREEN>1. still-blank-at-eol<RESET><BLUE> <RESET>\n' span_id: 1414 ) (Token id: Id.Lit_Chars val: '\t<GREEN>+<RESET><GREEN>2. and a new line<RESET><BLUE> <RESET>\n' span_id: 1415 ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1416) (Token id:Id.Lit_Chars val:'\n' span_id:1417) (Token id:Id.Lit_Chars val:'\tcat >expect.none <<-\\EOF\n' span_id:1418) (Token id:Id.Lit_Chars val:'\t<BOLD>diff --git a/x b/x<RESET>\n' span_id:1419) (Token id: Id.Lit_Chars val: '\t<BOLD>index d0233a2..700886e 100644<RESET>\n' span_id: 1420 ) (Token id:Id.Lit_Chars val:'\t<BOLD>--- a/x<RESET>\n' span_id:1421) (Token id:Id.Lit_Chars val:'\t<BOLD>+++ b/x<RESET>\n' span_id:1422) (Token id:Id.Lit_Chars val:'\t<CYAN>@@ -1,2 +1,3 @@<RESET>\n' span_id:1423) (Token id:Id.Lit_Chars val:'\t 0. blank-at-eol <RESET>\n' span_id:1424) (Token id:Id.Lit_Chars val:'\t<RED>-1. blank-at-eol <RESET>\n' span_id:1425) (Token id: Id.Lit_Chars val: '\t<GREEN>+1. still-blank-at-eol <RESET>\n' span_id: 1426 ) (Token id:Id.Lit_Chars val:'\t<GREEN>+2. and a new line <RESET>\n' span_id:1427) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1428) (Token id:Id.Lit_Chars val:'\n' span_id:1429) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'test --ws-error-highlight option' span_id:1436))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1440) (Token id:Id.Lit_Chars val:'\n' span_id:1441) (Token id: Id.Lit_Chars val: '\tgit -c color.diff=always diff --ws-error-highlight=default,old |\n' span_id: 1442 ) (Token id:Id.Lit_Chars val:'\ttest_decode_color >current &&\n' span_id:1443) (Token id: Id.Lit_Chars val: '\ttest_cmp expect.default-old current &&\n' span_id: 1444 ) (Token id:Id.Lit_Chars val:'\n' span_id:1445) (Token id: Id.Lit_Chars val: '\tgit -c color.diff=always diff --ws-error-highlight=all |\n' span_id: 1446 ) (Token id:Id.Lit_Chars val:'\ttest_decode_color >current &&\n' span_id:1447) (Token id:Id.Lit_Chars val:'\ttest_cmp expect.all current &&\n' span_id:1448) (Token id:Id.Lit_Chars val:'\n' span_id:1449) (Token id: Id.Lit_Chars val: '\tgit -c color.diff=always diff --ws-error-highlight=none |\n' span_id: 1450 ) (Token id:Id.Lit_Chars val:'\ttest_decode_color >current &&\n' span_id:1451) (Token id:Id.Lit_Chars val:'\ttest_cmp expect.none current\n' span_id:1452) (Token id:Id.Lit_Chars val:'\n' span_id:1453) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'test diff.wsErrorHighlight config' span_id:1460))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1464) (Token id:Id.Lit_Chars val:'\n' span_id:1465) (Token id: Id.Lit_Chars val: '\tgit -c color.diff=always -c diff.wsErrorHighlight=default,old diff |\n' span_id: 1466 ) (Token id:Id.Lit_Chars val:'\ttest_decode_color >current &&\n' span_id:1467) (Token id: Id.Lit_Chars val: '\ttest_cmp expect.default-old current &&\n' span_id: 1468 ) (Token id:Id.Lit_Chars val:'\n' span_id:1469) (Token id: Id.Lit_Chars val: '\tgit -c color.diff=always -c diff.wsErrorHighlight=all diff |\n' span_id: 1470 ) (Token id:Id.Lit_Chars val:'\ttest_decode_color >current &&\n' span_id:1471) (Token id:Id.Lit_Chars val:'\ttest_cmp expect.all current &&\n' span_id:1472) (Token id:Id.Lit_Chars val:'\n' span_id:1473) (Token id: Id.Lit_Chars val: '\tgit -c color.diff=always -c diff.wsErrorHighlight=none diff |\n' span_id: 1474 ) (Token id:Id.Lit_Chars val:'\ttest_decode_color >current &&\n' span_id:1475) (Token id:Id.Lit_Chars val:'\ttest_cmp expect.none current\n' span_id:1476) (Token id:Id.Lit_Chars val:'\n' span_id:1477) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'option overrides diff.wsErrorHighlight' span_id:1484))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1488) (Token id:Id.Lit_Chars val:'\n' span_id:1489) (Token id: Id.Lit_Chars val: '\tgit -c color.diff=always -c diff.wsErrorHighlight=none \\\n' span_id: 1490 ) (Token id:Id.Lit_Chars val:'\t\tdiff --ws-error-highlight=default,old |\n' span_id:1491) (Token id:Id.Lit_Chars val:'\ttest_decode_color >current &&\n' span_id:1492) (Token id:Id.Lit_Chars val:'\ttest_cmp expect.default-old current &&\n' span_id:1493) (Token id:Id.Lit_Chars val:'\n' span_id:1494) (Token id: Id.Lit_Chars val: '\tgit -c color.diff=always -c diff.wsErrorHighlight=default \\\n' span_id: 1495 ) (Token id:Id.Lit_Chars val:'\t\tdiff --ws-error-highlight=all |\n' span_id:1496) (Token id:Id.Lit_Chars val:'\ttest_decode_color >current &&\n' span_id:1497) (Token id:Id.Lit_Chars val:'\ttest_cmp expect.all current &&\n' span_id:1498) (Token id:Id.Lit_Chars val:'\n' span_id:1499) (Token id: Id.Lit_Chars val: '\tgit -c color.diff=always -c diff.wsErrorHighlight=all \\\n' span_id: 1500 ) (Token id:Id.Lit_Chars val:'\t\tdiff --ws-error-highlight=none |\n' span_id:1501) (Token id:Id.Lit_Chars val:'\ttest_decode_color >current &&\n' span_id:1502) (Token id:Id.Lit_Chars val:'\ttest_cmp expect.none current\n' span_id:1503) (Token id:Id.Lit_Chars val:'\n' span_id:1504) ) } ) (C {(test_done)}) ] )