ce40e23f075832f24396e2c2638ee1dfad83acca galt Tue Feb 4 17:26:46 2014 -0800 Fixes #12630. This addresses a bug in + handling in FTP URLs which only have a path part and no query part. Added cgiDecodeFull function to parallel the existing cgiEncodeFull function. These functions ignore the + character when encoding. diff --git src/inc/cheapcgi.h src/inc/cheapcgi.h index dc96f0e..da6b102 100644 --- src/inc/cheapcgi.h +++ src/inc/cheapcgi.h @@ -206,30 +206,35 @@ }; int cgiOneChoice(char *varName, struct cgiChoice *choices, int choiceSize); /* Returns value associated with string variable in choice table. */ boolean cgiVarExists(char *varName); /* Returns TRUE if the variable was passed in. */ void cgiBadVar(char *varName); /* Complain about a variable that's not there. */ void cgiDecode(char *in, char *out, int inLength); /* Decode from cgi pluses-for-spaces format to normal. * Out will be a little shorter than in typically. */ +void cgiDecodeFull(char *in, char *out, int inLength); +/* Out will be a cgi-decoded version of in (no space from plus!). + * Out will be a little shorter than in typically, and + * can be the same buffer. */ + char *cgiEncode(char *inString); /* Return a cgi-encoded version of inString. * Alphanumerics kept as is, space translated to plus, * and all other characters translated to %hexVal. * You can free return value with freeMem(). */ char *cgiEncodeFull(char *inString); /* Return a cgi-encoded version of inString (no + for space!). * Alphanumerics/./_ kept as is and all other characters translated to * %hexVal. */ void cgiMakeButtonWithMsg(char *name, char *value, char *msg); /* Make 'submit' type button. Display msg on mouseover, if present*/ void cgiMakeButtonWithOnClick(char *name, char *value, char *msg, char *onClick);