#!/bin/sh global test_description := ''grep icase on non-English locales'' source ./lib-gettext.sh test_expect_success GETTEXT_LOCALE 'setup' ' test_write_lines "TILRAUN: Halló Heimur!" >file && git add file && LC_ALL="$is_IS_locale" && export LC_ALL ' test_have_prereq GETTEXT_LOCALE && test-regex "HALLÓ" "Halló" ICASE && test_set_prereq REGEX_LOCALE test_expect_success REGEX_LOCALE 'grep literal string, no -F' ' git grep -i "TILRAUN: Halló Heimur!" && git grep -i "TILRAUN: HALLÓ HEIMUR!" ' test_expect_success GETTEXT_LOCALE,LIBPCRE 'grep pcre utf-8 icase' ' git grep --perl-regexp "TILRAUN: H.lló Heimur!" && git grep --perl-regexp -i "TILRAUN: H.lló Heimur!" && git grep --perl-regexp -i "TILRAUN: H.LLÓ HEIMUR!" ' test_expect_success GETTEXT_LOCALE,LIBPCRE 'grep pcre utf-8 string with "+"' ' test_write_lines "TILRAUN: Hallóó Heimur!" >file2 && git add file2 && git grep -l --perl-regexp "TILRAUN: H.lló+ Heimur!" >actual && echo file >expected && echo file2 >>expected && test_cmp expected actual ' test_expect_success REGEX_LOCALE 'grep literal string, with -F' ' git grep --debug -i -F "TILRAUN: Halló Heimur!" 2>&1 >/dev/null | grep fixed >debug1 && test_write_lines "fixed TILRAUN: Halló Heimur!" >expect1 && test_cmp expect1 debug1 && git grep --debug -i -F "TILRAUN: HALLÓ HEIMUR!" 2>&1 >/dev/null | grep fixed >debug2 && test_write_lines "fixed TILRAUN: HALLÓ HEIMUR!" >expect2 && test_cmp expect2 debug2 ' test_expect_success REGEX_LOCALE 'grep string with regex, with -F' ' test_write_lines "^*TILR^AUN:.* \\Halló \$He[]imur!\$" >file && git grep --debug -i -F "^*TILR^AUN:.* \\Halló \$He[]imur!\$" 2>&1 >/dev/null | grep fixed >debug1 && test_write_lines "fixed \\^*TILR^AUN:\\.\\* \\\\Halló \$He\\[]imur!\\\$" >expect1 && test_cmp expect1 debug1 && git grep --debug -i -F "^*TILR^AUN:.* \\HALLÓ \$HE[]IMUR!\$" 2>&1 >/dev/null | grep fixed >debug2 && test_write_lines "fixed \\^*TILR^AUN:\\.\\* \\\\HALLÓ \$HE\\[]IMUR!\\\$" >expect2 && test_cmp expect2 debug2 ' test_expect_success REGEX_LOCALE 'pickaxe -i on non-ascii' ' git commit -m first && git log --format=%f -i -S"TILRAUN: HALLÓ HEIMUR!" >actual && echo first >expected && test_cmp expected actual ' test_done (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"grep icase on non-English locales">)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./lib-gettext.sh)}) (C {(test_expect_success)} {(GETTEXT_LOCALE)} {(SQ )} { (SQ <"\n"> <"\ttest_write_lines \"TILRAUN: Hall\u00f3 Heimur!\" >file &&\n"> <"\tgit add file &&\n"> <"\tLC_ALL=\"$is_IS_locale\" &&\n"> <"\texport LC_ALL\n"> ) } ) (AndOr children: [ (C {(test_have_prereq)} {(GETTEXT_LOCALE)}) (AndOr children: [ (C {(test-regex)} {(DQ ("HALL\u00d3"))} {(DQ ("Hall\u00f3"))} {(ICASE)}) (C {(test_set_prereq)} {(REGEX_LOCALE)}) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (C {(test_expect_success)} {(REGEX_LOCALE)} {(SQ <"grep literal string, no -F">)} { (SQ <"\n"> <"\tgit grep -i \"TILRAUN: Hall\u00f3 Heimur!\" &&\n"> <"\tgit grep -i \"TILRAUN: HALL\u00d3 HEIMUR!\"\n"> ) } ) (C {(test_expect_success)} {(GETTEXT_LOCALE) (Lit_Comma ",") (LIBPCRE)} {(SQ <"grep pcre utf-8 icase">)} { (SQ <"\n"> <"\tgit grep --perl-regexp \"TILRAUN: H.ll\u00f3 Heimur!\" &&\n"> <"\tgit grep --perl-regexp -i \"TILRAUN: H.ll\u00f3 Heimur!\" &&\n"> <"\tgit grep --perl-regexp -i \"TILRAUN: H.LL\u00d3 HEIMUR!\"\n"> ) } ) (C {(test_expect_success)} {(GETTEXT_LOCALE) (Lit_Comma ",") (LIBPCRE)} {(SQ <"grep pcre utf-8 string with \"+\"">)} { (SQ <"\n"> <"\ttest_write_lines \"TILRAUN: Hall\u00f3\u00f3 Heimur!\" >file2 &&\n"> <"\tgit add file2 &&\n"> <"\tgit grep -l --perl-regexp \"TILRAUN: H.ll\u00f3+ Heimur!\" >actual &&\n"> <"\techo file >expected &&\n"> <"\techo file2 >>expected &&\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_expect_success)} {(REGEX_LOCALE)} {(SQ <"grep literal string, with -F">)} { (SQ <"\n"> <"\tgit grep --debug -i -F \"TILRAUN: Hall\u00f3 Heimur!\" 2>&1 >/dev/null |\n"> <"\t\t grep fixed >debug1 &&\n"> <"\ttest_write_lines \"fixed TILRAUN: Hall\u00f3 Heimur!\" >expect1 &&\n"> <"\ttest_cmp expect1 debug1 &&\n"> <"\n"> <"\tgit grep --debug -i -F \"TILRAUN: HALL\u00d3 HEIMUR!\" 2>&1 >/dev/null |\n"> <"\t\t grep fixed >debug2 &&\n"> <"\ttest_write_lines \"fixed TILRAUN: HALL\u00d3 HEIMUR!\" >expect2 &&\n"> <"\ttest_cmp expect2 debug2\n"> ) } ) (C {(test_expect_success)} {(REGEX_LOCALE)} {(SQ <"grep string with regex, with -F">)} { (SQ <"\n"> <"\ttest_write_lines \"^*TILR^AUN:.* \\\\Hall\u00f3 \\$He[]imur!\\$\" >file &&\n"> <"\n"> <"\tgit grep --debug -i -F \"^*TILR^AUN:.* \\\\Hall\u00f3 \\$He[]imur!\\$\" 2>&1 >/dev/null |\n"> <"\t\t grep fixed >debug1 &&\n"> < "\ttest_write_lines \"fixed \\\\^*TILR^AUN:\\\\.\\\\* \\\\\\\\Hall\u00f3 \\$He\\\\[]imur!\\\\\\$\" >expect1 &&\n" > <"\ttest_cmp expect1 debug1 &&\n"> <"\n"> < "\tgit grep --debug -i -F \"^*TILR^AUN:.* \\\\HALL\u00d3 \\$HE[]IMUR!\\$\" 2>&1 >/dev/null |\n" > <"\t\t grep fixed >debug2 &&\n"> < "\ttest_write_lines \"fixed \\\\^*TILR^AUN:\\\\.\\\\* \\\\\\\\HALL\u00d3 \\$HE\\\\[]IMUR!\\\\\\$\" >expect2 &&\n" > <"\ttest_cmp expect2 debug2\n"> ) } ) (C {(test_expect_success)} {(REGEX_LOCALE)} {(SQ <"pickaxe -i on non-ascii">)} { (SQ <"\n"> <"\tgit commit -m first &&\n"> <"\tgit log --format=%f -i -S\"TILRAUN: HALL\u00d3 HEIMUR!\" >actual &&\n"> <"\techo first >expected &&\n"> <"\ttest_cmp expected actual\n"> ) } ) (C {(test_done)}) ] )