зеркало из https://github.com/microsoft/git.git
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>
This commit is contained in:
Родитель
2a858ee951
Коммит
856665f827
1
cache.h
1
cache.h
|
@ -432,6 +432,7 @@ const char *show_date(unsigned long time, int timezone, enum date_mode mode);
|
|||
int parse_date(const char *date, char *buf, int bufsize);
|
||||
void datestamp(char *buf, int bufsize);
|
||||
unsigned long approxidate(const char *);
|
||||
enum date_mode parse_date_format(const char *format);
|
||||
|
||||
extern const char *git_author_info(int);
|
||||
extern const char *git_committer_info(int);
|
||||
|
|
20
date.c
20
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;
|
||||
|
|
17
revision.c
17
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")) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче