[master] 928e2e8d2 vte: Simplify format loop with strcspn()
Dridi Boukelmoune
dridi.boukelmoune at gmail.com
Mon Aug 21 20:52:09 UTC 2023
commit 928e2e8d2c10282913b350d1711da9c76af7fcf8
Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
Date: Thu Aug 17 17:45:04 2023 +0200
vte: Simplify format loop with strcspn()
diff --git a/lib/libvarnish/vte.c b/lib/libvarnish/vte.c
index b479b37ed..efccd97ac 100644
--- a/lib/libvarnish/vte.c
+++ b/lib/libvarnish/vte.c
@@ -254,28 +254,24 @@ VTE_format(struct vte *vte, VTE_format_f *func, void *priv)
AN(p);
q = p;
- for (fno = fsz = 0; *p != '\0'; p++) {
- if (fsz == 0 && fno == 0 && *p == ' ') {
- p = strchr(p, '\n');
- if (p == NULL) {
- p = q + 1; // trigger final flush
- break;
- }
- continue;
- }
+ fno = 0;
+ while (*p != 0) {
+ if (fno == 0 && *p == ' ')
+ fsz = strcspn(p, "\n");
+ else
+ fsz = strcspn(p, "\t\n");
+ p += fsz;
if (*p == '\t') {
assert(vte->f_maxsz[fno] + nsp > fsz);
VTE_FORMAT(func, priv, "%.*s%*s",
(int)(p - q), q,
vte->f_maxsz[fno] + nsp - fsz, "");
fno++;
- fsz = 0;
- q = p + 1;
+ q = ++p;
} else if (*p == '\n') {
fno = 0;
- fsz = 0;
- } else
- fsz++;
+ p++;
+ }
}
if (q < p)
More information about the varnish-commit
mailing list