Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> writes: > -F means "no regex", not "case sensitive" so it should not override -i That logic is flawed, isn't it? "-F" means "no regex", so it should not touch opt.regflags at all. > Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> > --- > builtin/grep.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/builtin/grep.c b/builtin/grep.c > index 5526fd7..4be0df5 100644 > --- a/builtin/grep.c > +++ b/builtin/grep.c > @@ -809,7 +809,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix) > > if (!opt.pattern_list) > die(_("no pattern given.")); > - if (!opt.fixed && opt.ignore_case) > + if (opt.ignore_case) > opt.regflags |= REG_ICASE; > > compile_grep_patterns(&opt); In grep.c, we do this: static void compile_regexp(struct grep_pat *p, struct grep_opt *opt) { int err; p->word_regexp = opt->word_regexp; p->ignore_case = opt->ignore_case; if (opt->fixed || is_fixed(p->pattern, p->patternlen)) p->fixed = 1; else p->fixed = 0; if (p->fixed) { if (opt->regflags & REG_ICASE || p->ignore_case) p->kws = kwsalloc(tolower_trans_tbl); else It is possible that your later changes _depend_ on having REG_ICASE set in opt->regflags, but if that is why this commit is needed, then you are going in a wrong direction. I liked the overall objective of making "-i" work better on non-ASCII, and I wanted to like this whole series, but at least this change needs to be dropped (and the remainder of the series fixed if they depend on this change). Thanks. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html