(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <'CRLF conversion all combinations'>)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (If arms: [ (if_arm cond: [(Pipeline children:[(C {(test_have_prereq)} {(EXPENSIVE)})] negated:True)] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:skip_all) op: Equal rhs: {(DQ ('EXPENSIVE not set'))} spids: [26] ) ] spids: [26] ) (C {(test_done)}) ] spids: [16777215 23] ) ] spids: [16777215 34] ) (FuncDef name: compare_files body: (BraceGroup children: [ (AndOr children: [ (SimpleCommand words: [{(tr)} {(SQ <'\\015\\000'>)} {(QN)}] redirects: [ (Redir op_id: Redir_Less fd: 16777215 arg_word: {(DQ ($ VSub_Number '$1'))} spids: [53] ) (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Number '$1')) (.expect)} spids: [58] ) ] ) (AndOr children: [ (Pipeline children: [ (SimpleCommand words: [{(tr)} {(SQ <'\\015\\000'>)} {(QN)}] redirects: [ (Redir op_id: Redir_Less fd: 16777215 arg_word: {(DQ ($ VSub_Number '$2'))} spids: [75] ) ] ) (SimpleCommand words: [{(tr)} {(-d)} {(SQ <Z>)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Number '$2')) (.actual)} spids: [90] ) ] ) ] negated: False ) (AndOr children: [ (C {(test_cmp)} {(DQ ($ VSub_Number '$1')) (.expect)} {(DQ ($ VSub_Number '$2')) (.actual)} ) (C {(rm)} {(DQ ($ VSub_Number '$1')) (.expect)} {(DQ ($ VSub_Number '$2')) (.actual)} ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] spids: [42] ) spids: [37 41] ) (FuncDef name: compare_ws_file body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pfx) op: Equal rhs: {($ VSub_Number '$1')} spids: [137] ) ] spids: [137] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:exp) op: Equal rhs: {($ VSub_Number '$2') (.expect)} spids: [141] ) ] spids: [141] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:act) op: Equal rhs: {($ VSub_Name '$pfx') (.actual.) ($ VSub_Number '$3')} spids: [146] ) ] spids: [146] ) (AndOr children: [ (SimpleCommand words: [{(tr)} {(SQ <'\\015\\000abcdef0123456789'>)} {(QN00000000000000000)}] redirects: [ (Redir op_id: Redir_Less fd: 16777215 arg_word: {(DQ ($ VSub_Number '$2'))} spids: [160] ) (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$exp'))} spids: [165] ) ] ) (AndOr children: [ (SimpleCommand words: [{(tr)} {(SQ <'\\015\\000abcdef0123456789'>)} {(QN00000000000000000)}] redirects: [ (Redir op_id: Redir_Less fd: 16777215 arg_word: {(DQ ($ VSub_Number '$3'))} spids: [181] ) (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$act'))} spids: [186] ) ] ) (AndOr children: [ (C {(test_cmp)} {(DQ ($ VSub_Name '$exp'))} {(DQ ($ VSub_Name '$act'))}) (C {(rm)} {(DQ ($ VSub_Name '$exp'))} {(DQ ($ VSub_Name '$act'))}) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] spids: [134] ) spids: [129 133] ) (FuncDef name: create_gitattributes body: (BraceGroup children: [ (BraceGroup children: [ (While cond: [(C {(test)} {(DQ ($ VSub_Pound '$#'))} {(KW_Bang '!') (Lit_Other '=')} {(0)})] body: (DoGroup children: [ (AndOr children: [ (Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(auto)}] action: [(C {(echo)} {(SQ <'*.txt text=auto'>)})] spids: [257 258 266 16777215] ) (case_arm pat_list: [{(ident)}] action: [(C {(echo)} {(SQ <'*.txt ident'>)})] spids: [269 270 278 16777215] ) (case_arm pat_list: [{(text)}] action: [(C {(echo)} {(SQ <'*.txt text'>)})] spids: [281 282 290 16777215] ) (case_arm pat_list: [{(-text)}] action: [(C {(echo)} {(SQ <'*.txt -text'>)})] spids: [293 294 302 16777215] ) (case_arm pat_list: [{(crlf)}] action: [(C {(echo)} {(SQ <'*.txt eol=crlf'>)})] spids: [305 306 314 16777215] ) (case_arm pat_list: [{(lf)}] action: [(C {(echo)} {(SQ <'*.txt eol=lf'>)})] spids: [317 318 326 16777215] ) (case_arm pat_list: [{(DQ )}] spids: [16777215 331 333 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (SimpleCommand words: [ {(echo)} {(invalid)} {(attribute) (Lit_Other ':')} {(DQ ($ VSub_Number '$1'))} ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 16777215 arg_word: {(2)} spids: [342] ) ] ) (C {(exit)} {(1)}) ] spids: [336 337 360 16777215] ) ] spids: [248 254 363] ) (C {(shift)}) ] op_id: Op_DAmp ) ] spids: [245 371] ) ) ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(.gitattributes)} spids: [376] ) ] spids: [228] ) ] spids: [225] ) spids: [220 224] ) (FuncDef name: create_NNO_files body: (BraceGroup children: [ (ForEach iter_name: crlf iter_words: [{(false)} {(true)} {(input)}] do_arg_iter: False body: (DoGroup children: [ (ForEach iter_name: attr iter_words: [{(DQ )} {(auto)} {(text)} {(-text)}] do_arg_iter: False body: (DoGroup children: [ (ForEach iter_name: aeol iter_words: [{(DQ )} {(lf)} {(crlf)}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pfx) op: Equal rhs: {(NNO_attr_) (${ VSub_Name attr) (_aeol_) (${ VSub_Name aeol) (_) (${ VSub_Name crlf) } spids: [442] ) ] spids: [442] ) (AndOr children: [ (C {(cp)} {(CRLF_mix_LF)} {(${ VSub_Name pfx) (_LF.txt)}) (AndOr children: [ (C {(cp)} {(CRLF_mix_LF)} {(${ VSub_Name pfx) (_CRLF.txt)}) (AndOr children: [ (C {(cp)} {(CRLF_mix_LF)} {(${ VSub_Name pfx) (_CRLF_mix_LF.txt)} ) (AndOr children: [ (C {(cp)} {(CRLF_mix_LF)} {(${ VSub_Name pfx) (_LF_mix_CR.txt)} ) (C {(cp)} {(CRLF_mix_LF)} {(${ VSub_Name pfx) (_CRLF_nul.txt)} ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] spids: [439 515] ) spids: [430 16777215] ) ] spids: [422 518] ) spids: [411 16777215] ) ] spids: [403 521] ) spids: [395 16777215] ) ] spids: [387] ) spids: [382 386] ) (FuncDef name: check_warning body: (BraceGroup children: [ (Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(LF_CRLF)}] action: [ (SimpleCommand words: [{(echo)} {(DQ ('warning: LF will be replaced by CRLF'))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Number '$2')) (.expect)} spids: [552] ) ] ) ] spids: [543 544 558 16777215] ) (case_arm pat_list: [{(CRLF_LF)}] action: [ (SimpleCommand words: [{(echo)} {(DQ ('warning: CRLF will be replaced by LF'))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Number '$2')) (.expect)} spids: [570] ) ] ) ] spids: [561 562 576 16777215] ) (case_arm pat_list: [{(SQ )}] action: [ (SimpleCommand redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Number '$2')) (.expect)} spids: [583] ) ] ) ] spids: [16777215 581 589 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Sentence child: (SimpleCommand words: [ {(echo)} {(DQ ('Illegal 1')) (Lit_Other ':')} {(DQ ($ VSub_Number '$1'))} ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 16777215 arg_word: {(2)} spids: [597] ) ] ) terminator: <Op_Semi ';'> ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(false)} ) ] spids: [592 593 615 16777215] ) ] spids: [534 540 618] ) (Pipeline children: [ (C {(grep)} {(DQ ('will be replaced by'))} {(DQ ($ VSub_Number '$2'))}) (C {(sed)} {(-e)} { (DQ (s/) (Lit_Other '\\') ('(.*') (Lit_Other '\\') (') in [^ ]*') (Lit_Other '$') (/) (Lit_Other '\\') (1/) ) } ) (SimpleCommand words: [{(uniq)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Number '$2')) (.actual)} spids: [653] ) ] ) ] negated: False ) (C {(test_cmp)} {(DQ ($ VSub_Number '$2')) (.expect)} {(DQ ($ VSub_Number '$2')) (.actual)}) ] spids: [531] ) spids: [526 530] ) (FuncDef name: commit_check_warn body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:crlf) op: Equal rhs: {($ VSub_Number '$1')} spids: [683] ) ] spids: [683] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:attr) op: Equal rhs: {($ VSub_Number '$2')} spids: [687] ) ] spids: [687] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lfname) op: Equal rhs: {($ VSub_Number '$3')} spids: [691] ) ] spids: [691] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:crlfname) op: Equal rhs: {($ VSub_Number '$4')} spids: [695] ) ] spids: [695] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lfmixcrlf) op: Equal rhs: {($ VSub_Number '$5')} spids: [699] ) ] spids: [699] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lfmixcr) op: Equal rhs: {($ VSub_Number '$6')} spids: [703] ) ] spids: [703] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:crlfnul) op: Equal rhs: {($ VSub_Number '$7')} spids: [707] ) ] spids: [707] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pfx) op: Equal rhs: {(crlf_) (${ VSub_Name crlf) (_attr_) (${ VSub_Name attr)} spids: [711] ) ] spids: [711] ) (AndOr children: [ (C {(create_gitattributes)} {(DQ ($ VSub_Name '$attr'))}) (AndOr children: [ (ForEach iter_name: f iter_words: [{(LF)} {(CRLF)} {(LF_mix_CR)} {(CRLF_mix_LF)} {(LF_nul)} {(CRLF_nul)}] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:fname) op: Equal rhs: {(${ VSub_Name pfx) (_) ($ VSub_Name '$f') (.txt)} spids: [753] ) ] spids: [753] ) (AndOr children: [ (C {(cp)} {($ VSub_Name '$f')} {($ VSub_Name '$fname')}) (SimpleCommand words: [ {(git)} {(-c)} {(core.autocrlf) (Lit_Other '=') ($ VSub_Name '$crlf')} {(add)} {($ VSub_Name '$fname')} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(DQ (${ VSub_Name pfx) (_) ($ VSub_Name '$f') (.err))} spids: [785] ) ] ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] spids: [750 796] ) spids: [736 16777215] ) (AndOr children: [ (C {(git)} {(commit)} {(-m)} {(DQ ('core.autocrlf ') ($ VSub_Name '$crlf'))}) (AndOr children: [ (C {(check_warning)} {(DQ ($ VSub_Name '$lfname'))} {(${ VSub_Name pfx) (_LF.err)} ) (AndOr children: [ (C {(check_warning)} {(DQ ($ VSub_Name '$crlfname'))} {(${ VSub_Name pfx) (_CRLF.err)} ) (AndOr children: [ (C {(check_warning)} {(DQ ($ VSub_Name '$lfmixcrlf'))} {(${ VSub_Name pfx) (_CRLF_mix_LF.err)} ) (AndOr children: [ (C {(check_warning)} {(DQ ($ VSub_Name '$lfmixcr'))} {(${ VSub_Name pfx) (_LF_mix_CR.err)} ) (C {(check_warning)} {(DQ ($ VSub_Name '$crlfnul'))} {(${ VSub_Name pfx) (_CRLF_nul.err)} ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] spids: [680] ) spids: [675 679] ) (FuncDef name: commit_chk_wrnNNO body: (BraceGroup children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:attr) op: Equal rhs: {($ VSub_Number '$1')} spids: [893] ) ] spids: [893] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:aeol) op: Equal rhs: {($ VSub_Number '$1')} spids: [901] ) ] spids: [901] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:crlf) op: Equal rhs: {($ VSub_Number '$1')} spids: [909] ) ] spids: [909] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lfwarn) op: Equal rhs: {($ VSub_Number '$1')} spids: [917] ) ] spids: [917] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:crlfwarn) op: Equal rhs: {($ VSub_Number '$1')} spids: [925] ) ] spids: [925] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lfmixcrlf) op: Equal rhs: {($ VSub_Number '$1')} spids: [933] ) ] spids: [933] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lfmixcr) op: Equal rhs: {($ VSub_Number '$1')} spids: [941] ) ] spids: [941] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:crlfnul) op: Equal rhs: {($ VSub_Number '$1')} spids: [949] ) ] spids: [949] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pfx) op: Equal rhs: {(NNO_attr_) (${ VSub_Name attr) (_aeol_) (${ VSub_Name aeol) (_) (${ VSub_Name crlf) } spids: [957] ) ] spids: [957] ) (AndOr children: [ (C {(create_gitattributes)} {(DQ ($ VSub_Name '$attr'))} {($ VSub_Name '$aeol')}) (ForEach iter_name: f iter_words: [{(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)}] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:fname) op: Equal rhs: {(${ VSub_Name pfx) (_) ($ VSub_Name '$f') (.txt)} spids: [1007] ) ] spids: [1007] ) (AndOr children: [ (C {(cp)} {($ VSub_Name '$f')} {($ VSub_Name '$fname')}) (AndOr children: [ (SimpleCommand words: [{(printf)} {(Z)}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {(DQ ($ VSub_Name '$fname'))} spids: [1031] ) ] ) (SimpleCommand words: [ {(git)} {(-c)} {(core.autocrlf) (Lit_Other '=') ($ VSub_Name '$crlf')} {(add)} {($ VSub_Name '$fname')} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(DQ (${ VSub_Name pfx) (_) ($ VSub_Name '$f') (.err))} spids: [1051] ) ] ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] spids: [1004 1062] ) spids: [992 16777215] ) ] op_id: Op_DAmp ) (C {(test_expect_success)} { (DQ ('commit NNO files crlf=') ($ VSub_Name '$crlf') (' attr=') ($ VSub_Name '$attr') (' LF') ) } {(SQ <'\n'> <'\t\tcheck_warning "$lfwarn" ${pfx}_LF.err\n'> <'\t'>)} ) (C {(test_expect_success)} { (DQ ('commit NNO files attr=') ($ VSub_Name '$attr') (' aeol=') ($ VSub_Name '$aeol') (' crlf=') ($ VSub_Name '$crlf') (' CRLF') ) } {(SQ <'\n'> <'\t\tcheck_warning "$crlfwarn" ${pfx}_CRLF.err\n'> <'\t'>)} ) (C {(test_expect_success)} { (DQ ('commit NNO files attr=') ($ VSub_Name '$attr') (' aeol=') ($ VSub_Name '$aeol') (' crlf=') ($ VSub_Name '$crlf') (' CRLF_mix_LF') ) } {(SQ <'\n'> <'\t\tcheck_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err\n'> <'\t'>)} ) (C {(test_expect_success)} { (DQ ('commit NNO files attr=') ($ VSub_Name '$attr') (' aeol=') ($ VSub_Name '$aeol') (' crlf=') ($ VSub_Name '$crlf') (' LF_mix_cr') ) } {(SQ <'\n'> <'\t\tcheck_warning "$lfmixcr" ${pfx}_LF_mix_CR.err\n'> <'\t'>)} ) (C {(test_expect_success)} { (DQ ('commit NNO files attr=') ($ VSub_Name '$attr') (' aeol=') ($ VSub_Name '$aeol') (' crlf=') ($ VSub_Name '$crlf') (' CRLF_nul') ) } {(SQ <'\n'> <'\t\tcheck_warning "$crlfnul" ${pfx}_CRLF_nul.err\n'> <'\t'>)} ) ] spids: [890] ) spids: [885 889] ) (FuncDef name: stats_ascii body: (BraceGroup children: [ (Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(LF)}] action: [(C {(echo)} {(lf)})] spids: [1181 1182 1190 16777215] ) (case_arm pat_list: [{(CRLF)}] action: [(C {(echo)} {(crlf)})] spids: [1193 1194 1202 16777215] ) (case_arm pat_list: [{(CRLF_mix_LF)}] action: [(C {(echo)} {(mixed)})] spids: [1205 1206 1214 16777215] ) (case_arm pat_list: [{(LF_mix_CR)} {(CRLF_nul)} {(LF_nul)} {(CRLF_mix_CR)}] action: [(C {(echo)} {(DQ (-text))})] spids: [1217 1224 1234 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(echo)} {(error_invalid)} {($ VSub_Number '$1')})] spids: [1237 1238 1248 16777215] ) ] spids: [1172 1178 1251] ) ] spids: [1169] ) spids: [1164 1168] ) (FuncDef name: attr_ascii body: (BraceGroup children: [ (Case to_match: {($ VSub_Number '$1') (Lit_Comma ',') ($ VSub_Number '$2')} arms: [ (case_arm pat_list: [{(-text) (Lit_Comma ',') (Lit_Other '*')}] action: [(C {(echo)} {(DQ (-text))})] spids: [1284 1287 1295 16777215] ) (case_arm pat_list: [{(text) (Lit_Comma ',')}] action: [(C {(echo)} {(DQ (text))})] spids: [1298 1300 1308 16777215] ) (case_arm pat_list: [{(text) (Lit_Comma ',') (lf)}] action: [(C {(echo)} {(DQ ('text eol=lf'))})] spids: [1311 1314 1322 16777215] ) (case_arm pat_list: [{(text) (Lit_Comma ',') (crlf)}] action: [(C {(echo)} {(DQ ('text eol=crlf'))})] spids: [1325 1328 1336 16777215] ) (case_arm pat_list: [{(auto) (Lit_Comma ',')}] action: [(C {(echo)} {(DQ ('text=auto'))})] spids: [1339 1341 1349 16777215] ) (case_arm pat_list: [{(auto) (Lit_Comma ',') (lf)}] action: [(C {(echo)} {(DQ ('text=auto eol=lf'))})] spids: [1352 1355 1363 16777215] ) (case_arm pat_list: [{(auto) (Lit_Comma ',') (crlf)}] action: [(C {(echo)} {(DQ ('text=auto eol=crlf'))})] spids: [1366 1369 1377 16777215] ) (case_arm pat_list: [{(lf) (Lit_Comma ',')}] action: [(C {(echo)} {(DQ ('text eol=lf'))})] spids: [1380 1382 1390 16777215] ) (case_arm pat_list: [{(crlf) (Lit_Comma ',')}] action: [(C {(echo)} {(DQ ('text eol=crlf'))})] spids: [1393 1395 1403 16777215] ) (case_arm pat_list: [{(Lit_Comma ',')}] action: [(C {(echo)} {(DQ )})] spids: [1406 1407 1414 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(invalid_attr)} {(DQ ($ VSub_Number '$1') (',') ($ VSub_Number '$2'))}) ] spids: [1417 1418 1430 16777215] ) ] spids: [1275 1281 1433] ) ] spids: [1272] ) spids: [1267 1271] ) (FuncDef name: check_files_in_repo body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:crlf) op: Equal rhs: {($ VSub_Number '$1')} spids: [1446] ) ] spids: [1446] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:attr) op: Equal rhs: {($ VSub_Number '$2')} spids: [1450] ) ] spids: [1450] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lfname) op: Equal rhs: {($ VSub_Number '$3')} spids: [1454] ) ] spids: [1454] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:crlfname) op: Equal rhs: {($ VSub_Number '$4')} spids: [1458] ) ] spids: [1458] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lfmixcrlf) op: Equal rhs: {($ VSub_Number '$5')} spids: [1462] ) ] spids: [1462] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lfmixcr) op: Equal rhs: {($ VSub_Number '$6')} spids: [1466] ) ] spids: [1466] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:crlfnul) op: Equal rhs: {($ VSub_Number '$7')} spids: [1470] ) ] spids: [1470] ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pfx) op: Equal rhs: {(crlf_) (${ VSub_Name crlf) (_attr_) (${ VSub_Name attr) (_)} spids: [1474] ) ] spids: [1474] ) (AndOr children: [ (C {(compare_files)} {($ VSub_Name '$lfname')} {(${ VSub_Name pfx) (LF.txt)}) (AndOr children: [ (C {(compare_files)} {($ VSub_Name '$crlfname')} {(${ VSub_Name pfx) (CRLF.txt)}) (AndOr children: [ (C {(compare_files)} {($ VSub_Name '$lfmixcrlf')} {(${ VSub_Name pfx) (CRLF_mix_LF.txt)} ) (AndOr children: [ (C {(compare_files)} {($ VSub_Name '$lfmixcr')} {(${ VSub_Name pfx) (LF_mix_CR.txt)} ) (C {(compare_files)} {($ VSub_Name '$crlfnul')} {(${ VSub_Name pfx) (CRLF_nul.txt)} ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] spids: [1443] ) spids: [1438 1442] ) (FuncDef name: check_in_repo_NNO body: (BraceGroup children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:attr) op: Equal rhs: {($ VSub_Number '$1')} spids: [1556] ) ] spids: [1556] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:aeol) op: Equal rhs: {($ VSub_Number '$1')} spids: [1564] ) ] spids: [1564] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:crlf) op: Equal rhs: {($ VSub_Number '$1')} spids: [1572] ) ] spids: [1572] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lfname) op: Equal rhs: {($ VSub_Number '$1')} spids: [1580] ) ] spids: [1580] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:crlfname) op: Equal rhs: {($ VSub_Number '$1')} spids: [1588] ) ] spids: [1588] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lfmixcrlf) op: Equal rhs: {($ VSub_Number '$1')} spids: [1596] ) ] spids: [1596] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lfmixcr) op: Equal rhs: {($ VSub_Number '$1')} spids: [1604] ) ] spids: [1604] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:crlfnul) op: Equal rhs: {($ VSub_Number '$1')} spids: [1612] ) ] spids: [1612] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pfx) op: Equal rhs: {(NNO_attr_) (${ VSub_Name attr) (_aeol_) (${ VSub_Name aeol) (_) (${ VSub_Name crlf) } spids: [1620] ) ] spids: [1620] ) (C {(test_expect_success)} {(DQ ('compare_files ') ($ VSub_Name '$lfname') (' ') (${ VSub_Name pfx) (_LF.txt))} {(SQ <'\n'> <'\t\tcompare_files $lfname ${pfx}_LF.txt\n'> <'\t'>)} ) (C {(test_expect_success)} { (DQ ('compare_files ') ($ VSub_Name '$crlfname') (' ') (${ VSub_Name pfx) (_CRLF.txt)) } {(SQ <'\n'> <'\t\tcompare_files $crlfname ${pfx}_CRLF.txt\n'> <'\t'>)} ) (C {(test_expect_success)} { (DQ ('compare_files ') ($ VSub_Name '$lfmixcrlf') (' ') (${ VSub_Name pfx) (_CRLF_mix_LF.txt) ) } {(SQ <'\n'> <'\t\tcompare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt\n'> <'\t'>)} ) (C {(test_expect_success)} { (DQ ('compare_files ') ($ VSub_Name '$lfmixcr') (' ') (${ VSub_Name pfx) (_LF_mix_CR.txt)) } {(SQ <'\n'> <'\t\tcompare_files $lfmixcr ${pfx}_LF_mix_CR.txt\n'> <'\t'>)} ) (C {(test_expect_success)} { (DQ ('compare_files ') ($ VSub_Name '$crlfnul') (' ') (${ VSub_Name pfx) (_CRLF_nul.txt)) } {(SQ <'\n'> <'\t\tcompare_files $crlfnul ${pfx}_CRLF_nul.txt\n'> <'\t'>)} ) ] spids: [1553] ) spids: [1548 1552] ) (FuncDef name: checkout_files body: (BraceGroup children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:attr) op: Equal rhs: {($ VSub_Number '$1')} spids: [1740] ) ] spids: [1740] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ident) op: Equal rhs: {($ VSub_Number '$1')} spids: [1748] ) ] spids: [1748] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:aeol) op: Equal rhs: {($ VSub_Number '$1')} spids: [1755] ) ] spids: [1755] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:crlf) op: Equal rhs: {($ VSub_Number '$1')} spids: [1763] ) ] spids: [1763] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ceol) op: Equal rhs: {($ VSub_Number '$1')} spids: [1771] ) ] spids: [1771] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lfname) op: Equal rhs: {($ VSub_Number '$1')} spids: [1779] ) ] spids: [1779] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:crlfname) op: Equal rhs: {($ VSub_Number '$1')} spids: [1787] ) ] spids: [1787] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lfmixcrlf) op: Equal rhs: {($ VSub_Number '$1')} spids: [1795] ) ] spids: [1795] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lfmixcr) op: Equal rhs: {($ VSub_Number '$1')} spids: [1803] ) ] spids: [1803] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:crlfnul) op: Equal rhs: {($ VSub_Number '$1')} spids: [1811] ) ] spids: [1811] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (AndOr children: [ (C {(create_gitattributes)} {(DQ ($ VSub_Name '$attr'))} {($ VSub_Name '$ident')} {($ VSub_Name '$aeol')} ) (AndOr children: [ (C {(git)} {(config)} {(core.autocrlf)} {($ VSub_Name '$crlf')}) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pfx) op: Equal rhs: {(eol_) (${ VSub_Name ceol) (_crlf_) (${ VSub_Name crlf) (_attr_) (${ VSub_Name attr) (_) } spids: [1843] ) ] spids: [1843] ) (ForEach iter_name: f iter_words: [{(LF)} {(CRLF)} {(LF_mix_CR)} {(CRLF_mix_LF)} {(LF_nul)}] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (C {(rm)} {(crlf_false_attr__) ($ VSub_Name '$f') (.txt)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(-z)} {(DQ ($ VSub_Name '$ceol'))}) terminator: <Op_Semi ';'> ) ] action: [ (C {(git)} {(checkout)} {(crlf_false_attr__) ($ VSub_Name '$f') (.txt)} ) ] spids: [16777215 1901] ) ] else_action: [ (C {(git)} {(-c)} {(core.eol) (Lit_Other '=') ($ VSub_Name '$ceol')} {(checkout)} {(crlf_false_attr__) ($ VSub_Name '$f') (.txt)} ) ] spids: [1913 1931] ) ] op_id: Op_DAmp ) ] spids: [1878 1934] ) spids: [1866 16777215] ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (C {(test_expect_success)} { (DQ ('ls-files --eol attr=') ($ VSub_Name '$attr') (' ') ($ VSub_Name '$ident') (' aeol=') ($ VSub_Name '$aeol') (' core.autocrlf=') ($ VSub_Name '$crlf') (' core.eol=') ($ VSub_Name '$ceol') ) } { (SQ <'\n'> <'\t\ttest_when_finished "rm expect actual" &&\n'> <'\t\tsort <<-EOF >expect &&\n'> <'\t\ti/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt\n'> < '\t\ti/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt\n' > <'\t\ti/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt\n'> < '\t\ti/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt\n' > < '\t\ti/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt\n' > < '\t\ti/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt\n' > <'\t\tEOF\n'> <'\t\tgit ls-files --eol crlf_false_attr__* |\n'> <'\t\tsed -e "s/\t/ /g" -e "s/ */ /g" |\n'> <'\t\tsort >actual &&\n'> <'\t\ttest_cmp expect actual\n'> <'\t'> ) } ) (C {(test_expect_success)} { (DQ ('checkout attr=') ($ VSub_Name '$attr') (' ') ($ VSub_Name '$ident') (' aeol=') ($ VSub_Name '$aeol') (' core.autocrlf=') ($ VSub_Name '$crlf') (' core.eol=') ($ VSub_Name '$ceol') (' file=LF') ) } { (DQ ('\n') ('\t\tcompare_ws_file ') ($ VSub_Name '$pfx') (' ') ($ VSub_Name '$lfname') (' crlf_false_attr__LF.txt\n') ('\t') ) } ) (C {(test_expect_success)} { (DQ ('checkout attr=') ($ VSub_Name '$attr') (' ') ($ VSub_Name '$ident') (' aeol=') ($ VSub_Name '$aeol') (' core.autocrlf=') ($ VSub_Name '$crlf') (' core.eol=') ($ VSub_Name '$ceol') (' file=CRLF') ) } { (DQ ('\n') ('\t\tcompare_ws_file ') ($ VSub_Name '$pfx') (' ') ($ VSub_Name '$crlfname') (' crlf_false_attr__CRLF.txt\n') ('\t') ) } ) (C {(test_expect_success)} { (DQ ('checkout attr=') ($ VSub_Name '$attr') (' ') ($ VSub_Name '$ident') (' aeol=') ($ VSub_Name '$aeol') (' core.autocrlf=') ($ VSub_Name '$crlf') (' core.eol=') ($ VSub_Name '$ceol') (' file=CRLF_mix_LF') ) } { (DQ ('\n') ('\t\tcompare_ws_file ') ($ VSub_Name '$pfx') (' ') ($ VSub_Name '$lfmixcrlf') (' crlf_false_attr__CRLF_mix_LF.txt\n') ('\t') ) } ) (C {(test_expect_success)} { (DQ ('checkout attr=') ($ VSub_Name '$attr') (' ') ($ VSub_Name '$ident') (' aeol=') ($ VSub_Name '$aeol') (' core.autocrlf=') ($ VSub_Name '$crlf') (' core.eol=') ($ VSub_Name '$ceol') (' file=LF_mix_CR') ) } { (DQ ('\n') ('\t\tcompare_ws_file ') ($ VSub_Name '$pfx') (' ') ($ VSub_Name '$lfmixcr') (' crlf_false_attr__LF_mix_CR.txt\n') ('\t') ) } ) (C {(test_expect_success)} { (DQ ('checkout attr=') ($ VSub_Name '$attr') (' ') ($ VSub_Name '$ident') (' aeol=') ($ VSub_Name '$aeol') (' core.autocrlf=') ($ VSub_Name '$crlf') (' core.eol=') ($ VSub_Name '$ceol') (' file=LF_nul') ) } { (DQ ('\n') ('\t\tcompare_ws_file ') ($ VSub_Name '$pfx') (' ') ($ VSub_Name '$crlfnul') (' crlf_false_attr__LF_nul.txt\n') ('\t') ) } ) ] spids: [1737] ) spids: [1732 1736] ) (C {(test_expect_success)} {(SQ <'ls-files --eol -o Text/Binary'>)} { (SQ <'\n'> <'\ttest_when_finished "rm expect actual TeBi_*" &&\n'> <'\tSTRT=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA &&\n'> <'\tSTR=$STRT$STRT$STRT$STRT &&\n'> <'\tprintf "${STR}BBB\\001" >TeBi_127_S &&\n'> <'\tprintf "${STR}BBBB\\001">TeBi_128_S &&\n'> <'\tprintf "${STR}BBB\\032" >TeBi_127_E &&\n'> <'\tprintf "\\032${STR}BBB" >TeBi_E_127 &&\n'> <'\tprintf "${STR}BBBB\\000">TeBi_128_N &&\n'> <'\tprintf "${STR}BBB\\012">TeBi_128_L &&\n'> <'\tprintf "${STR}BBB\\015">TeBi_127_C &&\n'> <'\tprintf "${STR}BB\\015\\012" >TeBi_126_CL &&\n'> <'\tprintf "${STR}BB\\015\\012\\015" >TeBi_126_CLC &&\n'> <'\tsort <<-\\EOF >expect &&\n'> <'\ti/ w/-text TeBi_127_S\n'> <'\ti/ w/none TeBi_128_S\n'> <'\ti/ w/none TeBi_127_E\n'> <'\ti/ w/-text TeBi_E_127\n'> <'\ti/ w/-text TeBi_128_N\n'> <'\ti/ w/lf TeBi_128_L\n'> <'\ti/ w/-text TeBi_127_C\n'> <'\ti/ w/crlf TeBi_126_CL\n'> <'\ti/ w/-text TeBi_126_CLC\n'> <'\tEOF\n'> <'\tgit ls-files --eol -o |\n'> <'\tsed -n -e "/TeBi_/{s!attr/[\t]*!!g\n'> <'\ts!\t! !g\n'> <'\ts! *! !g\n'> <'\tp\n'> <'\t}" | sort >actual &&\n'> <'\ttest_cmp expect actual\n'> ) } ) (C {(test_expect_success)} {(SQ <'setup master'>)} { (SQ <'\n'> <'\techo >.gitattributes &&\n'> <'\tgit checkout -b master &&\n'> <'\tgit add .gitattributes &&\n'> <'\tgit commit -m "add .gitattributes" "" &&\n'> < '\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\nLINEONE\\nLINETWO\\nLINETHREE" >LF &&\n' > < '\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\r\\nLINEONE\\r\\nLINETWO\\r\\nLINETHREE" >CRLF &&\n' > < '\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\nLINEONE\\r\\nLINETWO\\nLINETHREE" >CRLF_mix_LF &&\n' > < '\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\nLINEONE\\nLINETWO\\rLINETHREE" >LF_mix_CR &&\n' > < '\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\r\\nLINEONE\\r\\nLINETWO\\rLINETHREE" >CRLF_mix_CR &&\n' > < '\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\r\\nLINEONEQ\\r\\nLINETWO\\r\\nLINETHREE" | q_to_nul >CRLF_nul &&\n' > < '\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\nLINEONEQ\\nLINETWO\\nLINETHREE" | q_to_nul >LF_nul &&\n' > <'\tcreate_NNO_files CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF &&\n'> <'\tgit -c core.autocrlf=false add NNO_*.txt &&\n'> <'\tgit commit -m "mixed line endings" &&\n'> <'\ttest_tick\n'> ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:warn_LF_CRLF) op: Equal rhs: {(DQ ('LF will be replaced by CRLF'))} spids: [2184] ) ] spids: [2184] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:warn_CRLF_LF) op: Equal rhs: {(DQ ('CRLF will be replaced by LF'))} spids: [2189] ) ] spids: [2189] ) (If arms: [ (if_arm cond: [(C {(test_have_prereq)} {(NATIVE_CRLF)})] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:WILC) op:Equal rhs:{(LF_CRLF)} spids:[2213])] spids: [2213] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:WICL) op:Equal rhs:{(SQ )} spids:[2217])] spids: [2217] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:WAMIX) op:Equal rhs:{(LF_CRLF)} spids:[2220])] spids: [2220] ) ] spids: [16777215 2210] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:WILC) op:Equal rhs:{(SQ )} spids:[2226])] spids: [2226] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:WICL) op:Equal rhs:{(CRLF_LF)} spids:[2229])] spids: [2229] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:WAMIX) op:Equal rhs:{(CRLF_LF)} spids:[2233])] spids: [2233] ) ] spids: [2223 2236] ) (C {(test_expect_success)} {(SQ <'commit files empty attr'>)} { (SQ <'\n'> <'\tcommit_check_warn false "" "" "" "" "" "" &&\n'> <'\tcommit_check_warn true "" "LF_CRLF" "" "LF_CRLF" "" "" &&\n'> <'\tcommit_check_warn input "" "" "CRLF_LF" "CRLF_LF" "" ""\n'> ) } ) (C {(test_expect_success)} {(SQ <'commit files attr=auto'>)} { (SQ <'\n'> <'\tcommit_check_warn false "auto" "$WILC" "$WICL" "$WAMIX" "" "" &&\n'> <'\tcommit_check_warn true "auto" "LF_CRLF" "" "LF_CRLF" "" "" &&\n'> <'\tcommit_check_warn input "auto" "" "CRLF_LF" "CRLF_LF" "" ""\n'> ) } ) (C {(test_expect_success)} {(SQ <'commit files attr=text'>)} { (SQ <'\n'> < '\tcommit_check_warn false "text" "$WILC" "$WICL" "$WAMIX" "$WILC" "$WICL" &&\n' > <'\tcommit_check_warn true "text" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "" &&\n'> <'\tcommit_check_warn input "text" "" "CRLF_LF" "CRLF_LF" "" "CRLF_LF"\n'> ) } ) (C {(test_expect_success)} {(SQ <'commit files attr=-text'>)} { (SQ <'\n'> <'\tcommit_check_warn false "-text" "" "" "" "" "" &&\n'> <'\tcommit_check_warn true "-text" "" "" "" "" "" &&\n'> <'\tcommit_check_warn input "-text" "" "" "" "" ""\n'> ) } ) (C {(test_expect_success)} {(SQ <'commit files attr=lf'>)} { (SQ <'\n'> < '\tcommit_check_warn false "lf" "" "CRLF_LF" "CRLF_LF" "" "CRLF_LF" &&\n' > <'\tcommit_check_warn true "lf" "" "CRLF_LF" "CRLF_LF" "" "CRLF_LF" &&\n'> <'\tcommit_check_warn input "lf" "" "CRLF_LF" "CRLF_LF" "" "CRLF_LF"\n'> ) } ) (C {(test_expect_success)} {(SQ <'commit files attr=crlf'>)} { (SQ <'\n'> <'\tcommit_check_warn false "crlf" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "" &&\n'> <'\tcommit_check_warn true "crlf" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "" &&\n'> <'\tcommit_check_warn input "crlf" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" ""\n'> ) } ) (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 ($ VSub_Name '$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 )}) (ForEach iter_name: crlf iter_words: [{(true)} {(false)} {(input)}] do_arg_iter: False body: (DoGroup children: [ (C {(commit_chk_wrnNNO)} {(-text)} {(DQ )} {($ VSub_Name '$crlf')} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )}) (C {(commit_chk_wrnNNO)} {(-text)} {(lf)} {($ VSub_Name '$crlf')} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )}) (C {(commit_chk_wrnNNO)} {(-text)} {(crlf)} {($ VSub_Name '$crlf')} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )}) (C {(commit_chk_wrnNNO)} {(DQ )} {(lf)} {($ VSub_Name '$crlf')} {(DQ )} {(CRLF_LF)} {(CRLF_LF)} {(DQ )} {(CRLF_LF)} ) (C {(commit_chk_wrnNNO)} {(DQ )} {(crlf)} {($ VSub_Name '$crlf')} {(LF_CRLF)} {(DQ )} {(LF_CRLF)} {(LF_CRLF)} {(DQ )} ) (C {(commit_chk_wrnNNO)} {(auto)} {(lf)} {($ VSub_Name '$crlf')} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )}) (C {(commit_chk_wrnNNO)} {(auto)} {(crlf)} {($ VSub_Name '$crlf')} {(LF_CRLF)} {(DQ )} {(DQ )} {(DQ )} {(DQ )}) (C {(commit_chk_wrnNNO)} {(text)} {(lf)} {($ VSub_Name '$crlf')} {(DQ )} {(CRLF_LF)} {(CRLF_LF)} {(DQ )} {(CRLF_LF)} ) (C {(commit_chk_wrnNNO)} {(text)} {(crlf)} {($ VSub_Name '$crlf')} {(LF_CRLF)} {(DQ )} {(LF_CRLF)} {(LF_CRLF)} {(DQ )} ) ] spids: [2494 2702] ) spids: [2487 16777215] ) (C {(commit_chk_wrnNNO)} {(DQ (text))} {(DQ )} {(false)} {(DQ ($ VSub_Name '$WILC'))} {(DQ ($ VSub_Name '$WICL'))} {(DQ ($ VSub_Name '$WAMIX'))} {(DQ ($ VSub_Name '$WILC'))} {(DQ ($ VSub_Name '$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 <'commit NNO and cleanup'>)} { (SQ <'\n'> <'\tgit commit -m "commit files on top of NNO" &&\n'> <'\trm -f *.txt &&\n'> <'\tgit -c core.autocrlf=false reset --hard\n'> ) } ) (C {(test_expect_success)} {(SQ <'commit empty gitattribues'>)} { (SQ <'\n'> <'\tcheck_files_in_repo false "" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul &&\n'> <'\tcheck_files_in_repo true "" LF LF LF LF_mix_CR CRLF_nul &&\n'> <'\tcheck_files_in_repo input "" LF LF LF LF_mix_CR CRLF_nul\n'> ) } ) (C {(test_expect_success)} {(SQ <'commit text=auto'>)} { (SQ <'\n'> <'\tcheck_files_in_repo false "auto" LF LF LF LF_mix_CR CRLF_nul &&\n'> <'\tcheck_files_in_repo true "auto" LF LF LF LF_mix_CR CRLF_nul &&\n'> <'\tcheck_files_in_repo input "auto" LF LF LF LF_mix_CR CRLF_nul\n'> ) } ) (C {(test_expect_success)} {(SQ <'commit text'>)} { (SQ <'\n'> <'\tcheck_files_in_repo false "text" LF LF LF LF_mix_CR LF_nul &&\n'> <'\tcheck_files_in_repo true "text" LF LF LF LF_mix_CR LF_nul &&\n'> <'\tcheck_files_in_repo input "text" LF LF LF LF_mix_CR LF_nul\n'> ) } ) (C {(test_expect_success)} {(SQ <'commit -text'>)} { (SQ <'\n'> <'\tcheck_files_in_repo false "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul &&\n'> <'\tcheck_files_in_repo true "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul &&\n'> <'\tcheck_files_in_repo input "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul\n'> ) } ) (ForEach iter_name: crlf iter_words: [{(true)} {(false)} {(input)}] do_arg_iter: False body: (DoGroup children: [ (C {(check_in_repo_NNO)} {(DQ )} {(DQ )} {($ VSub_Name '$crlf')} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)} ) (C {(check_in_repo_NNO)} {(-text)} {(DQ )} {($ VSub_Name '$crlf')} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)} ) (C {(check_in_repo_NNO)} {(-text)} {(lf)} {($ VSub_Name '$crlf')} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)} ) (C {(check_in_repo_NNO)} {(-text)} {(crlf)} {($ VSub_Name '$crlf')} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)} ) (C {(check_in_repo_NNO)} {(auto)} {(DQ )} {($ VSub_Name '$crlf')} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)} ) (C {(check_in_repo_NNO)} {(auto)} {(lf)} {($ VSub_Name '$crlf')} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)} ) (C {(check_in_repo_NNO)} {(auto)} {(crlf)} {($ VSub_Name '$crlf')} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(CRLF_nul)} ) (C {(check_in_repo_NNO)} {(text)} {(DQ )} {($ VSub_Name '$crlf')} {(LF)} {(LF)} {(LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(check_in_repo_NNO)} {(text)} {(lf)} {($ VSub_Name '$crlf')} {(LF)} {(LF)} {(LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(check_in_repo_NNO)} {(text)} {(crlf)} {($ VSub_Name '$crlf')} {(LF)} {(LF)} {(LF)} {(LF_mix_CR)} {(LF_nul)} ) ] spids: [2865 3066] ) spids: [2858 16777215] ) (If arms: [ (if_arm cond: [(C {(test_have_prereq)} {(NATIVE_CRLF)})] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:MIX_CRLF_LF) op:Equal rhs:{(CRLF)} spids:[3125])] spids: [3125] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MIX_LF_CR) op: Equal rhs: {(CRLF_mix_CR)} spids: [3128] ) ] spids: [3128] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:NL) op:Equal rhs:{(CRLF)} spids:[3131])] spids: [3131] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:LFNUL) op:Equal rhs:{(CRLF_nul)} spids:[3134])] spids: [3134] ) ] spids: [16777215 3123] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MIX_CRLF_LF) op: Equal rhs: {(CRLF_mix_LF)} spids: [3139] ) ] spids: [3139] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:MIX_LF_CR) op:Equal rhs:{(LF_mix_CR)} spids:[3142])] spids: [3142] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:NL) op:Equal rhs:{(LF)} spids:[3145])] spids: [3145] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:LFNUL) op:Equal rhs:{(LF_nul)} spids:[3148])] spids: [3148] ) ] spids: [3137 3151] ) (C {(export)} {(CRLF_MIX_LF_CR)} {(MIX)} {(NL)}) (ForEach iter_name: id iter_words: [{(DQ )} {(ident)}] do_arg_iter: False body: (DoGroup children: [ (ForEach iter_name: ceol iter_words: [{(lf)} {(crlf)} {(native)}] do_arg_iter: False body: (DoGroup children: [ (ForEach iter_name: crlf iter_words: [{(true)} {(false)} {(input)}] do_arg_iter: False body: (DoGroup children: [ (C {(checkout_files)} {(-text)} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(DQ ($ VSub_Name '$crlf'))} {(DQ ($ VSub_Name '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(checkout_files)} {(-text)} {(DQ ($ VSub_Name '$id'))} {(DQ (lf))} {(DQ ($ VSub_Name '$crlf'))} {(DQ ($ VSub_Name '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(checkout_files)} {(-text)} {(DQ ($ VSub_Name '$id'))} {(DQ (crlf))} {(DQ ($ VSub_Name '$crlf'))} {(DQ ($ VSub_Name '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name '$id'))} {(DQ (lf))} {(DQ ($ VSub_Name '$crlf'))} {(DQ ($ VSub_Name '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name '$id'))} {(DQ (crlf))} {(DQ ($ VSub_Name '$crlf'))} {(DQ ($ VSub_Name '$ceol'))} {(CRLF)} {(CRLF)} {(CRLF)} {(CRLF_mix_CR)} {(CRLF_nul)} ) (C {(checkout_files)} {(auto)} {(DQ ($ VSub_Name '$id'))} {(DQ (lf))} {(DQ ($ VSub_Name '$crlf'))} {(DQ ($ VSub_Name '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(checkout_files)} {(auto)} {(DQ ($ VSub_Name '$id'))} {(DQ (crlf))} {(DQ ($ VSub_Name '$crlf'))} {(DQ ($ VSub_Name '$ceol'))} {(CRLF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) ] spids: [3208 3443] ) spids: [3200 16777215] ) (C {(checkout_files)} {(DQ )} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(false)} {(DQ ($ VSub_Name '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(checkout_files)} {(DQ )} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(true)} {(DQ ($ VSub_Name '$ceol'))} {(CRLF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(checkout_files)} {(auto)} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(true)} {(DQ ($ VSub_Name '$ceol'))} {(CRLF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(true)} {(DQ ($ VSub_Name '$ceol'))} {(CRLF)} {(CRLF)} {(CRLF)} {(CRLF_mix_CR)} {(CRLF_nul)} ) (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(input)} {(DQ ($ VSub_Name '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(checkout_files)} {(auto)} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(input)} {(DQ ($ VSub_Name '$ceol'))} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) ] spids: [3192 3637] ) spids: [3184 16777215] ) (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(false)} {(crlf)} {(CRLF)} {(CRLF)} {(CRLF)} {(CRLF_mix_CR)} {(CRLF_nul)} ) (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(false)} {(lf)} {(LF)} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(false)} {(DQ )} {($ VSub_Name '$NL')} {(CRLF)} {($ VSub_Name '$MIX_CRLF_LF')} {($ VSub_Name '$MIX_LF_CR')} {($ VSub_Name '$LFNUL')} ) (C {(checkout_files)} {(text)} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(false)} {(native)} {($ VSub_Name '$NL')} {(CRLF)} {($ VSub_Name '$MIX_CRLF_LF')} {($ VSub_Name '$MIX_LF_CR')} {($ VSub_Name '$LFNUL')} ) (C {(checkout_files)} {(auto)} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(false)} {(DQ )} {($ VSub_Name '$NL')} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) (C {(checkout_files)} {(auto)} {(DQ ($ VSub_Name '$id'))} {(DQ )} {(false)} {(native)} {($ VSub_Name '$NL')} {(CRLF)} {(CRLF_mix_LF)} {(LF_mix_CR)} {(LF_nul)} ) ] spids: [3176 3809] ) spids: [3170 16777215] ) (C {(test_expect_success)} {(SQ <'ls-files --eol -d -z'>)} { (SQ <'\n'> < '\trm crlf_false_attr__CRLF.txt crlf_false_attr__CRLF_mix_LF.txt crlf_false_attr__LF.txt .gitattributes &&\n' > <'\tcat >expect <<-\\EOF &&\n'> <'\ti/crlf w/ crlf_false_attr__CRLF.txt\n'> <'\ti/lf w/ .gitattributes\n'> <'\ti/lf w/ crlf_false_attr__LF.txt\n'> <'\ti/mixed w/ crlf_false_attr__CRLF_mix_LF.txt\n'> <'\tEOF\n'> <'\tgit ls-files --eol -d |\n'> <'\tsed -e "s!attr/[^\t]*!!g" -e "s/\t/ /g" -e "s/ */ /g" |\n'> <'\tsort >actual &&\n'> <'\ttest_cmp expect actual\n'> ) } ) (C {(test_done)}) ] )