add libhttpd
This commit is contained in:
parent
b6afd33e2f
commit
9df487d720
19 changed files with 2722 additions and 0 deletions
26
src/libhttpd/urlfmt.c
Normal file
26
src/libhttpd/urlfmt.c
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
#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);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue