diff options
author | René Scharfe <l.s.r@web.de> | 2023-07-16 11:52:33 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2023-07-17 19:24:49 +0300 |
commit | 945c72250afcf50a0f5394151b76d5da28fa6f94 (patch) | |
tree | c786b61430c16339fd61ba978124ac94df7ff28e /strbuf.c | |
parent | da269af9207e38e820daad8aa993caa7d2fad76c (diff) |
strbuf: use skip_prefix() in strbuf_addftime()
Use the now common skip_prefix() cascade instead of a case statement to
parse the strftime(3) format in strbuf_addftime(). skip_prefix() parses
the "fmt" pointer and advances it appropriately, making additional
pointer arithmetic unnecessary. The resulting code is more compact and
consistent with most other strbuf_expand_step() loops.
Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'strbuf.c')
-rw-r--r-- | strbuf.c | 24 |
1 files changed, 6 insertions, 18 deletions
@@ -996,31 +996,19 @@ void strbuf_addftime(struct strbuf *sb, const char *fmt, const struct tm *tm, * of seconds. */ while (strbuf_expand_step(&munged_fmt, &fmt)) { - switch (*fmt) { - case '%': + if (skip_prefix(fmt, "%", &fmt)) strbuf_addstr(&munged_fmt, "%%"); - fmt++; - break; - case 's': + else if (skip_prefix(fmt, "s", &fmt)) strbuf_addf(&munged_fmt, "%"PRItime, (timestamp_t)tm_to_time_t(tm) - 3600 * (tz_offset / 100) - 60 * (tz_offset % 100)); - fmt++; - break; - case 'z': + else if (skip_prefix(fmt, "z", &fmt)) strbuf_addf(&munged_fmt, "%+05d", tz_offset); - fmt++; - break; - case 'Z': - if (suppress_tz_name) { - fmt++; - break; - } - /* FALLTHROUGH */ - default: + else if (suppress_tz_name && skip_prefix(fmt, "Z", &fmt)) + ; /* nothing */ + else strbuf_addch(&munged_fmt, '%'); - } } fmt = munged_fmt.buf; |