Blame


1 9df487d7 2003-11-23 devnull #include <u.h>
2 9df487d7 2003-11-23 devnull #include <libc.h>
3 9df487d7 2003-11-23 devnull #include <bin.h>
4 9df487d7 2003-11-23 devnull #include <httpd.h>
5 9df487d7 2003-11-23 devnull
6 9df487d7 2003-11-23 devnull int
7 9df487d7 2003-11-23 devnull hurlfmt(Fmt *f)
8 9df487d7 2003-11-23 devnull {
9 9df487d7 2003-11-23 devnull char buf[HMaxWord*2];
10 9df487d7 2003-11-23 devnull Rune r;
11 9df487d7 2003-11-23 devnull char *s;
12 9df487d7 2003-11-23 devnull int t;
13 9df487d7 2003-11-23 devnull
14 9df487d7 2003-11-23 devnull s = va_arg(f->args, char*);
15 9df487d7 2003-11-23 devnull for(t = 0; t < sizeof(buf) - 8; ){
16 9df487d7 2003-11-23 devnull s += chartorune(&r, s);
17 9df487d7 2003-11-23 devnull if(r == 0)
18 9df487d7 2003-11-23 devnull break;
19 9df487d7 2003-11-23 devnull if(r <= ' ' || r == '%' || r >= Runeself)
20 9df487d7 2003-11-23 devnull t += snprint(&buf[t], sizeof(buf)-t, "%%%2.2x", r);
21 9df487d7 2003-11-23 devnull else
22 9df487d7 2003-11-23 devnull buf[t++] = r;
23 9df487d7 2003-11-23 devnull }
24 9df487d7 2003-11-23 devnull buf[t] = 0;
25 9df487d7 2003-11-23 devnull return fmtstrcpy(f, buf);
26 9df487d7 2003-11-23 devnull }