#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);
}