[master] 977d2705a Add VSB_QUOTE_ESCHEX to prefer \xXX to \oOOO quoting
Poul-Henning Kamp
phk at FreeBSD.org
Mon Oct 22 07:50:20 UTC 2018
commit 977d2705a28d38ef3bd4a28f5cd8b4184704ae3a
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Mon Oct 22 07:48:32 2018 +0000
Add VSB_QUOTE_ESCHEX to prefer \xXX to \oOOO quoting
Also quote \v as \v
diff --git a/include/vsb.h b/include/vsb.h
index d51088499..ea1ab4de8 100644
--- a/include/vsb.h
+++ b/include/vsb.h
@@ -81,6 +81,7 @@ void VSB_destroy(struct vsb **);
#define VSB_QUOTE_HEX 4
#define VSB_QUOTE_CSTR 8
#define VSB_QUOTE_UNSAFE 16
+#define VSB_QUOTE_ESCHEX 32
void VSB_quote_pfx(struct vsb *, const char*, const void *,
int len, int how);
void VSB_quote(struct vsb *, const void *, int len, int how);
diff --git a/lib/libvarnish/vsb.c b/lib/libvarnish/vsb.c
index b44323854..e1e6d1445 100644
--- a/lib/libvarnish/vsb.c
+++ b/lib/libvarnish/vsb.c
@@ -588,12 +588,17 @@ VSB_quote_pfx(struct vsb *s, const char *pfx, const void *v, int len, int how)
case '\t':
(void)VSB_cat(s, "\\t");
break;
+ case '\v':
+ (void)VSB_cat(s, "\\v");
+ break;
default:
/* XXX: Implement VSB_QUOTE_JSON */
if (isgraph(*q))
(void)VSB_putc(s, *q);
+ else if (how & VSB_QUOTE_ESCHEX)
+ (void)VSB_printf(s, "\\x%02x", *q & 0xff);
else
- (void)VSB_printf(s, "\\%o", *q & 0xff);
+ (void)VSB_printf(s, "\\%03o", *q & 0xff);
break;
}
}
More information about the varnish-commit
mailing list