diff --git a/cache.h b/cache.h index 7f209794ba..e589918320 100644 --- a/cache.h +++ b/cache.h @@ -242,7 +242,7 @@ extern void *read_object_with_reference(const unsigned char *sha1, unsigned char *sha1_ret); const char *show_date(unsigned long time, int timezone); -void parse_date(const char *date, char *buf, int bufsize); +int parse_date(const char *date, char *buf, int bufsize); void datestamp(char *buf, int bufsize); extern int setup_ident(void); diff --git a/date.c b/date.c index b46f2ce344..8d7b2eb99f 100644 --- a/date.c +++ b/date.c @@ -388,7 +388,7 @@ static int match_tz(const char *date, int *offp) /* Gr. strptime is crap for this; it doesn't have a way to require RFC2822 (i.e. English) day/month names, and it doesn't work correctly with %z. */ -void parse_date(const char *date, char *result, int maxlen) +int parse_date(const char *date, char *result, int maxlen) { struct tm tm; int offset, sign, tm_gmt; @@ -431,7 +431,7 @@ void parse_date(const char *date, char *result, int maxlen) offset = (then - mktime(&tm)) / 60; if (then == -1) - return; + return -1; if (!tm_gmt) then -= offset * 60; @@ -442,7 +442,7 @@ void parse_date(const char *date, char *result, int maxlen) sign = '-'; } - snprintf(result, maxlen, "%lu %c%02d%02d", then, sign, offset/60, offset % 60); + return snprintf(result, maxlen, "%lu %c%02d%02d", then, sign, offset/60, offset % 60); } void datestamp(char *buf, int bufsize)