diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-08-03 11:01:27 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-08-03 11:01:27 -0700 |
commit | d939af12bd96db7ad3e671a0585ad8570aa7e9d3 (patch) | |
tree | 5772ac1192ed299db657ffcfbc71c318521db653 /builtin/blame.c | |
parent | 980a3d3dd742d534b394b04e578c2de5e3ee4793 (diff) | |
parent | e4f031e34b08e3217c10942e682920a6939308a0 (diff) | |
download | git-d939af12bd96db7ad3e671a0585ad8570aa7e9d3.tar.gz |
Merge branch 'jk/date-mode-format'
Teach "git log" and friends a new "--date=format:..." option to
format timestamps using system's strftime(3).
* jk/date-mode-format:
strbuf: make strbuf_addftime more robust
introduce "format" date-mode
convert "enum date_mode" into a struct
show-branch: use DATE_RELATIVE instead of magic number
Diffstat (limited to 'builtin/blame.c')
-rw-r--r-- | builtin/blame.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/builtin/blame.c b/builtin/blame.c index 272a222687..04e4864f8b 100644 --- a/builtin/blame.c +++ b/builtin/blame.c @@ -51,7 +51,7 @@ static int xdl_opts; static int abbrev = -1; static int no_whole_file_rename; -static enum date_mode blame_date_mode = DATE_ISO8601; +static struct date_mode blame_date_mode = { DATE_ISO8601 }; static size_t blame_date_width; static struct string_list mailmap; @@ -1828,7 +1828,7 @@ static const char *format_time(unsigned long time, const char *tz_str, size_t time_width; int tz; tz = atoi(tz_str); - time_str = show_date(time, tz, blame_date_mode); + time_str = show_date(time, tz, &blame_date_mode); strbuf_addstr(&time_buf, time_str); /* * Add space paddings to time_buf to display a fixed width @@ -2188,7 +2188,7 @@ static int git_blame_config(const char *var, const char *value, void *cb) if (!strcmp(var, "blame.date")) { if (!value) return config_error_nonbool(var); - blame_date_mode = parse_date_format(value); + parse_date_format(value, &blame_date_mode); return 0; } @@ -2570,13 +2570,13 @@ parse_done: if (cmd_is_annotate) { output_option |= OUTPUT_ANNOTATE_COMPAT; - blame_date_mode = DATE_ISO8601; + blame_date_mode.type = DATE_ISO8601; } else { blame_date_mode = revs.date_mode; } /* The maximum width used to show the dates */ - switch (blame_date_mode) { + switch (blame_date_mode.type) { case DATE_RFC2822: blame_date_width = sizeof("Thu, 19 Oct 2006 16:00:04 -0700"); break; @@ -2605,6 +2605,9 @@ parse_done: case DATE_NORMAL: blame_date_width = sizeof("Thu Oct 19 16:00:04 2006 -0700"); break; + case DATE_STRFTIME: + blame_date_width = strlen(show_date(0, 0, &blame_date_mode)) + 1; /* add the null */ + break; } blame_date_width -= 1; /* strip the null */ |