strbuf: change an always NULL/"" strbuf_addftime() param to bool
strbuf_addftime() allows callers to pass a time zone name for expanding %Z. The only current caller either passes the empty string or NULL, in which case %Z is handed over verbatim to strftime(3). Replace that string parameter with a flag controlling whether to remove %Z from the format specification. This simplifies the code. Commit-message-by: René Scharfe <l.s.r@web.de> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
4904cbc9e1
commit
3b702239d6
2
date.c
2
date.c
@ -243,7 +243,7 @@ const char *show_date(unsigned long time, int tz, const struct date_mode *mode)
|
|||||||
tm->tm_hour, tm->tm_min, tm->tm_sec, tz);
|
tm->tm_hour, tm->tm_min, tm->tm_sec, tz);
|
||||||
else if (mode->type == DATE_STRFTIME)
|
else if (mode->type == DATE_STRFTIME)
|
||||||
strbuf_addftime(&timebuf, mode->strftime_fmt, tm, tz,
|
strbuf_addftime(&timebuf, mode->strftime_fmt, tm, tz,
|
||||||
mode->local ? NULL : "");
|
!mode->local);
|
||||||
else
|
else
|
||||||
strbuf_addf(&timebuf, "%.3s %.3s %d %02d:%02d:%02d %d%c%+05d",
|
strbuf_addf(&timebuf, "%.3s %.3s %d %02d:%02d:%02d %d%c%+05d",
|
||||||
weekday_names[tm->tm_wday],
|
weekday_names[tm->tm_wday],
|
||||||
|
5
strbuf.c
5
strbuf.c
@ -786,7 +786,7 @@ char *xstrfmt(const char *fmt, ...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void strbuf_addftime(struct strbuf *sb, const char *fmt, const struct tm *tm,
|
void strbuf_addftime(struct strbuf *sb, const char *fmt, const struct tm *tm,
|
||||||
int tz_offset, const char *tz_name)
|
int tz_offset, int suppress_tz_name)
|
||||||
{
|
{
|
||||||
struct strbuf munged_fmt = STRBUF_INIT;
|
struct strbuf munged_fmt = STRBUF_INIT;
|
||||||
size_t hint = 128;
|
size_t hint = 128;
|
||||||
@ -815,8 +815,7 @@ void strbuf_addftime(struct strbuf *sb, const char *fmt, const struct tm *tm,
|
|||||||
fmt++;
|
fmt++;
|
||||||
break;
|
break;
|
||||||
case 'Z':
|
case 'Z':
|
||||||
if (tz_name) {
|
if (suppress_tz_name) {
|
||||||
strbuf_addstr(&munged_fmt, tz_name);
|
|
||||||
fmt++;
|
fmt++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
5
strbuf.h
5
strbuf.h
@ -343,11 +343,12 @@ extern void strbuf_vaddf(struct strbuf *sb, const char *fmt, va_list ap);
|
|||||||
* `tz_offset` is in decimal hhmm format, e.g. -600 means six hours west
|
* `tz_offset` is in decimal hhmm format, e.g. -600 means six hours west
|
||||||
* of Greenwich, and it's used to expand %z internally. However, tokens
|
* of Greenwich, and it's used to expand %z internally. However, tokens
|
||||||
* with modifiers (e.g. %Ez) are passed to `strftime`.
|
* with modifiers (e.g. %Ez) are passed to `strftime`.
|
||||||
* `tz_name` is used to expand %Z internally unless it's NULL.
|
* `suppress_tz_name`, when set, expands %Z internally to the empty
|
||||||
|
* string rather than passing it to `strftime`.
|
||||||
*/
|
*/
|
||||||
extern void strbuf_addftime(struct strbuf *sb, const char *fmt,
|
extern void strbuf_addftime(struct strbuf *sb, const char *fmt,
|
||||||
const struct tm *tm, int tz_offset,
|
const struct tm *tm, int tz_offset,
|
||||||
const char *tz_name);
|
int suppress_tz_name);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Read a given size of data from a FILE* pointer to the buffer.
|
* Read a given size of data from a FILE* pointer to the buffer.
|
||||||
|
Loading…
Reference in New Issue
Block a user