Bernhard Fischer:
authoroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Mon, 18 Jun 2007 16:05:07 +0000 (16:05 +0000)
committeroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Mon, 18 Jun 2007 16:05:07 +0000 (16:05 +0000)
- move several static struct option out of loops and makes them
  non-static
- moves some functions from old-style definitions into new-style
  definitions

git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk/program@1133 a5681a0c-68f1-0310-ab6d-d61299d08faa

15 files changed:
configure.ac
src/parsetime.c
src/rrd_cgi.c
src/rrd_create.c
src/rrd_fetch.c
src/rrd_first.c
src/rrd_getopt.c
src/rrd_getopt1.c
src/rrd_graph.c
src/rrd_open.c
src/rrd_restore.c
src/rrd_thread_safe.c
src/rrd_tune.c
src/rrd_update.c
src/rrd_xport.c

index 269665c..bac2165 100644 (file)
@@ -331,7 +331,7 @@ CFLAGS="$CFLAGS -D_GNU_SOURCE"
 
 dnl which flags does the compiler support?
 if test "x$GCC" = "xyes"; then
-  for flag in -fno-strict-aliasing -Wall -std=c99 -pedantic -Wundef -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -W; do
+  for flag in -fno-strict-aliasing -Wall -std=c99 -pedantic -Wundef -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wc++-compat -Wold-style-definition -W; do
     oCFLAGS="$CFLAGS"
     CFLAGS="$CFLAGS $flag"
     cachename=rd_cv_gcc_flag_`echo $flag|sed 's/[[^A-Za-z]]/_/g'`
index 71af065..a2b76ed 100644 (file)
@@ -139,7 +139,7 @@ struct SpecialToken {
     char     *name;     /* token name */
     int       value;    /* token id */
 };
-static struct SpecialToken VariousWords[] = {
+static const struct SpecialToken VariousWords[] = {
     {"midnight", MIDNIGHT}, /* 00:00:00 of today or tomorrow */
     {"noon", NOON},     /* 12:00:00 of today or tomorrow */
     {"teatime", TEATIME},   /* 16:00:00 of today or tomorrow */
@@ -196,7 +196,7 @@ static struct SpecialToken VariousWords[] = {
     {NULL, 0}           /*** SENTINEL ***/
 };
 
-static struct SpecialToken TimeMultipliers[] = {
+static const struct SpecialToken TimeMultipliers[] = {
     {"second", SECONDS},    /* seconds multiplier */
     {"seconds", SECONDS},   /* (pluralized) */
     {"sec", SECONDS},   /* (generic) */
@@ -326,10 +326,8 @@ static char *e(
    greater than zero if S1 is lexicographically less than,
    equal to or greater than S2.  -- copied from GNU libc*/
 static int mystrcasecmp(
-    s1,
-    s2)
-    const char *s1;
-    const char *s2;
+    const char *s1,
+    const char *s2)
 {
     const unsigned char *p1 = (const unsigned char *) s1;
     const unsigned char *p2 = (const unsigned char *) s2;
@@ -391,7 +389,7 @@ static char *init_scanner(
  * token() fetches a token from the input stream
  */
 static int token(
-    )
+    void)
 {
     int       idx;
 
index 75dabf4..846397f 100644 (file)
@@ -220,8 +220,7 @@ static vardata *varheap = NULL;
 static size_t varheap_size = 0;
 
 /* allocate and initialize variable heap */
-static int initvar(
-    )
+static int initvar(void)
 {
     varheap = (vardata *) malloc(sizeof(vardata) * INIT_VARSTORE_SIZE);
     if (varheap == NULL) {
@@ -234,8 +233,7 @@ static int initvar(
 }
 
 /* cleanup: free allocated memory */
-static void donevar(
-    )
+static void donevar(void)
 {
     int       i;
 
@@ -288,13 +286,13 @@ static const char *putvar(
         if (0 == strcmp(name, varheap[i].name)) {
             /* overwrite existing entry */
             if (varheap[i].is_const) {
-#ifdef                 DEBUG_VARS
+#ifdef DEBUG_VARS
                 printf("<!-- setver(%s, %s): not assigning: "
                        "const variable -->\n", name, value);
-#                              endif
+#endif
                 return varheap[i].value;
             }
-#ifdef         DEBUG_VARS
+#ifdef DEBUG_VARS
             printf("<!-- setvar(%s, %s): overwriting old value (%s) -->\n",
                    name, value, varheap[i].value);
 #endif
@@ -398,6 +396,10 @@ int main(
     char     *server_url = NULL;
     long      i;
     long      filter = 0;
+    struct option long_options[] = {
+        {"filter", no_argument, 0, 'f'},
+        {0, 0, 0, 0}
+    };
 
 #ifdef MUST_DISABLE_SIGFPE
     signal(SIGFPE, SIG_IGN);
@@ -412,10 +414,6 @@ int main(
        for (i=0;i<argc;i++)
        printf("%d-'%s'\n",i,argv[i]); */
     while (1) {
-        static struct option long_options[] = {
-            {"filter", no_argument, 0, 'f'},
-            {0, 0, 0, 0}
-        };
         int       option_index = 0;
         int       opt;
 
index 766b783..4c9943e 100644 (file)
@@ -25,6 +25,13 @@ int rrd_create(
     int argc,
     char **argv)
 {
+    struct option long_options[] = {
+        {"start", required_argument, 0, 'b'},
+        {"step", required_argument, 0, 's'},
+        {0, 0, 0, 0}
+    };
+    int       option_index = 0;
+    int       opt;
     time_t    last_up = time(NULL) - 10;
     unsigned long pdp_step = 300;
     struct rrd_time_value last_up_tv;
@@ -36,14 +43,6 @@ int rrd_create(
     opterr = 0;         /* initialize getopt */
 
     while (1) {
-        static struct option long_options[] = {
-            {"start", required_argument, 0, 'b'},
-            {"step", required_argument, 0, 's'},
-            {0, 0, 0, 0}
-        };
-        int       option_index = 0;
-        int       opt;
-
         opt = getopt_long(argc, argv, "b:s:", long_options, &option_index);
 
         if (opt == EOF)
index 422f59b..c065793 100644 (file)
@@ -69,14 +69,18 @@ int rrd_fetch(
     char ***ds_namv,    /* names of data sources */
     rrd_value_t **data)
 {                       /* two dimensional array containing the data */
-
-
     long      step_tmp = 1;
     time_t    start_tmp = 0, end_tmp = 0;
     const char *cf;
 
     struct rrd_time_value start_tv, end_tv;
     char     *parsetime_error = NULL;
+    struct option long_options[] = {
+        {"resolution", required_argument, 0, 'r'},
+        {"start", required_argument, 0, 's'},
+        {"end", required_argument, 0, 'e'},
+        {0, 0, 0, 0}
+    };
 
     optind = 0;
     opterr = 0;         /* initialize getopt */
@@ -86,12 +90,6 @@ int rrd_fetch(
     parsetime("now", &end_tv);
 
     while (1) {
-        static struct option long_options[] = {
-            {"resolution", required_argument, 0, 'r'},
-            {"start", required_argument, 0, 's'},
-            {"end", required_argument, 0, 'e'},
-            {0, 0, 0, 0}
-        };
         int       option_index = 0;
         int       opt;
 
index abba426..d2b81a9 100644 (file)
@@ -15,15 +15,15 @@ time_t rrd_first(
 {
     int       target_rraindex = 0;
     char     *endptr;
+    struct option long_options[] = {
+        {"rraindex", required_argument, 0, 129},
+        {0, 0, 0, 0}
+    };
 
     optind = 0;
     opterr = 0;         /* initialize getopt */
 
     while (1) {
-        static struct option long_options[] = {
-            {"rraindex", required_argument, 0, 129},
-            {0, 0, 0, 0}
-        };
         int       option_index = 0;
         int       opt;
 
index 706a67a..d03b456 100644 (file)
@@ -190,7 +190,7 @@ int       optopt = '?';
    of the value of `ordering'.  In the case of RETURN_IN_ORDER, only
    `--' can cause `getopt' to return -1 with `optind' != ARGC.  */
 
-static enum {
+static const enum {
     REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
 } ordering;
 
index 6ace794..4c406e9 100644 (file)
@@ -114,19 +114,19 @@ int main(
 {
     int       c;
     int       digit_optind = 0;
+    struct option long_options[] = {
+        {"add", 1, 0, 0},
+        {"append", 0, 0, 0},
+        {"delete", 1, 0, 0},
+        {"verbose", 0, 0, 0},
+        {"create", 0, 0, 0},
+        {"file", 1, 0, 0},
+        {0, 0, 0, 0}
+    };
 
     while (1) {
         int       this_option_optind = optind ? optind : 1;
         int       option_index = 0;
-        static struct option long_options[] = {
-            {"add", 1, 0, 0},
-            {"append", 0, 0, 0},
-            {"delete", 1, 0, 0},
-            {"verbose", 0, 0, 0},
-            {"create", 0, 0, 0},
-            {"file", 1, 0, 0},
-            {0, 0, 0, 0}
-        };
 
         c = getopt_long(argc, argv, "abc:d:0123456789",
                         long_options, &option_index);
index 3022227..7fbe865 100644 (file)
@@ -3721,6 +3721,53 @@ void rrd_graph_options(
     long      long_tmp;
     struct rrd_time_value start_tv, end_tv;
     long unsigned int color;
+    /* defines for long options without a short equivalent. should be bytes,
+       and may not collide with (the ASCII value of) short options */
+#define LONGOPT_UNITS_SI 255
+       struct option long_options[] = {
+               {"start", required_argument, 0, 's'},
+               {"end", required_argument, 0, 'e'},
+               {"x-grid", required_argument, 0, 'x'},
+               {"y-grid", required_argument, 0, 'y'},
+               {"vertical-label", required_argument, 0, 'v'},
+               {"width", required_argument, 0, 'w'},
+               {"height", required_argument, 0, 'h'},
+               {"full-size-mode", no_argument, 0, 'D'},
+               {"interlaced", no_argument, 0, 'i'},
+               {"upper-limit", required_argument, 0, 'u'},
+               {"lower-limit", required_argument, 0, 'l'},
+               {"rigid", no_argument, 0, 'r'},
+               {"base", required_argument, 0, 'b'},
+               {"logarithmic", no_argument, 0, 'o'},
+               {"color", required_argument, 0, 'c'},
+               {"font", required_argument, 0, 'n'},
+               {"title", required_argument, 0, 't'},
+               {"imginfo", required_argument, 0, 'f'},
+               {"imgformat", required_argument, 0, 'a'},
+               {"lazy", no_argument, 0, 'z'},
+               {"zoom", required_argument, 0, 'm'},
+               {"no-legend", no_argument, 0, 'g'},
+               {"force-rules-legend", no_argument, 0, 'F'},
+               {"only-graph", no_argument, 0, 'j'},
+               {"alt-y-grid", no_argument, 0, 'Y'},
+               {"no-minor", no_argument, 0, 'I'},
+               {"slope-mode", no_argument, 0, 'E'},
+               {"alt-autoscale", no_argument, 0, 'A'},
+               {"alt-autoscale-min", no_argument, 0, 'J'},
+               {"alt-autoscale-max", no_argument, 0, 'M'},
+               {"no-gridfit", no_argument, 0, 'N'},
+               {"units-exponent", required_argument, 0, 'X'},
+               {"units-length", required_argument, 0, 'L'},
+               {"units", required_argument, 0, LONGOPT_UNITS_SI},
+               {"step", required_argument, 0, 'S'},
+               {"tabwidth", required_argument, 0, 'T'},
+               {"font-render-mode", required_argument, 0, 'R'},
+               {"graph-render-mode", required_argument, 0, 'G'},
+               {"font-smoothing-threshold", required_argument, 0, 'B'},
+               {"watermark", required_argument, 0, 'W'},
+               {"alt-y-mrtg", no_argument, 0, 1000},   /* this has no effect it is just here to save old apps from crashing when they use it */
+               {0, 0, 0, 0}
+       };
 
     optind = 0;
     opterr = 0;         /* initialize getopt */
@@ -3728,55 +3775,7 @@ void rrd_graph_options(
     parsetime("end-24h", &start_tv);
     parsetime("now", &end_tv);
 
-    /* defines for long options without a short equivalent. should be bytes,
-       and may not collide with (the ASCII value of) short options */
-#define LONGOPT_UNITS_SI 255
-
     while (1) {
-        static struct option long_options[] = {
-            {"start", required_argument, 0, 's'},
-            {"end", required_argument, 0, 'e'},
-            {"x-grid", required_argument, 0, 'x'},
-            {"y-grid", required_argument, 0, 'y'},
-            {"vertical-label", required_argument, 0, 'v'},
-            {"width", required_argument, 0, 'w'},
-            {"height", required_argument, 0, 'h'},
-            {"full-size-mode", no_argument, 0, 'D'},
-            {"interlaced", no_argument, 0, 'i'},
-            {"upper-limit", required_argument, 0, 'u'},
-            {"lower-limit", required_argument, 0, 'l'},
-            {"rigid", no_argument, 0, 'r'},
-            {"base", required_argument, 0, 'b'},
-            {"logarithmic", no_argument, 0, 'o'},
-            {"color", required_argument, 0, 'c'},
-            {"font", required_argument, 0, 'n'},
-            {"title", required_argument, 0, 't'},
-            {"imginfo", required_argument, 0, 'f'},
-            {"imgformat", required_argument, 0, 'a'},
-            {"lazy", no_argument, 0, 'z'},
-            {"zoom", required_argument, 0, 'm'},
-            {"no-legend", no_argument, 0, 'g'},
-            {"force-rules-legend", no_argument, 0, 'F'},
-            {"only-graph", no_argument, 0, 'j'},
-            {"alt-y-grid", no_argument, 0, 'Y'},
-            {"no-minor", no_argument, 0, 'I'},
-            {"slope-mode", no_argument, 0, 'E'},
-            {"alt-autoscale", no_argument, 0, 'A'},
-            {"alt-autoscale-min", no_argument, 0, 'J'},
-            {"alt-autoscale-max", no_argument, 0, 'M'},
-            {"no-gridfit", no_argument, 0, 'N'},
-            {"units-exponent", required_argument, 0, 'X'},
-            {"units-length", required_argument, 0, 'L'},
-            {"units", required_argument, 0, LONGOPT_UNITS_SI},
-            {"step", required_argument, 0, 'S'},
-            {"tabwidth", required_argument, 0, 'T'},
-            {"font-render-mode", required_argument, 0, 'R'},
-            {"graph-render-mode", required_argument, 0, 'G'},
-            {"font-smoothing-threshold", required_argument, 0, 'B'},
-            {"watermark", required_argument, 0, 'W'},
-            {"alt-y-mrtg", no_argument, 0, 1000},   /* this has no effect it is just here to save old apps from crashing when they use it */
-            {0, 0, 0, 0}
-        };
         int       option_index = 0;
         int       opt;
         int       col_start, col_end;
@@ -4234,10 +4233,8 @@ int bad_format(
 
 
 int vdef_parse(
-    gdes,
-    str)
-    struct graph_desc_t *gdes;
-    const char *const str;
+    struct graph_desc_t *gdes,
+    const char *const str)
 {
     /* A VDEF currently is either "func" or "param,func"
      * so the parsing is rather simple.  Change if needed.
@@ -4329,10 +4326,8 @@ int vdef_parse(
 
 
 int vdef_calc(
-    im,
-    gdi)
-    image_desc_t *im;
-    int gdi;
+    image_desc_t *im,
+    int gdi)
 {
     graph_desc_t *src, *dst;
     rrd_value_t *data;
@@ -4532,9 +4527,7 @@ int vdef_calc(
 
 /* NaN < -INF < finite_values < INF */
 int vdef_percent_compar(
-    a,
-    b)
-    const void *a, *b;
+    const void *a, const void *b)
 {
     /* Equality is not returned; this doesn't hurt except
      * (maybe) for a little performance.
index 6e8a042..4b9a0f9 100644 (file)
@@ -4,62 +4,6 @@
  * rrd_open.c  Open an RRD File
  *****************************************************************************
  * $Id$
- * $Log$
- * Revision 1.10  2004/05/26 22:11:12  oetiker
- * reduce compiler warnings. Many small fixes. -- Mike Slifcak <slif@bellsouth.net>
- *
- * Revision 1.9  2003/04/29 21:56:49  oetiker
- * readline in rrd_open.c reads the file in 8 KB blocks, and calls realloc for
- * each block. realloc is very slow in Mac OS X for huge blocks, e.g. when
- * restoring databases from huge xml files. This patch finds the size of the
- * file, and starts out with malloc'ing the full size.
- * -- Peter Speck <speck@ruc.dk>
- *
- * Revision 1.8  2003/04/11 19:43:44  oetiker
- * New special value COUNT which allows calculations based on the position of a
- * value within a data set. Bug fix in rrd_rpncalc.c. PREV returned erroneus
- * value for the second value. Bug fix in rrd_restore.c. Bug causing seek error
- * when accesing an RRD restored from an xml that holds an RRD version <3.
- * --  Ruben Justo <ruben@ainek.com>
- *
- * Revision 1.7  2003/03/31 21:22:12  oetiker
- * enables RRDtool updates with microsecond or in case of windows millisecond
- * precision. This is needed to reduce time measurement error when archive step
- * is small. (<30s) --  Sasha Mikheev <sasha@avalon-net.co.il>
- *
- * Revision 1.6  2003/02/13 07:05:27  oetiker
- * Find attached the patch I promised to send to you. Please note that there
- * are three new source files (src/rrd_is_thread_safe.h, src/rrd_thread_safe.c
- * and src/rrd_not_thread_safe.c) and the introduction of librrd_th. This
- * library is identical to librrd, but it contains support code for per-thread
- * global variables currently used for error information only. This is similar
- * to how errno per-thread variables are implemented.  librrd_th must be linked
- * alongside of libpthred
- *
- * There is also a new file "THREADS", holding some documentation.
- *
- * -- Peter Stamfest <peter@stamfest.at>
- *
- * Revision 1.5  2002/06/20 00:21:03  jake
- * More Win32 build changes; thanks to Kerry Calvert.
- *
- * Revision 1.4  2002/02/01 20:34:49  oetiker
- * fixed version number and date/time
- *
- * Revision 1.3  2001/03/04 13:01:55  oetiker
- * Aberrant Behavior Detection support. A brief overview added to rrdtool.pod.
- * Major updates to rrd_update.c, rrd_create.c. Minor update to other core files.
- * This is backwards compatible! But new files using the Aberrant stuff are not readable
- * by old rrdtool versions. See http://cricket.sourceforge.net/aberrant/rrd_hw.htm
- * -- Jake Brutlag <jakeb@corp.webtv.net>
- *
- * Revision 1.2  2001/03/04 10:29:20  oetiker
- * fixed filedescriptor leak
- * -- Mike Franusich <mike@franusich.com>
- *
- * Revision 1.1.1.1  2001/02/25 22:25:05  oetiker
- * checkin
- *
  *****************************************************************************/
 
 #include "rrd_tool.h"
index 68a037f..65bbb10 100644 (file)
@@ -708,20 +708,19 @@ int rrd_restore(
     char     *buf;
     char      rc = 0;
     char      force_overwrite = 0;
+    struct option long_options[] = {
+        {"range-check", no_argument, 0, 'r'},
+        {"force-overwrite", no_argument, 0, 'f'},
+        {0, 0, 0, 0}
+    };
 
     /* init rrd clean */
     optind = 0;
     opterr = 0;         /* initialize getopt */
     while (1) {
-        static struct option long_options[] = {
-            {"range-check", no_argument, 0, 'r'},
-            {"force-overwrite", no_argument, 0, 'f'},
-            {0, 0, 0, 0}
-        };
         int       option_index = 0;
         int       opt;
 
-
         opt = getopt_long(argc, argv, "rf", long_options, &option_index);
 
         if (opt == EOF)
index 074a873..7e58ca6 100644 (file)
@@ -35,7 +35,7 @@ static void context_destroy_context(
 
 /* Allocate the key */
 static void context_get_key(
-    )
+    void)
 {
     pthread_key_create(&context_key, context_destroy_context);
 }
index 160b32a..714e7d4 100644 (file)
@@ -72,6 +72,24 @@ int rrd_tune(
     double    max;
     char      dst[DST_SIZE];
     rrd_file_t *rrd_file;
+       struct option long_options[] = {
+               {"heartbeat", required_argument, 0, 'h'},
+               {"minimum", required_argument, 0, 'i'},
+               {"maximum", required_argument, 0, 'a'},
+               {"data-source-type", required_argument, 0, 'd'},
+               {"data-source-rename", required_argument, 0, 'r'},
+               /* added parameter tuning options for aberrant behavior detection */
+               {"deltapos", required_argument, 0, 'p'},
+               {"deltaneg", required_argument, 0, 'n'},
+               {"window-length", required_argument, 0, 'w'},
+               {"failure-threshold", required_argument, 0, 'f'},
+               {"alpha", required_argument, 0, 'x'},
+               {"beta", required_argument, 0, 'y'},
+               {"gamma", required_argument, 0, 'z'},
+               {"gamma-deviation", required_argument, 0, 'v'},
+               {"aberrant-reset", required_argument, 0, 'b'},
+               {0, 0, 0, 0}
+       };
 
     optind = 0;
     opterr = 0;         /* initialize getopt */
@@ -84,24 +102,6 @@ int rrd_tune(
     }
 
     while (1) {
-        static struct option long_options[] = {
-            {"heartbeat", required_argument, 0, 'h'},
-            {"minimum", required_argument, 0, 'i'},
-            {"maximum", required_argument, 0, 'a'},
-            {"data-source-type", required_argument, 0, 'd'},
-            {"data-source-rename", required_argument, 0, 'r'},
-            /* added parameter tuning options for aberrant behavior detection */
-            {"deltapos", required_argument, 0, 'p'},
-            {"deltaneg", required_argument, 0, 'n'},
-            {"window-length", required_argument, 0, 'w'},
-            {"failure-threshold", required_argument, 0, 'f'},
-            {"alpha", required_argument, 0, 'x'},
-            {"beta", required_argument, 0, 'y'},
-            {"gamma", required_argument, 0, 'z'},
-            {"gamma-deviation", required_argument, 0, 'v'},
-            {"aberrant-reset", required_argument, 0, 'b'},
-            {0, 0, 0, 0}
-        };
         int       option_index = 0;
         int       opt;
 
index 1feecac..fa60c0b 100644 (file)
@@ -135,16 +135,16 @@ info_t   *rrd_update_v(
     char     *tmplt = NULL;
     info_t   *result = NULL;
     infoval   rc;
+    struct option long_options[] = {
+        {"template", required_argument, 0, 't'},
+        {0, 0, 0, 0}
+    };
 
     rc.u_int = -1;
     optind = 0;
     opterr = 0;         /* initialize getopt */
 
     while (1) {
-        static struct option long_options[] = {
-            {"template", required_argument, 0, 't'},
-            {0, 0, 0, 0}
-        };
         int       option_index = 0;
         int       opt;
 
index ac2295b..21110b8 100644 (file)
@@ -58,6 +58,14 @@ int rrd_xport(
     time_t    start_tmp = 0, end_tmp = 0;
     struct rrd_time_value start_tv, end_tv;
     char     *parsetime_error = NULL;
+       struct option long_options[] = {
+               {"start", required_argument, 0, 's'},
+               {"end", required_argument, 0, 'e'},
+               {"maxrows", required_argument, 0, 'm'},
+               {"step", required_argument, 0, 261},
+               {"enumds", no_argument, 0, 262},    /* these are handled in the frontend ... */
+               {0, 0, 0, 0}
+       };
 
     optind = 0;
     opterr = 0;         /* initialize getopt */
@@ -68,14 +76,6 @@ int rrd_xport(
     parsetime("now", &end_tv);
 
     while (1) {
-        static struct option long_options[] = {
-            {"start", required_argument, 0, 's'},
-            {"end", required_argument, 0, 'e'},
-            {"maxrows", required_argument, 0, 'm'},
-            {"step", required_argument, 0, 261},
-            {"enumds", no_argument, 0, 262},    /* these are handled in the frontend ... */
-            {0, 0, 0, 0}
-        };
         int       option_index = 0;
         int       opt;