reset optind opterr inside the function calls ...
[rrdtool.git] / src / rrd_cgi.c
index 411b02b..ee46d5e 100644 (file)
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.1.x  Copyright Tobias Oetiker, 1997 - 2004
+ * RRDtool 1.2.0  Copyright by Tobi Oetiker, 1997-2005
  *****************************************************************************
  * rrd_cgi.c  RRD Web Page Generator
  *****************************************************************************/
@@ -266,6 +266,8 @@ int main(int argc, char *argv[]) {
 #ifdef MUST_DISABLE_FPMASK
        fpsetmask(0);
 #endif
+        optind = 0; opterr = 0;  /* initialize getopt */
+
        /* what do we get for cmdline arguments?
        for (i=0;i<argc;i++)
        printf("%d-'%s'\n",i,argv[i]); */
@@ -392,6 +394,7 @@ char* rrdsetenv(long argc, const char **args) {
                        free(xyz);
                        return stralloc("[ERROR: failed to do putenv]");
                };
+               return stralloc("");
        }
        return stralloc("[ERROR: setenv failed because not enough "
                                        "arguments were defined]");
@@ -442,7 +445,7 @@ char* rrdgetenv(long argc, const char **args) {
        if (envvar) {
                return stralloc(envvar);
        } else {
-#ifdef WIN32
+#if defined(WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__)
                _snprintf(buf, sizeof(buf), "[ERROR:_getenv_'%s'_failed", args[0]);
 #else
                 snprintf(buf, sizeof(buf), "[ERROR:_getenv_'%s'_failed", args[0]);
@@ -462,7 +465,7 @@ char* rrdgetvar(long argc, const char **args) {
        if (value) {
                return stralloc(value);
        } else {
-#ifdef WIN32
+#if defined(WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__)
                _snprintf(buf, sizeof(buf), "[ERROR:_getvar_'%s'_failed", args[0]);
 #else
                 snprintf(buf, sizeof(buf), "[ERROR:_getvar_'%s'_failed", args[0]);
@@ -688,16 +691,15 @@ char* cgiget(long argc, const char **args){
 
 char* drawgraph(long argc, char **args){
   int i,xsize, ysize;
+  double ymin,ymax;
   for(i=0;i<argc;i++)
     if(strcmp(args[i],"--imginfo")==0 || strcmp(args[i],"-g")==0) break;
   if(i==argc) {
     args[argc++] = "--imginfo";
     args[argc++] = "<IMG SRC=\"./%s\" WIDTH=\"%lu\" HEIGHT=\"%lu\">";
   }
-  optind=0; /* reset gnu getopt */
-  opterr=0; /* reset gnu getopt */
   calfree();
-  if( rrd_graph(argc+1, args-1, &calcpr, &xsize, &ysize,NULL) != -1 ) {
+  if( rrd_graph(argc+1, args-1, &calcpr, &xsize, &ysize,NULL,&ymin,&ymax) != -1 ) {
     return stralloc(calcpr[0]);
   } else {
     if (rrd_test_error()) {