Code

Updated to upstream version 1.4.8.
[pkg-rrdtool.git] / bindings / ruby / main.c
index af42069cb46ed8f312a8c83f1ac34a95d25b93dd..35b5f6020dd1ea0d1315358360e14b097f18bfba 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: main.c 2022 2010-02-16 13:04:18Z oetiker $
+/* $Id$
  * Substantial penalty for early withdrawal.
  */
 
@@ -27,7 +27,7 @@ typedef rrd_info_t *(
 
 #define RRD_CHECK_ERROR  \
     if (rrd_test_error()) \
-      rb_raise(rb_eRRDError, rrd_get_error()); \
+      rb_raise(rb_eRRDError, "%s", rrd_get_error()); \
     rrd_clear_error();
 
 string_arr string_arr_new(
@@ -48,16 +48,16 @@ string_arr string_arr_new(
 
         switch (TYPE(v)) {
         case T_STRING:
-            a.strings[i + 1] = strdup(STR2CSTR(v));
+            a.strings[i + 1] = strdup(StringValuePtr(v));
             break;
         case T_FIXNUM:
-            snprintf(buf, 63, "%d", FIX2INT(v));
+            snprintf(buf, 63, "%ld", (long)FIX2INT(v));
             a.strings[i + 1] = strdup(buf);
             break;
         default:
             rb_raise(rb_eTypeError,
-                     "invalid argument - %s, expected T_STRING or T_FIXNUM on index %d",
-                     rb_class2name(CLASS_OF(v)), i);
+                     "invalid argument - %s, expected T_STRING or T_FIXNUM on index %ld",
+                     rb_class2name(CLASS_OF(v)), (long)i);
             break;
         }
     }
@@ -333,6 +333,7 @@ VALUE rb_rrd_xport(
     time_t start, end;
 
     a = string_arr_new(args);
+    reset_rrd_state();
     rrd_xport(a.len, a.strings, &xxsize, &start, &end, &step, &col_cnt, &legend_v, &data);
     string_arr_delete(a);