(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:'CRLF conversion all combinations' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.If arms: [ (if_arm cond: [(command.Pipeline children:[(C {(test_have_prereq)} {(EXPENSIVE)})] negated:T)] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:skip_all) op: assign_op.Equal rhs: {(DQ ('EXPENSIVE not set'))} spids: [26] ) ] ) (C {(test_done)}) ] spids: [15 23] ) ] ) (command.ShFunction name: compare_files body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (command.Simple words: [{(tr)} {(SQ (Token id:Id.Lit_Chars val:'\\015\\000' span_id:48))} {(QN)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:53) fd: -1 arg_word: {(DQ ($ Id.VSub_Number '$1'))} ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:58) fd: -1 arg_word: {(DQ ($ Id.VSub_Number '$1')) (.expect)} ) ] ) (command.Pipeline children: [ (command.Simple words: [{(tr)} {(SQ (Token id:Id.Lit_Chars val:'\\015\\000' span_id:70))} {(QN)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:75) fd: -1 arg_word: {(DQ ($ Id.VSub_Number '$2'))} ) ] ) (command.Simple words: [{(tr)} {(-d)} {(SQ (Token id:Id.Lit_Chars val:Z span_id:87))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:90) fd: -1 arg_word: {(DQ ($ Id.VSub_Number '$2')) (.actual)} ) ] ) ] negated: F ) (C {(test_cmp)} {(DQ ($ Id.VSub_Number '$1')) (.expect)} {(DQ ($ Id.VSub_Number '$2')) (.actual)} ) (C {(rm)} {(DQ ($ Id.VSub_Number '$1')) (.expect)} {(DQ ($ Id.VSub_Number '$2')) (.actual)} ) ] ) ] ) ) (command.ShFunction name: compare_ws_file body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pfx) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [137] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:exp) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2') (.expect)} spids: [141] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:act) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$pfx') (.actual.) ($ Id.VSub_Number '$3')} spids: [146] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (command.Simple words: [ {(tr)} {(SQ (Token id:Id.Lit_Chars val:'\\015\\000abcdef0123456789' span_id:155))} {(QN00000000000000000)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:160) fd: -1 arg_word: {(DQ ($ Id.VSub_Number '$2'))} ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:165) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$exp'))} ) ] ) (command.Simple words: [ {(tr)} {(SQ (Token id:Id.Lit_Chars val:'\\015\\000abcdef0123456789' span_id:176))} {(QN00000000000000000)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:181) fd: -1 arg_word: {(DQ ($ Id.VSub_Number '$3'))} ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:186) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$act'))} ) ] ) (C {(test_cmp)} {(DQ ($ Id.VSub_DollarName '$exp'))} {(DQ ($ Id.VSub_DollarName '$act'))}) (C {(rm)} {(DQ ($ Id.VSub_DollarName '$exp'))} {(DQ ($ Id.VSub_DollarName '$act'))}) ] ) ] ) ) (command.ShFunction name: create_gitattributes body: (command.BraceGroup children: [ (command.BraceGroup children: [ (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:231) cond: [ (C {(test)} {(DQ ($ Id.VSub_Pound '$#'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(0)} ) ] body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(auto)}] action: [ (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'*.txt text=auto' span_id:263))} ) ] spids: [257 258 266 -1] ) (case_arm pat_list: [{(ident)}] action: [ (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'*.txt ident' span_id:275))} ) ] spids: [269 270 278 -1] ) (case_arm pat_list: [{(text)}] action: [ (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'*.txt text' span_id:287))} ) ] spids: [281 282 290 -1] ) (case_arm pat_list: [{(-text)}] action: [ (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'*.txt -text' span_id:299))} ) ] spids: [293 294 302 -1] ) (case_arm pat_list: [{(crlf)}] action: [ (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'*.txt eol=crlf' span_id:311))} ) ] spids: [305 306 314 -1] ) (case_arm pat_list: [{(lf)}] action: [ (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'*.txt eol=lf' span_id:323))} ) ] spids: [317 318 326 -1] ) (case_arm pat_list: [{(DQ )}] spids: [329 331 333 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.Simple words: [ {(echo)} {(invalid)} {(attribute) (Id.Lit_Other ':')} {(DQ ($ Id.VSub_Number '$1'))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:342) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:355) arg_word: {(1)} ) ] spids: [336 337 360 -1] ) ] ) (C {(shift)}) ] ) ] ) ) ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:376) fd: -1 arg_word: {(.gitattributes)} ) ] ) ] ) ) (command.ShFunction name: create_NNO_files body: (command.BraceGroup children: [ (command.ForEach iter_name: crlf iter_words: [{(false)} {(true)} {(input)}] do_arg_iter: F body: (command.DoGroup children: [ (command.ForEach iter_name: attr iter_words: [{(DQ )} {(auto)} {(text)} {(-text)}] do_arg_iter: F body: (command.DoGroup children: [ (command.ForEach iter_name: aeol iter_words: [{(DQ )} {(lf)} {(crlf)}] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pfx) op: assign_op.Equal rhs: {(NNO_attr_) (${ Id.VSub_Name attr) (_aeol_) (${ Id.VSub_Name aeol) (_) (${ Id.VSub_Name crlf) } spids: [442] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {(cp)} {(CRLF_mix_LF)} {(${ Id.VSub_Name pfx) (_LF.txt)}) (C {(cp)} {(CRLF_mix_LF)} {(${ Id.VSub_Name pfx) (_CRLF.txt)}) (C {(cp)} {(CRLF_mix_LF)} {(${ Id.VSub_Name pfx) (_CRLF_mix_LF.txt)} ) (C {(cp)} {(CRLF_mix_LF)} {(${ Id.VSub_Name pfx) (_LF_mix_CR.txt)} ) (C {(cp)} {(CRLF_mix_LF)} {(${ Id.VSub_Name pfx) (_CRLF_nul.txt)} ) ] ) ] ) ) ] ) ) ] ) ) ] ) ) (command.ShFunction name: check_warning body: (command.BraceGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(LF_CRLF)}] action: [ (command.Simple words: [{(echo)} {(DQ ('warning: LF will be replaced by CRLF'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:552) fd: -1 arg_word: {(DQ ($ Id.VSub_Number '$2')) (.expect)} ) ] ) ] spids: [543 544 558 -1] ) (case_arm pat_list: [{(CRLF_LF)}] action: [ (command.Simple words: [{(echo)} {(DQ ('warning: CRLF will be replaced by LF'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:570) fd: -1 arg_word: {(DQ ($ Id.VSub_Number '$2')) (.expect)} ) ] ) ] spids: [561 562 576 -1] ) (case_arm pat_list: [{(SQ )}] action: [ (command.Simple redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:583) fd: -1 arg_word: {(DQ ($ Id.VSub_Number '$2')) (.expect)} ) ] ) ] spids: [579 581 589 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.Sentence child: (command.Simple words: [ {(echo)} {(DQ ('Illegal 1')) (Id.Lit_Other ':')} {(DQ ($ Id.VSub_Number '$1'))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:597) fd: -1 arg_word: {(2)} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:609) ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:611) arg_word: {(false)} ) ] spids: [592 593 615 -1] ) ] ) (command.Pipeline children: [ (C {(grep)} {(DQ ('will be replaced by'))} {(DQ ($ Id.VSub_Number '$2'))}) (C {(sed)} {(-e)} { (DQ (s/) (Id.Lit_Other '\\') ('(.*') (Id.Lit_Other '\\') (') in [^ ]*') (Id.Lit_Other '$') (/) (Id.Lit_Other '\\') (1/) ) } ) (command.Simple words: [{(uniq)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:653) fd: -1 arg_word: {(DQ ($ Id.VSub_Number '$2')) (.actual)} ) ] ) ] negated: F ) (C {(test_cmp)} {(DQ ($ Id.VSub_Number '$2')) (.expect)} {(DQ ($ Id.VSub_Number '$2')) (.actual)} ) ] ) ) (command.ShFunction name: commit_check_warn body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:crlf) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [683] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:attr) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [687] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lfname) op: assign_op.Equal rhs: {($ Id.VSub_Number '$3')} spids: [691] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:crlfname) op: assign_op.Equal rhs: {($ Id.VSub_Number '$4')} spids: [695] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lfmixcrlf) op: assign_op.Equal rhs: {($ Id.VSub_Number '$5')} spids: [699] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lfmixcr) op: assign_op.Equal rhs: {($ Id.VSub_Number '$6')} spids: [703] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:crlfnul) op: assign_op.Equal rhs: {($ Id.VSub_Number '$7')} spids: [707] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pfx) op: assign_op.Equal rhs: {(crlf_) (${ Id.VSub_Name crlf) (_attr_) (${ Id.VSub_Name attr)} spids: [711] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {(create_gitattributes)} {(DQ ($ Id.VSub_DollarName '$attr'))}) (command.ForEach iter_name: f iter_words: [{(LF)} {(CRLF)} {(LF_mix_CR)} {(CRLF_mix_LF)} {(LF_nul)} {(CRLF_nul)}] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fname) op: assign_op.Equal rhs: {(${ Id.VSub_Name pfx) (_) ($ Id.VSub_DollarName '$f') (.txt)} spids: [753] ) ] ) (C {(cp)} {($ Id.VSub_DollarName '$f')} {($ Id.VSub_DollarName '$fname')}) (command.Simple words: [ {(git)} {(-c)} {(core.autocrlf) (Id.Lit_Equals '=') ($ Id.VSub_DollarName '$crlf')} {(add)} {($ Id.VSub_DollarName '$fname')} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:785) fd: 2 arg_word: { (DQ (${ Id.VSub_Name pfx) (_) ($ Id.VSub_DollarName '$f') (.err)) } ) ] ) ] ) ] ) ) (C {(git)} {(commit)} {(-m)} {(DQ ('core.autocrlf ') ($ Id.VSub_DollarName '$crlf'))}) (C {(check_warning)} {(DQ ($ Id.VSub_DollarName '$lfname'))} {(${ Id.VSub_Name pfx) (_LF.err)} ) (C {(check_warning)} {(DQ ($ Id.VSub_DollarName '$crlfname'))} {(${ Id.VSub_Name pfx) (_CRLF.err)} ) (C {(check_warning)} {(DQ ($ Id.VSub_DollarName '$lfmixcrlf'))} {(${ Id.VSub_Name pfx) (_CRLF_mix_LF.err)} ) (C {(check_warning)} {(DQ ($ Id.VSub_DollarName '$lfmixcr'))} {(${ Id.VSub_Name pfx) (_LF_mix_CR.err)} ) (C {(check_warning)} {(DQ ($ Id.VSub_DollarName '$crlfnul'))} {(${ Id.VSub_Name pfx) (_CRLF_nul.err)} ) ] ) ] ) ) (command.ShFunction name: commit_chk_wrnNNO body: (command.BraceGroup children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:attr) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [893] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:896) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aeol) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [901] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:904) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:crlf) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [909] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:912) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lfwarn) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [917] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:920) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:crlfwarn) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [925] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:928) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lfmixcrlf) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [933] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:936) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lfmixcr) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [941] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:944) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:crlfnul) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [949] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:952) ) (C {(shift)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pfx) op: assign_op.Equal rhs: {(NNO_attr_) (${ Id.VSub_Name attr) (_aeol_) (${ Id.VSub_Name aeol) (_) (${ Id.VSub_Name crlf) } spids: [957] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(create_gitattributes)} {(DQ ($ Id.VSub_DollarName '$attr'))} {($ Id.VSub_DollarName '$aeol')} ) (command.ForEach iter_name: f iter_words: [{(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)}] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fname) op: assign_op.Equal rhs: {(${ Id.VSub_Name pfx) (_) ($ Id.VSub_DollarName '$f') (.txt)} spids: [1007] ) ] ) (C {(cp)} {($ Id.VSub_DollarName '$f')} {($ Id.VSub_DollarName '$fname')}) (command.Simple words: [{(printf)} {(Z)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:1031) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$fname'))} ) ] ) (command.Simple words: [ {(git)} {(-c)} {(core.autocrlf) (Id.Lit_Equals '=') ($ Id.VSub_DollarName '$crlf')} {(add)} {($ Id.VSub_DollarName '$fname')} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:1051) fd: 2 arg_word: { (DQ (${ Id.VSub_Name pfx) (_) ($ Id.VSub_DollarName '$f') (.err)) } ) ] ) ] ) ] ) ) ] ) (C {(test_expect_success)} { (DQ ('commit NNO files crlf=') ($ Id.VSub_DollarName '$crlf') (' attr=') ($ Id.VSub_DollarName '$attr') (' LF') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1077) (Token id: Id.Lit_Chars val: '\t\tcheck_warning "$lfwarn" ${pfx}_LF.err\n' span_id: 1078 ) (Token id:Id.Lit_Chars val:'\t' span_id:1079) ) } ) (C {(test_expect_success)} { (DQ ('commit NNO files attr=') ($ Id.VSub_DollarName '$attr') (' aeol=') ($ Id.VSub_DollarName '$aeol') (' crlf=') ($ Id.VSub_DollarName '$crlf') (' CRLF') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1096) (Token id: Id.Lit_Chars val: '\t\tcheck_warning "$crlfwarn" ${pfx}_CRLF.err\n' span_id: 1097 ) (Token id:Id.Lit_Chars val:'\t' span_id:1098) ) } ) (C {(test_expect_success)} { (DQ ('commit NNO files attr=') ($ Id.VSub_DollarName '$attr') (' aeol=') ($ Id.VSub_DollarName '$aeol') (' crlf=') ($ Id.VSub_DollarName '$crlf') (' CRLF_mix_LF') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1116) (Token id: Id.Lit_Chars val: '\t\tcheck_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err\n' span_id: 1117 ) (Token id:Id.Lit_Chars val:'\t' span_id:1118) ) } ) (C {(test_expect_success)} { (DQ ('commit NNO files attr=') ($ Id.VSub_DollarName '$attr') (' aeol=') ($ Id.VSub_DollarName '$aeol') (' crlf=') ($ Id.VSub_DollarName '$crlf') (' LF_mix_cr') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1136) (Token id: Id.Lit_Chars val: '\t\tcheck_warning "$lfmixcr" ${pfx}_LF_mix_CR.err\n' span_id: 1137 ) (Token id:Id.Lit_Chars val:'\t' span_id:1138) ) } ) (C {(test_expect_success)} { (DQ ('commit NNO files attr=') ($ Id.VSub_DollarName '$attr') (' aeol=') ($ Id.VSub_DollarName '$aeol') (' crlf=') ($ Id.VSub_DollarName '$crlf') (' CRLF_nul') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1156) (Token id: Id.Lit_Chars val: '\t\tcheck_warning "$crlfnul" ${pfx}_CRLF_nul.err\n' span_id: 1157 ) (Token id:Id.Lit_Chars val:'\t' span_id:1158) ) } ) ] ) ) (command.ShFunction name: stats_ascii body: (command.BraceGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(LF)}] action: [(C {(echo)} {(lf)})] spids: [1181 1182 1190 -1] ) (case_arm pat_list: [{(CRLF)}] action: [(C {(echo)} {(crlf)})] spids: [1193 1194 1202 -1] ) (case_arm pat_list: [{(CRLF_mix_LF)}] action: [(C {(echo)} {(mixed)})] spids: [1205 1206 1214 -1] ) (case_arm pat_list: [{(LF_mix_CR)} {(CRLF_nul)} {(LF_nul)} {(CRLF_mix_CR)}] action: [(C {(echo)} {(DQ (-text))})] spids: [1217 1224 1234 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [(C {(echo)} {(error_invalid)} {($ Id.VSub_Number '$1')})] spids: [1237 1238 1248 -1] ) ] ) ] ) ) (command.ShFunction name: attr_ascii body: (command.BraceGroup children: [ (command.Case to_match: {($ Id.VSub_Number '$1') (Id.Lit_Comma ',') ($ Id.VSub_Number '$2')} arms: [ (case_arm pat_list: [{(-text) (Id.Lit_Comma ',') (Id.Lit_Star '*')}] action: [(C {(echo)} {(DQ (-text))})] spids: [1284 1287 1295 -1] ) (case_arm pat_list: [{(text) (Id.Lit_Comma ',')}] action: [(C {(echo)} {(DQ (text))})] spids: [1298 1300 1308 -1] ) (case_arm pat_list: [{(text) (Id.Lit_Comma ',') (lf)}] action: [(C {(echo)} {(DQ ('text eol=lf'))})] spids: [1311 1314 1322 -1] ) (case_arm pat_list: [{(text) (Id.Lit_Comma ',') (crlf)}] action: [(C {(echo)} {(DQ ('text eol=crlf'))})] spids: [1325 1328 1336 -1] ) (case_arm pat_list: [{(auto) (Id.Lit_Comma ',')}] action: [(C {(echo)} {(DQ ('text=auto'))})] spids: [1339 1341 1349 -1] ) (case_arm pat_list: [{(auto) (Id.Lit_Comma ',') (lf)}] action: [(C {(echo)} {(DQ ('text=auto eol=lf'))})] spids: [1352 1355 1363 -1] ) (case_arm pat_list: [{(auto) (Id.Lit_Comma ',') (crlf)}] action: [(C {(echo)} {(DQ ('text=auto eol=crlf'))})] spids: [1366 1369 1377 -1] ) (case_arm pat_list: [{(lf) (Id.Lit_Comma ',')}] action: [(C {(echo)} {(DQ ('text eol=lf'))})] spids: [1380 1382 1390 -1] ) (case_arm pat_list: [{(crlf) (Id.Lit_Comma ',')}] action: [(C {(echo)} {(DQ ('text eol=crlf'))})] spids: [1393 1395 1403 -1] ) (case_arm pat_list: [{(Id.Lit_Comma ',')}] action: [(C {(echo)} {(DQ )})] spids: [1406 1407 1414 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (C {(echo)} {(invalid_attr)} {(DQ ($ Id.VSub_Number '$1') (',') ($ Id.VSub_Number '$2'))} ) ] spids: [1417 1418 1430 -1] ) ] ) ] ) ) (command.ShFunction name: check_files_in_repo body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:crlf) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1446] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:attr) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [1450] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lfname) op: assign_op.Equal rhs: {($ Id.VSub_Number '$3')} spids: [1454] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:crlfname) op: assign_op.Equal rhs: {($ Id.VSub_Number '$4')} spids: [1458] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lfmixcrlf) op: assign_op.Equal rhs: {($ Id.VSub_Number '$5')} spids: [1462] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lfmixcr) op: assign_op.Equal rhs: {($ Id.VSub_Number '$6')} spids: [1466] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:crlfnul) op: assign_op.Equal rhs: {($ Id.VSub_Number '$7')} spids: [1470] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pfx) op: assign_op.Equal rhs: {(crlf_) (${ Id.VSub_Name crlf) (_attr_) (${ Id.VSub_Name attr) (_)} spids: [1474] ) ] ) (C {(compare_files)} {($ Id.VSub_DollarName '$lfname')} {(${ Id.VSub_Name pfx) (LF.txt)}) (C {(compare_files)} {($ Id.VSub_DollarName '$crlfname')} {(${ Id.VSub_Name pfx) (CRLF.txt)} ) (C {(compare_files)} {($ Id.VSub_DollarName '$lfmixcrlf')} {(${ Id.VSub_Name pfx) (CRLF_mix_LF.txt)} ) (C {(compare_files)} {($ Id.VSub_DollarName '$lfmixcr')} {(${ Id.VSub_Name pfx) (LF_mix_CR.txt)} ) (C {(compare_files)} {($ Id.VSub_DollarName '$crlfnul')} {(${ Id.VSub_Name pfx) (CRLF_nul.txt)} ) ] ) ] ) ) (command.ShFunction name: check_in_repo_NNO body: (command.BraceGroup children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:attr) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1556] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1559) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aeol) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1564] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1567) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:crlf) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1572] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1575) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lfname) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1580] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1583) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:crlfname) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1588] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1591) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lfmixcrlf) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1596] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1599) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lfmixcr) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1604] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1607) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:crlfnul) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1612] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1615) ) (C {(shift)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pfx) op: assign_op.Equal rhs: {(NNO_attr_) (${ Id.VSub_Name attr) (_aeol_) (${ Id.VSub_Name aeol) (_) (${ Id.VSub_Name crlf) } spids: [1620] ) ] ) (C {(test_expect_success)} { (DQ ('compare_files ') ($ Id.VSub_DollarName '$lfname') (' ') (${ Id.VSub_Name pfx) (_LF.txt) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1648) (Token id: Id.Lit_Chars val: '\t\tcompare_files $lfname ${pfx}_LF.txt\n' span_id: 1649 ) (Token id:Id.Lit_Chars val:'\t' span_id:1650) ) } ) (C {(test_expect_success)} { (DQ ('compare_files ') ($ Id.VSub_DollarName '$crlfname') (' ') (${ Id.VSub_Name pfx) (_CRLF.txt) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1667) (Token id: Id.Lit_Chars val: '\t\tcompare_files $crlfname ${pfx}_CRLF.txt\n' span_id: 1668 ) (Token id:Id.Lit_Chars val:'\t' span_id:1669) ) } ) (C {(test_expect_success)} { (DQ ('compare_files ') ($ Id.VSub_DollarName '$lfmixcrlf') (' ') (${ Id.VSub_Name pfx) (_CRLF_mix_LF.txt) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1686) (Token id: Id.Lit_Chars val: '\t\tcompare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt\n' span_id: 1687 ) (Token id:Id.Lit_Chars val:'\t' span_id:1688) ) } ) (C {(test_expect_success)} { (DQ ('compare_files ') ($ Id.VSub_DollarName '$lfmixcr') (' ') (${ Id.VSub_Name pfx) (_LF_mix_CR.txt) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1705) (Token id: Id.Lit_Chars val: '\t\tcompare_files $lfmixcr ${pfx}_LF_mix_CR.txt\n' span_id: 1706 ) (Token id:Id.Lit_Chars val:'\t' span_id:1707) ) } ) (C {(test_expect_success)} { (DQ ('compare_files ') ($ Id.VSub_DollarName '$crlfnul') (' ') (${ Id.VSub_Name pfx) (_CRLF_nul.txt) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1724) (Token id: Id.Lit_Chars val: '\t\tcompare_files $crlfnul ${pfx}_CRLF_nul.txt\n' span_id: 1725 ) (Token id:Id.Lit_Chars val:'\t' span_id:1726) ) } ) ] ) ) (command.ShFunction name: checkout_files body: (command.BraceGroup children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:attr) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1740] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1743) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ident) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1748] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1750) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aeol) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1755] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1758) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:crlf) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1763] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1766) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ceol) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1771] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1774) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lfname) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1779] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1782) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:crlfname) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1787] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1790) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lfmixcrlf) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1795] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1798) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lfmixcr) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1803] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1806) ) (C {(shift)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:crlfnul) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1811] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1814) ) (C {(shift)}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {(create_gitattributes)} {(DQ ($ Id.VSub_DollarName '$attr'))} {($ Id.VSub_DollarName '$ident')} {($ Id.VSub_DollarName '$aeol')} ) (C {(git)} {(config)} {(core.autocrlf)} {($ Id.VSub_DollarName '$crlf')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pfx) op: assign_op.Equal rhs: {(eol_) (${ Id.VSub_Name ceol) (_crlf_) (${ Id.VSub_Name crlf) (_attr_) (${ Id.VSub_Name attr) (_) } spids: [1843] ) ] ) (command.ForEach iter_name: f iter_words: [{(LF)} {(CRLF)} {(LF_mix_CR)} {(CRLF_mix_LF)} {(LF_nul)}] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(rm)} {(crlf_false_attr__) ($ Id.VSub_DollarName '$f') (.txt)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {(-z)} {(DQ ($ Id.VSub_DollarName '$ceol'))}) terminator: (Token id:Id.Op_Semi val:';' span_id:1899) ) ] action: [ (C {(git)} {(checkout)} {(crlf_false_attr__) ($ Id.VSub_DollarName '$f') (.txt)} ) ] spids: [1890 1901] ) ] else_action: [ (C {(git)} {(-c)} {(core.eol) (Id.Lit_Equals '=') ($ Id.VSub_DollarName '$ceol')} {(checkout)} {(crlf_false_attr__) ($ Id.VSub_DollarName '$f') (.txt)} ) ] ) ] ) ] ) ) ] ) (C {(test_expect_success)} { (DQ ('ls-files --eol attr=') ($ Id.VSub_DollarName '$attr') (' ') ($ Id.VSub_DollarName '$ident') (' aeol=') ($ Id.VSub_DollarName '$aeol') (' core.autocrlf=') ($ Id.VSub_DollarName '$crlf') (' core.eol=') ($ Id.VSub_DollarName '$ceol') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1954) (Token id: Id.Lit_Chars val: '\t\ttest_when_finished "rm expect actual" &&\n' span_id: 1955 ) (Token id:Id.Lit_Chars val:'\t\tsort <<-EOF >expect &&\n' span_id:1956) (Token id: Id.Lit_Chars val: '\t\ti/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt\n' span_id: 1957 ) (Token id: Id.Lit_Chars val: '\t\ti/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt\n' span_id: 1958 ) (Token id: Id.Lit_Chars val: '\t\ti/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt\n' span_id: 1959 ) (Token id: Id.Lit_Chars val: '\t\ti/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt\n' span_id: 1960 ) (Token id: Id.Lit_Chars val: '\t\ti/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt\n' span_id: 1961 ) (Token id: Id.Lit_Chars val: '\t\ti/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt\n' span_id: 1962 ) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:1963) (Token id: Id.Lit_Chars val: '\t\tgit ls-files --eol crlf_false_attr__* |\n' span_id: 1964 ) (Token id:Id.Lit_Chars val:'\t\tsed -e "s/\t/ /g" -e "s/ */ /g" |\n' span_id:1965) (Token id:Id.Lit_Chars val:'\t\tsort >actual &&\n' span_id:1966) (Token id:Id.Lit_Chars val:'\t\ttest_cmp expect actual\n' span_id:1967) (Token id:Id.Lit_Chars val:'\t' span_id:1968) ) } ) (C {(test_expect_success)} { (DQ ('checkout attr=') ($ Id.VSub_DollarName '$attr') (' ') ($ Id.VSub_DollarName '$ident') (' aeol=') ($ Id.VSub_DollarName '$aeol') (' core.autocrlf=') ($ Id.VSub_DollarName '$crlf') (' core.eol=') ($ Id.VSub_DollarName '$ceol') (' file=LF') ) } { (DQ ('\n') ('\t\tcompare_ws_file ') ($ Id.VSub_DollarName '$pfx') (' ') ($ Id.VSub_DollarName '$lfname') (' crlf_false_attr__LF.txt\n') ('\t') ) } ) (C {(test_expect_success)} { (DQ ('checkout attr=') ($ Id.VSub_DollarName '$attr') (' ') ($ Id.VSub_DollarName '$ident') (' aeol=') ($ Id.VSub_DollarName '$aeol') (' core.autocrlf=') ($ Id.VSub_DollarName '$crlf') (' core.eol=') ($ Id.VSub_DollarName '$ceol') (' file=CRLF') ) } { (DQ ('\n') ('\t\tcompare_ws_file ') ($ Id.VSub_DollarName '$pfx') (' ') ($ Id.VSub_DollarName '$crlfname') (' crlf_false_attr__CRLF.txt\n') ('\t') ) } ) (C {(test_expect_success)} { (DQ ('checkout attr=') ($ Id.VSub_DollarName '$attr') (' ') ($ Id.VSub_DollarName '$ident') (' aeol=') ($ Id.VSub_DollarName '$aeol') (' core.autocrlf=') ($ Id.VSub_DollarName '$crlf') (' core.eol=') ($ Id.VSub_DollarName '$ceol') (' file=CRLF_mix_LF') ) } { (DQ ('\n') ('\t\tcompare_ws_file ') ($ Id.VSub_DollarName '$pfx') (' ') ($ Id.VSub_DollarName '$lfmixcrlf') (' crlf_false_attr__CRLF_mix_LF.txt\n') ('\t') ) } ) (C {(test_expect_success)} { (DQ ('checkout attr=') ($ Id.VSub_DollarName '$attr') (' ') ($ Id.VSub_DollarName '$ident') (' aeol=') ($ Id.VSub_DollarName '$aeol') (' core.autocrlf=') ($ Id.VSub_DollarName '$crlf') (' core.eol=') ($ Id.VSub_DollarName '$ceol') (' file=LF_mix_CR') ) } { (DQ ('\n') ('\t\tcompare_ws_file ') ($ Id.VSub_DollarName '$pfx') (' ') ($ Id.VSub_DollarName '$lfmixcr') (' crlf_false_attr__LF_mix_CR.txt\n') ('\t') ) } ) (C {(test_expect_success)} { (DQ ('checkout attr=') ($ Id.VSub_DollarName '$attr') (' ') ($ Id.VSub_DollarName '$ident') (' aeol=') ($ Id.VSub_DollarName '$aeol') (' core.autocrlf=') ($ Id.VSub_DollarName '$crlf') (' core.eol=') ($ Id.VSub_DollarName '$ceol') (' file=LF_nul') ) } { (DQ ('\n') ('\t\tcompare_ws_file ') ($ Id.VSub_DollarName '$pfx') (' ') ($ Id.VSub_DollarName '$crlfnul') (' crlf_false_attr__LF_nul.txt\n') ('\t') ) } ) ] ) ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ls-files --eol -o Text/Binary' span_id:2118))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2122) (Token id: Id.Lit_Chars val: '\ttest_when_finished "rm expect actual TeBi_*" &&\n' span_id: 2123 ) (Token id:Id.Lit_Chars val:'\tSTRT=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA &&\n' span_id:2124) (Token id:Id.Lit_Chars val:'\tSTR=$STRT$STRT$STRT$STRT &&\n' span_id:2125) (Token id:Id.Lit_Chars val:'\tprintf "${STR}BBB\\001" >TeBi_127_S &&\n' span_id:2126) (Token id: Id.Lit_Chars val: '\tprintf "${STR}BBBB\\001">TeBi_128_S &&\n' span_id: 2127 ) (Token id:Id.Lit_Chars val:'\tprintf "${STR}BBB\\032" >TeBi_127_E &&\n' span_id:2128) (Token id: Id.Lit_Chars val: '\tprintf "\\032${STR}BBB" >TeBi_E_127 &&\n' span_id: 2129 ) (Token id:Id.Lit_Chars val:'\tprintf "${STR}BBBB\\000">TeBi_128_N &&\n' span_id:2130) (Token id: Id.Lit_Chars val: '\tprintf "${STR}BBB\\012">TeBi_128_L &&\n' span_id: 2131 ) (Token id:Id.Lit_Chars val:'\tprintf "${STR}BBB\\015">TeBi_127_C &&\n' span_id:2132) (Token id: Id.Lit_Chars val: '\tprintf "${STR}BB\\015\\012" >TeBi_126_CL &&\n' span_id: 2133 ) (Token id:Id.Lit_Chars val:'\tprintf "${STR}BB\\015\\012\\015" >TeBi_126_CLC &&\n' span_id:2134) (Token id:Id.Lit_Chars val:'\tsort <<-\\EOF >expect &&\n' span_id:2135) (Token id:Id.Lit_Chars val:'\ti/ w/-text TeBi_127_S\n' span_id:2136) (Token id:Id.Lit_Chars val:'\ti/ w/none TeBi_128_S\n' span_id:2137) (Token id:Id.Lit_Chars val:'\ti/ w/none TeBi_127_E\n' span_id:2138) (Token id:Id.Lit_Chars val:'\ti/ w/-text TeBi_E_127\n' span_id:2139) (Token id:Id.Lit_Chars val:'\ti/ w/-text TeBi_128_N\n' span_id:2140) (Token id:Id.Lit_Chars val:'\ti/ w/lf TeBi_128_L\n' span_id:2141) (Token id:Id.Lit_Chars val:'\ti/ w/-text TeBi_127_C\n' span_id:2142) (Token id:Id.Lit_Chars val:'\ti/ w/crlf TeBi_126_CL\n' span_id:2143) (Token id:Id.Lit_Chars val:'\ti/ w/-text TeBi_126_CLC\n' span_id:2144) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:2145) (Token id:Id.Lit_Chars val:'\tgit ls-files --eol -o |\n' span_id:2146) (Token id:Id.Lit_Chars val:'\tsed -n -e "/TeBi_/{s!attr/[\t]*!!g\n' span_id:2147) (Token id:Id.Lit_Chars val:'\ts!\t! !g\n' span_id:2148) (Token id:Id.Lit_Chars val:'\ts! *! !g\n' span_id:2149) (Token id:Id.Lit_Chars val:'\tp\n' span_id:2150) (Token id:Id.Lit_Chars val:'\t}" | sort >actual &&\n' span_id:2151) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:2152) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup master' span_id:2159))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2163) (Token id:Id.Lit_Chars val:'\techo >.gitattributes &&\n' span_id:2164) (Token id:Id.Lit_Chars val:'\tgit checkout -b master &&\n' span_id:2165) (Token id:Id.Lit_Chars val:'\tgit add .gitattributes &&\n' span_id:2166) (Token id:Id.Lit_Chars val:'\tgit commit -m "add .gitattributes" "" &&\n' span_id:2167) (Token id: Id.Lit_Chars val: '\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\nLINEONE\\nLINETWO\\nLINETHREE" >LF &&\n' span_id: 2168 ) (Token id: Id.Lit_Chars val: '\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\r\\nLINEONE\\r\\nLINETWO\\r\\nLINETHREE" >CRLF &&\n' span_id: 2169 ) (Token id: Id.Lit_Chars val: '\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\nLINEONE\\r\\nLINETWO\\nLINETHREE" >CRLF_mix_LF &&\n' span_id: 2170 ) (Token id: Id.Lit_Chars val: '\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\nLINEONE\\nLINETWO\\rLINETHREE" >LF_mix_CR &&\n' span_id: 2171 ) (Token id: Id.Lit_Chars val: '\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\r\\nLINEONE\\r\\nLINETWO\\rLINETHREE" >CRLF_mix_CR &&\n' span_id: 2172 ) (Token id: Id.Lit_Chars val: '\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\r\\nLINEONEQ\\r\\nLINETWO\\r\\nLINETHREE" | q_to_nul >CRLF_nul &&\n' span_id: 2173 ) (Token id: Id.Lit_Chars val: '\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\nLINEONEQ\\nLINETWO\\nLINETHREE" | q_to_nul >LF_nul &&\n' span_id: 2174 ) (Token id: Id.Lit_Chars val: '\tcreate_NNO_files CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF &&\n' span_id: 2175 ) (Token id:Id.Lit_Chars val:'\tgit -c core.autocrlf=false add NNO_*.txt &&\n' span_id:2176) (Token id: Id.Lit_Chars val: '\tgit commit -m "mixed line endings" &&\n' span_id: 2177 ) (Token id:Id.Lit_Chars val:'\ttest_tick\n' span_id:2178) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:warn_LF_CRLF) op: assign_op.Equal rhs: {(DQ ('LF will be replaced by CRLF'))} spids: [2184] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:warn_CRLF_LF) op: assign_op.Equal rhs: {(DQ ('CRLF will be replaced by LF'))} spids: [2189] ) ] ) (command.If arms: [ (if_arm cond: [(C {(test_have_prereq)} {(NATIVE_CRLF)})] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WILC) op: assign_op.Equal rhs: {(LF_CRLF)} spids: [2213] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WICL) op: assign_op.Equal rhs: (word.Empty) spids: [2217] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WAMIX) op: assign_op.Equal rhs: {(LF_CRLF)} spids: [2220] ) ] ) ] spids: [2204 2210] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WILC) op: assign_op.Equal rhs: (word.Empty) spids: [2226] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WICL) op: assign_op.Equal rhs: {(CRLF_LF)} spids: [2229] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WAMIX) op: assign_op.Equal rhs: {(CRLF_LF)} spids: [2233] ) ] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'commit files empty attr' span_id:2245))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2249) (Token id: Id.Lit_Chars val: '\tcommit_check_warn false "" "" "" "" "" "" &&\n' span_id: 2250 ) (Token id: Id.Lit_Chars val: '\tcommit_check_warn true "" "LF_CRLF" "" "LF_CRLF" "" "" &&\n' span_id: 2251 ) (Token id: Id.Lit_Chars val: '\tcommit_check_warn input "" "" "CRLF_LF" "CRLF_LF" "" ""\n' span_id: 2252 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'commit files attr=auto' span_id:2259))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2263) (Token id: Id.Lit_Chars val: '\tcommit_check_warn false "auto" "$WILC" "$WICL" "$WAMIX" "" "" &&\n' span_id: 2264 ) (Token id: Id.Lit_Chars val: '\tcommit_check_warn true "auto" "LF_CRLF" "" "LF_CRLF" "" "" &&\n' span_id: 2265 ) (Token id: Id.Lit_Chars val: '\tcommit_check_warn input "auto" "" "CRLF_LF" "CRLF_LF" "" ""\n' span_id: 2266 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'commit files attr=text' span_id:2273))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2277) (Token id: Id.Lit_Chars val: '\tcommit_check_warn false "text" "$WILC" "$WICL" "$WAMIX" "$WILC" "$WICL" &&\n' span_id: 2278 ) (Token id: Id.Lit_Chars val: '\tcommit_check_warn true "text" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "" &&\n' span_id: 2279 ) (Token id: Id.Lit_Chars val: '\tcommit_check_warn input "text" "" "CRLF_LF" "CRLF_LF" "" "CRLF_LF"\n' span_id: 2280 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'commit files attr=-text' span_id:2287))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2291) (Token id: Id.Lit_Chars val: '\tcommit_check_warn false "-text" "" "" "" "" "" &&\n' span_id: 2292 ) (Token id: Id.Lit_Chars val: '\tcommit_check_warn true "-text" "" "" "" "" "" &&\n' span_id: 2293 ) (Token id: Id.Lit_Chars val: '\tcommit_check_warn input "-text" "" "" "" "" ""\n' span_id: 2294 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'commit files attr=lf' span_id:2301))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2305) (Token id: Id.Lit_Chars val: '\tcommit_check_warn false "lf" "" "CRLF_LF" "CRLF_LF" "" "CRLF_LF" &&\n' span_id: 2306 ) (Token id: Id.Lit_Chars val: '\tcommit_check_warn true "lf" "" "CRLF_LF" "CRLF_LF" "" "CRLF_LF" &&\n' span_id: 2307 ) (Token id: Id.Lit_Chars val: '\tcommit_check_warn input "lf" "" "CRLF_LF" "CRLF_LF" "" "CRLF_LF"\n' span_id: 2308 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'commit files attr=crlf' span_id:2315))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2319) (Token id: Id.Lit_Chars val: '\tcommit_check_warn false "crlf" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "" &&\n' span_id: 2320 ) (Token id: Id.Lit_Chars val: '\tcommit_check_warn true "crlf" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "" &&\n' span_id: 2321 ) (Token id: Id.Lit_Chars val: '\tcommit_check_warn input "crlf" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" ""\n' span_id: 2322 ) ) } ) (C {(commit_chk_wrnNNO)} {(DQ )} {(DQ )} {(false)} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )}) (C {(commit_chk_wrnNNO)} {(DQ )} {(DQ )} {(true)} {(LF_CRLF)} {(DQ )} {(DQ )} {(DQ )} {(DQ )}) (C {(commit_chk_wrnNNO)} {(DQ )} {(DQ )} {(input)} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )}) (C {(commit_chk_wrnNNO)} {(DQ (auto))} {(DQ )} {(false)} {(DQ ($ Id.VSub_DollarName '$WILC'))} {(DQ )} {(DQ )} {(DQ )} {(DQ )}) (C {(commit_chk_wrnNNO)} {(DQ (auto))} {(DQ )} {(true)} {(LF_CRLF)} {(DQ )} {(DQ )} {(DQ )} {(DQ )}) (C {(commit_chk_wrnNNO)} {(DQ (auto))} {(DQ )} {(input)} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )}) (command.ForEach iter_name: crlf iter_words: [{(true)} {(false)} {(input)}] do_arg_iter: F body: (command.DoGroup children: [ (C {(commit_chk_wrnNNO)} {(-text)} {(DQ )} {($ Id.VSub_DollarName '$crlf')} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )}) (C {(commit_chk_wrnNNO)} {(-text)} {(lf)} {($ Id.VSub_DollarName '$crlf')} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )}) (C {(commit_chk_wrnNNO)} {(-text)} {(crlf)} {($ Id.VSub_DollarName '$crlf')} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )}) (C {(commit_chk_wrnNNO)} {(DQ )} {(lf)} {($ Id.VSub_DollarName '$crlf')} {(DQ )} {(CRLF_LF)} {(CRLF_LF)} {(DQ )} {(CRLF_LF)} ) (C {(commit_chk_wrnNNO)} {(DQ )} {(crlf)} {($ Id.VSub_DollarName '$crlf')} {(LF_CRLF)} {(DQ )} {(LF_CRLF)} {(LF_CRLF)} {(DQ )} ) (C {(commit_chk_wrnNNO)} {(auto)} {(lf)} {($ Id.VSub_DollarName '$crlf')} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )}) (C {(commit_chk_wrnNNO)} {(auto)} {(crlf)} {($ Id.VSub_DollarName '$crlf')} {(LF_CRLF)} {(DQ )} {(DQ )} {(DQ )} {(DQ )}) (C {(commit_chk_wrnNNO)} {(text)} {(lf)} {($ Id.VSub_DollarName '$crlf')} {(DQ )} {(CRLF_LF)} {(CRLF_LF)} {(DQ )} {(CRLF_LF)} ) (C {(commit_chk_wrnNNO)} {(text)} {(crlf)} {($ Id.VSub_DollarName '$crlf')} {(LF_CRLF)} {(DQ )} {(LF_CRLF)} {(LF_CRLF)} {(DQ )} ) ] ) ) (C {(commit_chk_wrnNNO)} {(DQ (text))} {(DQ )} {(false)} {(DQ ($ Id.VSub_DollarName '$WILC'))} {(DQ ($ Id.VSub_DollarName '$WICL'))} {(DQ ($ Id.VSub_DollarName '$WAMIX'))} {(DQ ($ Id.VSub_DollarName '$WILC'))} {(DQ ($ Id.VSub_DollarName '$WICL'))} ) (C {(commit_chk_wrnNNO)} {(DQ (text))} {(DQ )} {(true)} {(LF_CRLF)} {(DQ )} {(LF_CRLF)} {(LF_CRLF)} {(DQ )}) (C {(commit_chk_wrnNNO)} {(DQ (text))} {(DQ )} {(input)} {(DQ )} {(CRLF_LF)} {(CRLF_LF)} {(DQ )} {(CRLF_LF)} ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'commit NNO and cleanup' span_id:2786))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2790) (Token id: Id.Lit_Chars val: '\tgit commit -m "commit files on top of NNO" &&\n' span_id: 2791 ) (Token id:Id.Lit_Chars val:'\trm -f *.txt &&\n' span_id:2792) (Token id: Id.Lit_Chars val: '\tgit -c core.autocrlf=false reset --hard\n' span_id: 2793 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'commit empty gitattribues' span_id:2800))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2804) (Token id: Id.Lit_Chars val: '\tcheck_files_in_repo false "" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul &&\n' span_id: 2805 ) (Token id: Id.Lit_Chars val: '\tcheck_files_in_repo true "" LF LF LF LF_mix_CR CRLF_nul &&\n' span_id: 2806 ) (Token id: Id.Lit_Chars val: '\tcheck_files_in_repo input "" LF LF LF LF_mix_CR CRLF_nul\n' span_id: 2807 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'commit text=auto' span_id:2814))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2818) (Token id: Id.Lit_Chars val: '\tcheck_files_in_repo false "auto" LF LF LF LF_mix_CR CRLF_nul &&\n' span_id: 2819 ) (Token id: Id.Lit_Chars val: '\tcheck_files_in_repo true "auto" LF LF LF LF_mix_CR CRLF_nul &&\n' span_id: 2820 ) (Token id: Id.Lit_Chars val: '\tcheck_files_in_repo input "auto" LF LF LF LF_mix_CR CRLF_nul\n' span_id: 2821 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'commit text' span_id:2828))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2832) (Token id: Id.Lit_Chars val: '\tcheck_files_in_repo false "text" LF LF LF LF_mix_CR LF_nul &&\n' span_id: 2833 ) (Token id: Id.Lit_Chars val: '\tcheck_files_in_repo true "text" LF LF LF LF_mix_CR LF_nul &&\n' span_id: 2834 ) (Token id: Id.Lit_Chars val: '\tcheck_files_in_repo input "text" LF LF LF LF_mix_CR LF_nul\n' span_id: 2835 ) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'commit -text' span_id:2842))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:2846) (Token id: Id.Lit_Chars val: '\tcheck_files_in_repo false "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul &&\n' span_id: 2847 ) (Token id: Id.Lit_Chars val: '\tcheck_files_in_repo true "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul &&\n' span_id: 2848 ) (Token id: Id.Lit_Chars val: '\tcheck_files_in_repo input "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul\n' span_id: 2849 ) ) } ) (command.ForEach iter_name: crlf iter_words: [{(true)} {(false)} {(input)}] do_arg_iter: F body: (command.DoGroup children: [ (C {(check_in_repo_NNO)} {(DQ )} {(DQ )} {($ Id.VSub_DollarName '$crlf')} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)} ) (C {(check_in_repo_NNO)} {(-text)} {(DQ )} {($ Id.VSub_DollarName '$crlf')} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)} ) (C {(check_in_repo_NNO)} {(-text)} {(lf)} {($ Id.VSub_DollarName '$crlf')} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)} ) (C {(check_in_repo_NNO)} {(-text)} {(crlf)} {($ Id.VSub_DollarName '$crlf')} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)} ) (C {(check_in_repo_NNO)} {(auto)} {(DQ )} {($ Id.VSub_DollarName '$crlf')} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)} ) (C {(check_in_repo_NNO)} {(auto)} {(lf)} {($ Id.VSub_DollarName '$crlf')} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)} ) (C {(check_in_repo_NNO)} {(auto)} {(crlf)} {($ Id.VSub_DollarName '$crlf')} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)} ) (C {(check_in_repo_NNO)} {(text)} {(DQ )} {($ Id.VSub_DollarName '$crlf')} {(LF)} {(LF)} {(LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(check_in_repo_NNO)} {(text)} {(lf)} {($ Id.VSub_DollarName '$crlf')} {(LF)} {(LF)} {(LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(check_in_repo_NNO)} {(text)} {(crlf)} {($ Id.VSub_DollarName '$crlf')} {(LF)} {(LF)} {(LF)} {(LF_mix_CR)} {(LF_nul)} ) ] ) ) (command.If arms: [ (if_arm cond: [(C {(test_have_prereq)} {(NATIVE_CRLF)})] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MIX_CRLF_LF) op: assign_op.Equal rhs: {(CRLF)} spids: [3125] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MIX_LF_CR) op: assign_op.Equal rhs: {(CRLF_mix_CR)} spids: [3128] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NL) op: assign_op.Equal rhs: {(CRLF)} spids: [3131] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LFNUL) op: assign_op.Equal rhs: {(CRLF_nul)} spids: [3134] ) ] ) ] spids: [3117 3123] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MIX_CRLF_LF) op: assign_op.Equal rhs: {(CRLF_mix_LF)} spids: [3139] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MIX_LF_CR) op: assign_op.Equal rhs: {(LF_mix_CR)} spids: [3142] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NL) op: assign_op.Equal rhs: {(LF)} spids: [3145] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LFNUL) op: assign_op.Equal rhs: {(LF_nul)} spids: [3148] ) ] ) ] ) (C {(export)} {(CRLF_MIX_LF_CR)} {(MIX)} {(NL)}) (command.ForEach iter_name: id iter_words: [{(DQ )} {(ident)}] do_arg_iter: F body: (command.DoGroup children: [ (command.ForEach iter_name: ceol iter_words: [{(lf)} {(crlf)} {(native)}] do_arg_iter: F body: (command.DoGroup children: [ (command.ForEach iter_name: crlf iter_words: [{(true)} {(false)} {(input)}] do_arg_iter: F body: (command.DoGroup children: [ (C {(checkout_files)} {(-text)} {(DQ ($ Id.VSub_DollarName '$id'))} {(DQ )} {(DQ ($ Id.VSub_DollarName '$crlf'))} {(DQ ($ Id.VSub_DollarName '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(checkout_files)} {(-text)} {(DQ ($ Id.VSub_DollarName '$id'))} {(DQ (lf))} {(DQ ($ Id.VSub_DollarName '$crlf'))} {(DQ ($ Id.VSub_DollarName '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(checkout_files)} {(-text)} {(DQ ($ Id.VSub_DollarName '$id'))} {(DQ (crlf))} {(DQ ($ Id.VSub_DollarName '$crlf'))} {(DQ ($ Id.VSub_DollarName '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(checkout_files)} {(text)} {(DQ ($ Id.VSub_DollarName '$id'))} {(DQ (lf))} {(DQ ($ Id.VSub_DollarName '$crlf'))} {(DQ ($ Id.VSub_DollarName '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(checkout_files)} {(text)} {(DQ ($ Id.VSub_DollarName '$id'))} {(DQ (crlf))} {(DQ ($ Id.VSub_DollarName '$crlf'))} {(DQ ($ Id.VSub_DollarName '$ceol'))} {(CRLF)} {(CRLF)} {(CRLF)} {(CRLF_mix_CR)} {(CRLF_nul)} ) (C {(checkout_files)} {(auto)} {(DQ ($ Id.VSub_DollarName '$id'))} {(DQ (lf))} {(DQ ($ Id.VSub_DollarName '$crlf'))} {(DQ ($ Id.VSub_DollarName '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(checkout_files)} {(auto)} {(DQ ($ Id.VSub_DollarName '$id'))} {(DQ (crlf))} {(DQ ($ Id.VSub_DollarName '$crlf'))} {(DQ ($ Id.VSub_DollarName '$ceol'))} {(CRLF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) ] ) ) (C {(checkout_files)} {(DQ )} {(DQ ($ Id.VSub_DollarName '$id'))} {(DQ )} {(false)} {(DQ ($ Id.VSub_DollarName '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(checkout_files)} {(DQ )} {(DQ ($ Id.VSub_DollarName '$id'))} {(DQ )} {(true)} {(DQ ($ Id.VSub_DollarName '$ceol'))} {(CRLF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(checkout_files)} {(auto)} {(DQ ($ Id.VSub_DollarName '$id'))} {(DQ )} {(true)} {(DQ ($ Id.VSub_DollarName '$ceol'))} {(CRLF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(checkout_files)} {(text)} {(DQ ($ Id.VSub_DollarName '$id'))} {(DQ )} {(true)} {(DQ ($ Id.VSub_DollarName '$ceol'))} {(CRLF)} {(CRLF)} {(CRLF)} {(CRLF_mix_CR)} {(CRLF_nul)} ) (C {(checkout_files)} {(text)} {(DQ ($ Id.VSub_DollarName '$id'))} {(DQ )} {(input)} {(DQ ($ Id.VSub_DollarName '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(checkout_files)} {(auto)} {(DQ ($ Id.VSub_DollarName '$id'))} {(DQ )} {(input)} {(DQ ($ Id.VSub_DollarName '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) ] ) ) (C {(checkout_files)} {(text)} {(DQ ($ Id.VSub_DollarName '$id'))} {(DQ )} {(false)} {(crlf)} {(CRLF)} {(CRLF)} {(CRLF)} {(CRLF_mix_CR)} {(CRLF_nul)} ) (C {(checkout_files)} {(text)} {(DQ ($ Id.VSub_DollarName '$id'))} {(DQ )} {(false)} {(lf)} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(checkout_files)} {(text)} {(DQ ($ Id.VSub_DollarName '$id'))} {(DQ )} {(false)} {(DQ )} {($ Id.VSub_DollarName '$NL')} {(CRLF)} {($ Id.VSub_DollarName '$MIX_CRLF_LF')} {($ Id.VSub_DollarName '$MIX_LF_CR')} {($ Id.VSub_DollarName '$LFNUL')} ) (C {(checkout_files)} {(text)} {(DQ ($ Id.VSub_DollarName '$id'))} {(DQ )} {(false)} {(native)} {($ Id.VSub_DollarName '$NL')} {(CRLF)} {($ Id.VSub_DollarName '$MIX_CRLF_LF')} {($ Id.VSub_DollarName '$MIX_LF_CR')} {($ Id.VSub_DollarName '$LFNUL')} ) (C {(checkout_files)} {(auto)} {(DQ ($ Id.VSub_DollarName '$id'))} {(DQ )} {(false)} {(DQ )} {($ Id.VSub_DollarName '$NL')} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(checkout_files)} {(auto)} {(DQ ($ Id.VSub_DollarName '$id'))} {(DQ )} {(false)} {(native)} {($ Id.VSub_DollarName '$NL')} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) ] ) ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'ls-files --eol -d -z' span_id:3818))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:3822) (Token id: Id.Lit_Chars val: '\trm crlf_false_attr__CRLF.txt crlf_false_attr__CRLF_mix_LF.txt crlf_false_attr__LF.txt .gitattributes &&\n' span_id: 3823 ) (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:3824) (Token id: Id.Lit_Chars val: '\ti/crlf w/ crlf_false_attr__CRLF.txt\n' span_id: 3825 ) (Token id:Id.Lit_Chars val:'\ti/lf w/ .gitattributes\n' span_id:3826) (Token id:Id.Lit_Chars val:'\ti/lf w/ crlf_false_attr__LF.txt\n' span_id:3827) (Token id:Id.Lit_Chars val:'\ti/mixed w/ crlf_false_attr__CRLF_mix_LF.txt\n' span_id:3828) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:3829) (Token id:Id.Lit_Chars val:'\tgit ls-files --eol -d |\n' span_id:3830) (Token id: Id.Lit_Chars val: '\tsed -e "s!attr/[^\t]*!!g" -e "s/\t/ /g" -e "s/ */ /g" |\n' span_id: 3831 ) (Token id:Id.Lit_Chars val:'\tsort >actual &&\n' span_id:3832) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:3833) ) } ) (C {(test_done)}) ] )