summaryrefslogtreecommitdiff
path: root/revision.c
diff options
context:
space:
mode:
authorAndy Parkins <andyparkins@gmail.com>2007-09-28 15:17:31 +0100
committerJunio C Hamano <gitster@pobox.com>2007-09-29 20:31:59 -0700
commit856665f827c31ace3f19e672f8911f7f15f2a0e2 (patch)
tree879ca96783e856dc12fc37b8742c9a8b2bd9c44a /revision.c
parent2a858ee95134926a0ccccb9a78db06bcb0bd65d0 (diff)
downloadgit-856665f827c31ace3f19e672f8911f7f15f2a0e2.tar.gz
parse_date_format(): convert a format name to an enum date_mode
Factor out the code to parse --date=<format> parameter to revision walkers into a separate function, parse_date_format(). This function is passed a string and converts it to an enum date_format: - "relative" => DATE_RELATIVE - "iso8601" or "iso" => DATE_ISO8601 - "rfc2822" => DATE_RFC2822 - "short" => DATE_SHORT - "local" => DATE_LOCAL - "default" => DATE_NORMAL In the event that none of these strings is found, the function die()s. Signed-off-by: Andy Parkins <andyparkins@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'revision.c')
-rw-r--r--revision.c17
1 files changed, 1 insertions, 16 deletions
diff --git a/revision.c b/revision.c
index 658471385c..5d294be308 100644
--- a/revision.c
+++ b/revision.c
@@ -1134,22 +1134,7 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch
continue;
}
if (!strncmp(arg, "--date=", 7)) {
- if (!strcmp(arg + 7, "relative"))
- revs->date_mode = DATE_RELATIVE;
- else if (!strcmp(arg + 7, "iso8601") ||
- !strcmp(arg + 7, "iso"))
- revs->date_mode = DATE_ISO8601;
- else if (!strcmp(arg + 7, "rfc2822") ||
- !strcmp(arg + 7, "rfc"))
- revs->date_mode = DATE_RFC2822;
- else if (!strcmp(arg + 7, "short"))
- revs->date_mode = DATE_SHORT;
- else if (!strcmp(arg + 7, "local"))
- revs->date_mode = DATE_LOCAL;
- else if (!strcmp(arg + 7, "default"))
- revs->date_mode = DATE_NORMAL;
- else
- die("unknown date format %s", arg);
+ revs->date_mode = parse_date_format(arg + 7);
continue;
}
if (!strcmp(arg, "--log-size")) {