From: Junio C Hamano Date: Wed, 17 May 2006 10:04:14 +0000 (-0700) Subject: Merge branch 'ew/pretty-fmt' into next X-Git-Tag: v1.4.1-rc1~96 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=aedb8995f841949ce29e05ea7e5c03c2d5466089;p=git.git Merge branch 'ew/pretty-fmt' into next * ew/pretty-fmt: commit: allow --pretty= args to be abbreviated Conflicts: commit.c - adjust to --pretty=email --- aedb8995f841949ce29e05ea7e5c03c2d5466089 diff --cc commit.c index 93b3903ea,4a26070c1..84558bac2 --- a/commit.c +++ b/commit.c @@@ -22,25 -22,33 +22,34 @@@ struct sort_nod const char *commit_type = "commit"; + struct cmt_fmt_map { + const char *n; + size_t cmp_len; + enum cmit_fmt v; + } cmt_fmts[] = { + { "raw", 1, CMIT_FMT_RAW }, + { "medium", 1, CMIT_FMT_MEDIUM }, + { "short", 1, CMIT_FMT_SHORT }, ++ { "email", 1, CMIT_FMT_EMAIL }, + { "full", 5, CMIT_FMT_FULL }, + { "fuller", 5, CMIT_FMT_FULLER }, + { "oneline", 1, CMIT_FMT_ONELINE }, + }; + enum cmit_fmt get_commit_format(const char *arg) { - if (!*arg) + int i; + + if (!arg || !*arg) return CMIT_FMT_DEFAULT; - if (!strcmp(arg, "=raw")) - return CMIT_FMT_RAW; - if (!strcmp(arg, "=medium")) - return CMIT_FMT_MEDIUM; - if (!strcmp(arg, "=short")) - return CMIT_FMT_SHORT; - if (!strcmp(arg, "=full")) - return CMIT_FMT_FULL; - if (!strcmp(arg, "=fuller")) - return CMIT_FMT_FULLER; - if (!strcmp(arg, "=email")) - return CMIT_FMT_EMAIL; - if (!strcmp(arg, "=oneline")) - return CMIT_FMT_ONELINE; - die("invalid --pretty format"); + if (*arg == '=') + arg++; + for (i = 0; i < ARRAY_SIZE(cmt_fmts); i++) { + if (!strncmp(arg, cmt_fmts[i].n, cmt_fmts[i].cmp_len)) + return cmt_fmts[i].v; + } + + die("invalid --pretty format: %s", arg); } static struct commit *check_commit(struct object *obj,