threads / patch / 59993

patchstrbuf: use skip_prefix() in strbuf_addftime()

Subject: [PATCH] strbuf: use skip_prefix() in strbuf_addftime()

## tl;dr

One message between Jul 16, 2023 and Jul 16, 2023. Diffs are folded; open one to read it.

replies: 0people: 1as markdown or json

René Scharfe· Jul 16, 2023, 08:52 UTC · lore

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>
---
 strbuf.c | 24 ++++++------------------
 1 file changed, 6 insertions(+), 18 deletions(-)
Show changes to strbuf.c +6 −19
diff --git a/strbuf.c b/strbuf.c
index 399242684b..837975ef9c 100644
--- a/strbuf.c
+++ b/strbuf.c
@@ -935,31 +935,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;

--
2.41.0

← back to recent threads