ref: c9c28215513b8c35a8ff574ee9bb8ce16fb01a78
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); char *replace_char(char *s, char f, char r); /* url.c */ int Efmt(Fmt*); int Nfmt(Fmt*); int Mfmt(Fmt*); int Ufmt(Fmt *f); Url *urlparse(Url *from, char *s); Url *base_url(Url *u); int matchurl(Url *u, Url *s); void freeurl(Url *u); char *Upath(Url *u);