diff --git a/findutils/grep.c b/findutils/grep.c index 40caef423..0f1c11abb 100644 --- a/findutils/grep.c +++ b/findutils/grep.c @@ -254,7 +254,10 @@ static int grep_file(FILE *file) while (pattern_ptr) { gl = (grep_list_data_t *)pattern_ptr->data; if (FGREP_FLAG) { - found |= (strstr(line, gl->pattern) != NULL); + found |= (((option_mask32 & OPT_i) + ? strcasestr(line, gl->pattern) + : strstr(line, gl->pattern) + ) != NULL); } else { if (!(gl->flg_mem_alocated_compiled & COMPILED)) { gl->flg_mem_alocated_compiled |= COMPILED; diff --git a/testsuite/grep.tests b/testsuite/grep.tests index 8692307dd..d4bf80d83 100755 --- a/testsuite/grep.tests +++ b/testsuite/grep.tests @@ -75,6 +75,8 @@ testing "grep handles multiple regexps" "grep -e one -e two input ; echo \$?" \ "one\ntwo\n0\n" "one\ntwo\n" "" testing "grep -F handles multiple expessions" "grep -F -e one -e two input ; echo \$?" \ "one\ntwo\n0\n" "one\ntwo\n" "" +testing "grep -F handles -i" "grep -F -i foo input ; echo \$?" \ + "FOO\n0\n" "FOO\n" "" # -f file/- testing "grep can read regexps from stdin" "grep -f - input ; echo \$?" \