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);