8aa20a7f9c0ba348f99c4b0ab8fa4c3b2fc633e3 galt Fri Dec 13 13:12:33 2013 -0800 fixes #12337. better way to allow colons in urls by splitting htmlExpandUrl into two functions. the new one is called expandUrlOnBase and includes ftp support as well as http(s). diff --git src/inc/htmlPage.h src/inc/htmlPage.h index 54eb795..735c8ea 100644 --- src/inc/htmlPage.h +++ src/inc/htmlPage.h @@ -166,30 +166,35 @@ void htmlFormVarSet(struct htmlForm *form, char *name, char *val); /* Set variable to given value. */ struct htmlFormVar *htmlPageGetVar(struct htmlPage *page, struct htmlForm *form, char *name); /* Get named variable. If form is NULL, first form in page is used. */ void htmlPageSetVar(struct htmlPage *page, struct htmlForm *form, char *name, char *val); /* Set variable to given value. If form is NULL, first form in page is used. */ void htmlPageFree(struct htmlPage **pPage); /* Free up resources associated with htmlPage. */ void htmlPageFreeList(struct htmlPage **pList); /* Free a list of dynamically allocated htmlPage's */ +char *expandUrlOnBase(char *base, char *url); +/* Figure out first character past host name. Load up + * return string with protocol (if any) and host name. + * It is assumed that url is relative to base and does not contain a protocol.*/ + char *htmlExpandUrl(char *base, char *url); /* Expand URL that is relative to base to stand on it's own. * Return NULL if it's not http or https. */ char *htmlNextCrLfLine(char **pS); /* Return zero-terminated line and advance *pS to start of * next line. Return NULL at end of file. Warn if there is * no <CR>. */ struct slName *htmlPageScanAttribute(struct htmlPage *page, char *tagName, char *attribute); /* Scan page for values of particular attribute in particular tag. * if tag is NULL then scans in all tags. */ struct slName *htmlPageLinks(struct htmlPage *page);