summaryrefslogtreecommitdiff
path: root/date.c
diff options
context:
space:
mode:
authorAndy Parkins <andyparkins@gmail.com>2007-09-28 14:17:31 (GMT)
committerJunio C Hamano <gitster@pobox.com>2007-09-30 03:31:59 (GMT)
commit856665f827c31ace3f19e672f8911f7f15f2a0e2 (patch)
tree879ca96783e856dc12fc37b8742c9a8b2bd9c44a /date.c
parent2a858ee95134926a0ccccb9a78db06bcb0bd65d0 (diff)
downloadgit-856665f827c31ace3f19e672f8911f7f15f2a0e2.zip
git-856665f827c31ace3f19e672f8911f7f15f2a0e2.tar.gz
git-856665f827c31ace3f19e672f8911f7f15f2a0e2.tar.bz2
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.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/date.c b/date.c
index 93bef6e..8f70500 100644
--- a/date.c
+++ b/date.c
@@ -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;