Re: [PATCH] Change "refs/" references to symbolic constants
- From
Shawn O. Pearce <spearce@spearce.org>
- Date
- Feb 19, 2007, 20:12 UTC
- Message-ID
- <20070219201249.GC27565@spearce.org>
- In-Reply-To
- <7vlkit7vy5.fsf@assigned-by-dhcp.cox.net>
Junio C Hamano <junkio@cox.net> wrote:
Show 21 quoted lines
> > diff --git a/builtin-pack-refs.c b/builtin-pack-refs.c
> > index 3de9b3e..ac7543d 100644
> > --- a/builtin-pack-refs.c
> > +++ b/builtin-pack-refs.c
> > @@ -36,7 +36,7 @@ static int handle_one_ref(const char *path, const unsigned char *sha1,
> > /* Do not pack the symbolic refs */
> > if ((flags & REF_ISSYMREF))
> > return 0;
> > - is_tag_ref = !strncmp(path, "refs/tags/", 10);
> > + is_tag_ref = !strncmp(path, PATH_REFS_TAGS, STRLEN_PATH_REFS_TAGS);
>
> These repeated strncmp(p, X, STRLEN_X) almost makes me wonder if we
> want to introduce:
>
> inline int prefixcmp(a, b)
> {
> return (strncmp(a, b, strlen(b));
> }
>
> with clever preprocessor optimization to have compiler do strlen()
> when b is a string literal.This may be worthwhile. We use strncmp so often in Git that I tend to write strncmp even when I mean strcmp. Yes, my fingers are trained to write strncmp, and only strncmp... *sigh* At least the compiler checks for me. ;-)
-- Shawn.