From: Shawn O. Pearce Date: Mon, 19 Feb 2007 20:12:49 GMT Subject: Re: [PATCH] Change "refs/" references to symbolic constants Message-ID: <20070219201249.GC27565@spearce.org> In-Reply-To: <7vlkit7vy5.fsf@assigned-by-dhcp.cox.net> Junio C Hamano wrote: > > 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.