#define RRDTOOL_CMD "/usr/bin/rrdtool"
-#define print(fmt, arg...) \
+/*
+ * Add new argument to a argument list
+ *
+ * args pointer list to arguments
+ * argcnt argument counter
+ * argstr array where the actual arguments are stored
+ * idx index in the argstr where the new argument will be appended
+ */
+#define add_arg(args, argcnt, argstr, idx, fmt, arg...) \
args[argcnt] = argstr + idx; \
idx += sprintf(argstr + idx, fmt, ##arg); \
argcnt++; \
timestamp[j] = 0;
- print(" ");
- print("graph");
- print("%s", image->image_filename);
+ add_arg(args, argcnt, argstr, idx, " ");
+ add_arg(args, argcnt, argstr, idx, "graph");
+ add_arg(args, argcnt, argstr, idx, "%s", image->image_filename);
- print("--start");
- print("%s", image->timestart);
- print("--end");
- print("%s", image->timeend);
- print("--width");
- print("%d", image->width);
- print("--height");
- print("%d", image->height);
- print("--imgformat");
- print("%s", image->imageformat);
+ add_arg(args, argcnt, argstr, idx, "--start");
+ add_arg(args, argcnt, argstr, idx, "%s", image->timestart);
+ add_arg(args, argcnt, argstr, idx, "--end");
+ add_arg(args, argcnt, argstr, idx, "%s", image->timeend);
+ add_arg(args, argcnt, argstr, idx, "--width");
+ add_arg(args, argcnt, argstr, idx, "%d", image->width);
+ add_arg(args, argcnt, argstr, idx, "--height");
+ add_arg(args, argcnt, argstr, idx, "%d", image->height);
+ add_arg(args, argcnt, argstr, idx, "--imgformat");
+ add_arg(args, argcnt, argstr, idx, "%s", image->imageformat);
for (i = 0; image->options[i]; i++) {
- print("%s", image->options[i]);
+ add_arg(args, argcnt, argstr, idx, "%s", image->options[i]);
}
for (i = 0; image->text[i]; i++) {
args[argcnt++] = image->text[i];
}
- print("COMMENT:Last update %s\\c", timestamp);
+ add_arg(args, argcnt, argstr, idx, "COMMENT:Last update %s\\c", timestamp);
args[argcnt] = 0;