Re: [PATCH 2/4] diff.c: associate a flag with each pattern and use it for compiling regex
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 18, 2008, 07:12 UTC
- Message-ID
- <7vod2myljk.fsf@gitster.siamese.dyndns.org>
- In-Reply-To
- <48D1F80C.5030502@op5.se>
Andreas Ericsson <ae@op5.se> writes:
Show 13 quoted lines
> Junio C Hamano wrote:
> ...
>>> static struct funcname_pattern {
>>> char *name;
>>> char *pattern;
>>> + int cflags;
>>
>> What does "C" stand for?
>
> "compile". It's the same name as regcomp(3) uses for the flags being
> used to compile the regular expression. The full mnemonic name would
> be regex_compile_flag, which is a bit unwieldy. Perhaps regcomp_flags
> would be a good compromise?Ah, I see.
When I saw that new field for the first time, I didn't think it will be used to store the bare flag values regcomp/regexec library would accept directly (I expected we would see #define or enum to tweak our own set of features, not limiting ourselves EXTENDED/ICASE etc. that regcomp/regexec library supports)
IOW, it just did not click for me to look at "man 3 regcomp" which says:
int regcomp(regex_t *preg, const char *regex, int cflags);
So unless others feel that we might get a better layering separation by not storing REG_EXTENDED and stuff directly in that field (which was my initial reaction without looking at 4/4 which does store REG_EXTENDED there without our own enums), cflag is perfectly a good name here.
Thanks --- I am bit under the weather and not thinking quite straight.