diff options
author | René Scharfe <l.s.r@web.de> | 2023-06-17 22:43:17 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2023-06-18 21:55:30 +0200 |
commit | 6f1e2d52797161c7effe4d1388765de3dbd80bbf (patch) | |
tree | f00abffad5e1956a300923be11f2ba8ef2f53d1d /strbuf.c | |
parent | replace strbuf_expand_dict_cb() with strbuf_expand_step() (diff) | |
download | git-6f1e2d52797161c7effe4d1388765de3dbd80bbf.tar.xz git-6f1e2d52797161c7effe4d1388765de3dbd80bbf.zip |
replace strbuf_expand() with strbuf_expand_step()
Avoid the overhead of passing context to a callback function of
strbuf_expand() by using strbuf_expand_step() in a loop instead. It
requires explicit handling of %% and unrecognized placeholders, but is
simpler, more direct and avoids void pointers.
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 | 20 |
1 files changed, 0 insertions, 20 deletions
@@ -427,26 +427,6 @@ int strbuf_expand_step(struct strbuf *sb, const char **formatp) return 1; } -void strbuf_expand(struct strbuf *sb, const char *format, expand_fn_t fn, - void *context) -{ - while (strbuf_expand_step(sb, &format)) { - size_t consumed; - - if (*format == '%') { - strbuf_addch(sb, '%'); - format++; - continue; - } - - consumed = fn(sb, format, context); - if (consumed) - format += consumed; - else - strbuf_addch(sb, '%'); - } -} - size_t strbuf_expand_literal_cb(struct strbuf *sb, const char *placeholder, void *context UNUSED) |