From: Joshua Juran Date: Tue, 03 May 2011 01:57:42 GMT Subject: Re: [Annoyance] "git log .." thinks ".." is ambiguous Message-ID: In-Reply-To: <7vr58glxro.fsf@alter.siamese.dyndns.org> On May 2, 2011, at 12:15 PM, Junio C Hamano wrote: > diff --git a/revision.c b/revision.c > index f4b8b38..26271d1 100644 > --- a/revision.c > +++ b/revision.c > @@ -905,14 +905,26 @@ int handle_revision_arg(const char *arg, > struct rev_info *revs, > const char *this = arg; > int symmetric = *next == '.'; > unsigned int flags_exclude = flags ^ UNINTERESTING; > + static const char head_by_default[] = "HEAD"; > > *dotdot = 0; > next += symmetric; > > if (!*next) > - next = "HEAD"; > + next = head_by_default; > if (dotdot == arg) > - this = "HEAD"; > + this = head_by_default; > + if (this == head_by_default && next == head_by_default && > + !symmetric) { Is there a reason not to write const char *head_by_default = "HEAD"; or even const char *const head_by_default = "HEAD"; instead? Loading a static array and checking an init flag is a pessimization versus just pointing into a read-only segment. Josh