diff --git a/strbuf.c b/strbuf.c
index 3fa81b33656a5d2d4887b949fd103920173d37a7..67448b7b07aa9d07b0c8cc250e3e0fad64c8fb5e 100644 (file)
--- a/strbuf.c
+++ b/strbuf.c
break;
format = percent + 1;
+ if (*format == '%') {
+ strbuf_addch(sb, '%');
+ format++;
+ continue;
+ }
+
consumed = fn(sb, format, context);
if (consumed)
format += consumed;
return 0;
}
+void strbuf_addbuf_percentquote(struct strbuf *dst, const struct strbuf *src)
+{
+ int i, len = src->len;
+
+ for (i = 0; i < len; i++) {
+ if (src->buf[i] == '%')
+ strbuf_addch(dst, '%');
+ strbuf_addch(dst, src->buf[i]);
+ }
+}
+
size_t strbuf_fread(struct strbuf *sb, size_t size, FILE *f)
{
size_t res;