зеркало из https://github.com/microsoft/git.git
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:
Родитель
4904cbc9e1
Коммит
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);
|
||||
else if (mode->type == DATE_STRFTIME)
|
||||
strbuf_addftime(&timebuf, mode->strftime_fmt, tm, tz,
|
||||
mode->local ? NULL : "");
|
||||
!mode->local);
|
||||
else
|
||||
strbuf_addf(&timebuf, "%.3s %.3s %d %02d:%02d:%02d %d%c%+05d",
|
||||
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,
|
||||
int tz_offset, const char *tz_name)
|
||||
int tz_offset, int suppress_tz_name)
|
||||
{
|
||||
struct strbuf munged_fmt = STRBUF_INIT;
|
||||
size_t hint = 128;
|
||||
|
@ -815,8 +815,7 @@ void strbuf_addftime(struct strbuf *sb, const char *fmt, const struct tm *tm,
|
|||
fmt++;
|
||||
break;
|
||||
case 'Z':
|
||||
if (tz_name) {
|
||||
strbuf_addstr(&munged_fmt, tz_name);
|
||||
if (suppress_tz_name) {
|
||||
fmt++;
|
||||
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
|
||||
* of Greenwich, and it's used to expand %z internally. However, tokens
|
||||
* 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,
|
||||
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.
|
||||
|
|
Загрузка…
Ссылка в новой задаче