diff options
author | Andy Parkins <andyparkins@gmail.com> | 2007-09-28 15:17:31 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-09-29 20:31:59 -0700 |
commit | 856665f827c31ace3f19e672f8911f7f15f2a0e2 (patch) | |
tree | 879ca96783e856dc12fc37b8742c9a8b2bd9c44a /date.c | |
parent | Merge branch 'gr/smtp' (diff) | |
download | tgif-856665f827c31ace3f19e672f8911f7f15f2a0e2.tar.xz |
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 'date.c')
-rw-r--r-- | date.c | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -584,6 +584,26 @@ int parse_date(const char *date, char *result, int maxlen) return date_string(then, offset, result, maxlen); } +enum date_mode parse_date_format(const char *format) +{ + if (!strcmp(format, "relative")) + return DATE_RELATIVE; + else if (!strcmp(format, "iso8601") || + !strcmp(format, "iso")) + return DATE_ISO8601; + else if (!strcmp(format, "rfc2822") || + !strcmp(format, "rfc")) + return DATE_RFC2822; + else if (!strcmp(format, "short")) + return DATE_SHORT; + else if (!strcmp(format, "local")) + return DATE_LOCAL; + else if (!strcmp(format, "default")) + return DATE_NORMAL; + else + die("unknown date format %s", format); +} + void datestamp(char *buf, int bufsize) { time_t now; |