Skip to content

Commit

Permalink
strbuf: use skip_prefix() in strbuf_addftime()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
rscharfe authored and gitster committed Jul 17, 2023
1 parent da269af commit 945c722
Showing 1 changed file with 6 additions and 18 deletions.
24 changes: 6 additions & 18 deletions strbuf.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down

0 comments on commit 945c722

Please sign in to comment.