Code

fix use of setlocale all over the place ...
[rrdtool-all.git] / program / src / rrd_tool.c
index cd27b5fde634d5c37f33edb706c80a4b79e2957a..8fe46a2c48a8cc25282ca2977904031bd0199c35 100644 (file)
@@ -66,6 +66,7 @@ void PrintUsage(
         N_("* create - create a new RRD\n\n"
            "\trrdtool create filename [--start|-b start time]\n"
            "\t\t[--step|-s step]\n"
+           "\t\t[--no-overwrite|-O]\n"
            "\t\t[DS:ds-name:DST:dst arguments]\n"
            "\t\t[RRA:CF:cf arguments]\n\n");
 
@@ -182,8 +183,7 @@ void PrintUsage(
            "\t\t[--window-length integer]\n"
            "\t\t[--alpha adaptation-parameter]\n");
     const char *help_tune2 =
-        N_(" * tune -  Modify some basic properties of an RRD\n\n"
-           "\t\t[--beta adaptation-parameter]\n"
+        N_("\t\t[--beta adaptation-parameter]\n"
            "\t\t[--gamma adaptation-parameter]\n"
            "\t\t[--gamma-deviation adaptation-parameter]\n"
            "\t\t[--aberrant-reset ds-name]\n\n");
@@ -520,7 +520,7 @@ int HandleInputLine(
      */
     if (RemoteMode) {
         if (argc > 1 && strcmp("quit", argv[1]) == 0) {
-            if (argc > 2) {
+            if (argc != 2) {
                 printf("ERROR: invalid parameter count for quit\n");
                 return (1);
             }
@@ -528,7 +528,7 @@ int HandleInputLine(
         }
 #if defined(HAVE_OPENDIR) && defined(HAVE_READDIR) && defined(HAVE_CHDIR)
         if (argc > 1 && strcmp("cd", argv[1]) == 0) {
-            if (argc > 3) {
+            if (argc != 3) {
                 printf("ERROR: invalid parameter count for cd\n");
                 return (1);
             }
@@ -547,7 +547,7 @@ int HandleInputLine(
             return (0);
         }
         if (argc > 1 && strcmp("pwd", argv[1]) == 0) {
-            if (argc > 2) {
+            if (argc != 2) {
                 printf("ERROR: invalid parameter count for pwd\n");
                 return (1);
             }
@@ -561,7 +561,7 @@ int HandleInputLine(
             return (0);
         }
         if (argc > 1 && strcmp("mkdir", argv[1]) == 0) {
-            if (argc > 3) {
+            if (argc != 3) {
                 printf("ERROR: invalid parameter count for mkdir\n");
                 return (1);
             }
@@ -580,7 +580,7 @@ int HandleInputLine(
             return (0);
         }
         if (argc > 1 && strcmp("ls", argv[1]) == 0) {
-            if (argc > 2) {
+            if (argc != 2) {
                 printf("ERROR: invalid parameter count for ls\n");
                 return (1);
             }
@@ -718,16 +718,18 @@ int HandleInputLine(
         if (rrd_xport
             (argc - 1, &argv[1], &xxsize, &start, &end, &step, &col_cnt,
              &legend_v, &data) != -1) {
+            char *old_locale = setlocale(LC_NUMERIC,NULL);
+            setlocale(LC_NUMERIC, "C");
             row_cnt = (end - start) / step;
             ptr = data;
             printf("<?xml version=\"1.0\" encoding=\"%s\"?>\n\n",
                    XML_ENCODING);
             printf("<%s>\n", ROOT_TAG);
             printf("  <%s>\n", META_TAG);
-            printf("    <%s>%lu</%s>\n", META_START_TAG,
-                   (unsigned long) start + step, META_START_TAG);
+            printf("    <%s>%lld</%s>\n", META_START_TAG,
+                   (long long int) start + step, META_START_TAG);
             printf("    <%s>%lu</%s>\n", META_STEP_TAG, step, META_STEP_TAG);
-            printf("    <%s>%lu</%s>\n", META_END_TAG, (unsigned long) end,
+            printf("    <%s>%lld</%s>\n", META_END_TAG, (long long int) end,
                    META_END_TAG);
             printf("    <%s>%lu</%s>\n", META_ROWS_TAG, row_cnt,
                    META_ROWS_TAG);
@@ -748,7 +750,7 @@ int HandleInputLine(
             printf("  <%s>\n", DATA_TAG);
             for (ti = start + step; ti <= end; ti += step) {
                 printf("    <%s>", DATA_ROW_TAG);
-                printf("<%s>%lu</%s>", COL_TIME_TAG, ti, COL_TIME_TAG);
+                printf("<%s>%lld</%s>", COL_TIME_TAG, (long long int)ti, COL_TIME_TAG);
                 for (j = 0; j < col_cnt; j++) {
                     rrd_value_t newval = DNAN;
 
@@ -770,8 +772,10 @@ int HandleInputLine(
             free(data);
             printf("  </%s>\n", DATA_TAG);
             printf("</%s>\n", ROOT_TAG);
+            setlocale(LC_NUMERIC, old_locale);
         }
         free(vtag);
+        
     } else if (strcmp("graph", argv[1]) == 0) {
         char    **calcpr;