#include <u.h> | |
#include <libc.h> | |
#include <bin.h> | |
#include <httpd.h> | |
int | |
hurlfmt(Fmt *f) | |
{ | |
char buf[HMaxWord*2]; | |
Rune r; | |
char *s; | |
int t; | |
s = va_arg(f->args, char*); | |
for(t = 0; t < sizeof(buf) - 8; ){ | |
s += chartorune(&r, s); | |
if(r == 0) | |
break; | |
if(r <= ' ' || r == '%' || r >= Runeself) | |
t += snprint(&buf[t], sizeof(buf)-t, "%%%2.2x", r); | |
else | |
buf[t++] = r; | |
} | |
buf[t] = 0; | |
return fmtstrcpy(f, buf); | |
} |