src/lib/cheapcgi.c 1.118

1.118 2009/04/28 22:58:40 tdreszer
Added support for a numerical limit having NO_VALUE in the cgiMakeIntWithLimits() and cgiMakeDoubleWithLimits() functions
Index: src/lib/cheapcgi.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/lib/cheapcgi.c,v
retrieving revision 1.117
retrieving revision 1.118
diff -b -B -U 4 -r1.117 -r1.118
--- src/lib/cheapcgi.c	10 Apr 2009 23:59:38 -0000	1.117
+++ src/lib/cheapcgi.c	28 Apr 2009 22:58:40 -0000	1.118
@@ -1171,8 +1171,9 @@
 printf("<INPUT TYPE=TEXT NAME=\"%s\" SIZE=%d VALUE=%d>", varName,
 	maxDigits, initialVal);
 }
 
+#define NO_VALUE            -96669
 void cgiMakeIntVarInRange(char *varName, int initialVal, char *title, int width, char *min, char *max)
 /* Make a integer control filled with initial value.
    If min and/or max are non-NULL will enforce range
    Requires utils.js jQuery.js and inputBox class */
@@ -1203,23 +1204,43 @@
 void cgiMakeIntVarWithLimits(char *varName, int initialVal, char *title, int width, int min, int max)
 {
 char minLimit[20];
 char maxLimit[20];
-safef(minLimit,sizeof(minLimit),"%d",min);
-safef(maxLimit,sizeof(maxLimit),"%d",max);
-cgiMakeIntVarInRange(varName,initialVal,title,width,minLimit,maxLimit);
+char *minStr=NULL;
+char *maxStr=NULL;
+if(min != NO_VALUE)
+    {
+    safef(minLimit,sizeof(minLimit),"%d",min);
+    minStr = minLimit;
+    }
+if(max != NO_VALUE)
+    {
+    safef(maxLimit,sizeof(maxLimit),"%d",max);
+    maxStr = maxLimit;
+    }
+cgiMakeIntVarInRange(varName,initialVal,title,width,minStr,maxStr);
 }
 void cgiMakeIntVarWithMin(char *varName, int initialVal, char *title, int width, int min)
 {
 char minLimit[20];
-safef(minLimit,sizeof(minLimit),"%d",min);
-cgiMakeIntVarInRange(varName,initialVal,title,width,minLimit,NULL);
+char *minStr=NULL;
+if(min != NO_VALUE)
+    {
+    safef(minLimit,sizeof(minLimit),"%d",min);
+    minStr = minLimit;
+    }
+cgiMakeIntVarInRange(varName,initialVal,title,width,minStr,NULL);
 }
 void cgiMakeIntVarWithMax(char *varName, int initialVal, char *title, int width, int max)
 {
 char maxLimit[20];
-safef(maxLimit,sizeof(maxLimit),"%d",max);
-cgiMakeIntVarInRange(varName,initialVal,title,width,NULL,maxLimit);
+char *maxStr=NULL;
+if(max != NO_VALUE)
+    {
+    safef(maxLimit,sizeof(maxLimit),"%d",max);
+    maxStr = maxLimit;
+    }
+cgiMakeIntVarInRange(varName,initialVal,title,width,NULL,maxStr);
 }
 
 void cgiMakeDoubleVar(char *varName, double initialVal, int maxDigits)
 /* Make a text control filled with initial floating-point value.  */
@@ -1252,23 +1273,43 @@
 void cgiMakeDoubleVarWithLimits(char *varName, double initialVal, char *title, int width, double min, double max)
 {
 char minLimit[20];
 char maxLimit[20];
-safef(minLimit,sizeof(minLimit),"%g",min);
-safef(maxLimit,sizeof(maxLimit),"%g",max);
-cgiMakeDoubleVarInRange(varName,initialVal,title,width,minLimit,maxLimit);
+char *minStr=NULL;
+char *maxStr=NULL;
+if((int)min != NO_VALUE)
+    {
+    safef(minLimit,sizeof(minLimit),"%g",min);
+    minStr = minLimit;
+    }
+if((int)max != NO_VALUE)
+    {
+    safef(maxLimit,sizeof(maxLimit),"%g",max);
+    maxStr = maxLimit;
+    }
+cgiMakeDoubleVarInRange(varName,initialVal,title,width,minStr,maxStr);
 }
 void cgiMakeDoubleVarWithMin(char *varName, double initialVal, char *title, int width, double min)
 {
 char minLimit[20];
-safef(minLimit,sizeof(minLimit),"%g",min);
-cgiMakeDoubleVarInRange(varName,initialVal,title,width,minLimit,NULL);
+char *minStr=NULL;
+if((int)min != NO_VALUE)
+    {
+    safef(minLimit,sizeof(minLimit),"%g",min);
+    minStr = minLimit;
+    }
+cgiMakeDoubleVarInRange(varName,initialVal,title,width,minStr,NULL);
 }
 void cgiMakeDoubleVarWithMax(char *varName, double initialVal, char *title, int width, double max)
 {
 char maxLimit[20];
-safef(maxLimit,sizeof(maxLimit),"%g",max);
-cgiMakeDoubleVarInRange(varName,initialVal,title,width,NULL,maxLimit);
+char *maxStr=NULL;
+if((int)max != NO_VALUE)
+    {
+    safef(maxLimit,sizeof(maxLimit),"%g",max);
+    maxStr = maxLimit;
+    }
+cgiMakeDoubleVarInRange(varName,initialVal,title,width,NULL,maxStr);
 }
 
 void cgiMakeDropListClassWithStyleAndJavascript(char *name, char *menu[],
     int menuSize, char *checked, char *class, char *style,char *javascript)