From: Eric Wong Date: Fri, 02 Feb 2007 13:17:53 GMT Subject: Re: precise keyword matching for pretty switch Message-ID: <20070202131752.GA32248@localdomain> In-Reply-To: <20070201224339.GA29666@hermes.lan.home.vilz.de> Nicolas Vilz wrote: > hi, > > i noticed today, that the pretty-switch in git-log -diff and many other > tools triggers to "oneline" if you just type an "o" after --pretty= > > so, not only > > git log --pretty=oneline > > but also > > git log --pretty=online > git log --pretty=offline > git log --pretty=omfg Oops, that's unexpected. > and finally (just to make it short *G*) > > git log --pretty=osolomio > > does trigger the oneline-feature. Perhaps this is not intended to work > as it works now. I would recommend, that the switch should only accept > the fully matched keyword and not just a lowercase "o" as the first > letter of the keywords following after --pretty=, just to prevent people > getting bad habbits. No. The abbreviations are intentional. It's anything but a bad habit. --pretty=o --pretty=on --pretty=one --pretty=onel --pretty=oneli --pretty=onelin --pretty=oneline are all valid abbreviations. I'm a lazy git :) I also intend to resurrect gitopt in some form in the near future... From: Eric Wong Date: Fri, 2 Feb 2007 05:10:25 -0800 Subject: [PATCH] Disallow invalid --pretty= abbreviations --pretty=o is a valid abbreviation, --pretty=omfg is not Noticed by: Nicolas Vilz Signed-off-by: Eric Wong --- commit.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/commit.c b/commit.c index 9b2b842..3e8c872 100644 --- a/commit.c +++ b/commit.c @@ -47,7 +47,8 @@ enum cmit_fmt get_commit_format(const char *arg) if (*arg == '=') arg++; for (i = 0; i < ARRAY_SIZE(cmt_fmts); i++) { - if (!strncmp(arg, cmt_fmts[i].n, cmt_fmts[i].cmp_len)) + if (!strncmp(arg, cmt_fmts[i].n, cmt_fmts[i].cmp_len) && + !strncmp(arg, cmt_fmts[i].n, strlen(arg))) return cmt_fmts[i].v; } -- Eric Wong