From: Junio C Hamano Date: Tue, 03 Sep 2013 20:46:05 GMT Subject: Re: [PATCH 2/1 alt] peel_onion: do not assume length of x_type globals Message-ID: In-Reply-To: <20130903202729.GA26217@sigill.intra.peff.net> Jeff King writes: > If you _really_ wanted to abstract it, you could make commit_type a > macro and use string concatenation along with prefixcmp. But that is > going in the direction of less readable, I think. :) ;-) we are on the same wave-length. Thanks, will apply. > > This has probably consumed enough brain cycles for such a small and > probably unimportant cleanup. I'll let Junio pick from the 2 options (or > choose to do nothing at all) as he sees fit. > > sha1_name.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/sha1_name.c b/sha1_name.c > index 6dc496d..2f6e5ab 100644 > --- a/sha1_name.c > +++ b/sha1_name.c > @@ -677,13 +677,13 @@ static int peel_onion(const char *name, int len, unsigned char *sha1) > return -1; > > sp++; /* beginning of type name, or closing brace for empty */ > - if (!strncmp(commit_type, sp, 6) && sp[6] == '}') > + if (!prefixcmp(sp, "commit}")) > expected_type = OBJ_COMMIT; > - else if (!strncmp(tag_type, sp, 3) && sp[3] == '}') > + else if (!prefixcmp(sp, "tag}")) > expected_type = OBJ_TAG; > - else if (!strncmp(tree_type, sp, 4) && sp[4] == '}') > + else if (!prefixcmp(sp, "tree}")) > expected_type = OBJ_TREE; > - else if (!strncmp(blob_type, sp, 4) && sp[4] == '}') > + else if (!prefixcmp(sp, "blob}")) > expected_type = OBJ_BLOB; > else if (!prefixcmp(sp, "object}")) > expected_type = OBJ_ANY;