ref: bbda53b143c07207a137b2a8a64d0c42c498a79b
dir: /castor.h/
typedef struct Url Url; struct Url { char *raw; char *full; char *scheme; char *user; char *pass; char *host; char *port; char *path; char *query; char *fragment; int free; }; typedef struct { char *s1; char *s2; } Str2; #pragma varargck type "U" Url* #pragma varargck type "E" Str2 #pragma varargck type "N" char* #pragma varargck type "]" char* /* util.c */ void *emalloc(int n); char *estrdup(char *s); int strbeg(char* str, char *prefix); /* url.c */ int Efmt(Fmt*); int Nfmt(Fmt*); int Mfmt(Fmt*); int Ufmt(Fmt *f); Url *urlparse(Url *from, char *s); int matchurl(Url *u, Url *s); void freeurl(Url *u); char *Upath(Url *u);