"list graph" action: Don't show any instances if no search term is given.
[collection4.git] / src / graph.c
index 01f0791..5c143b4 100644 (file)
@@ -1,3 +1,26 @@
+/**
+ * collection4 - graph.c
+ * Copyright (C) 2010  Florian octo Forster
+ * 
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA  02110-1301  USA
+ *
+ * Authors:
+ *   Florian octo Forster <ff at octo.it>
+ **/
+
 #include <stdlib.h>
 #include <stdio.h>
 #include <stdint.h>
@@ -256,6 +279,8 @@ graph_def_t *graph_get_defs (graph_config_t *cfg) /* {{{ */
 
 int graph_add_def (graph_config_t *cfg, graph_def_t *def) /* {{{ */
 {
+  graph_def_t *tmp;
+
   if ((cfg == NULL) || (def == NULL))
     return (EINVAL);
 
@@ -265,7 +290,11 @@ int graph_add_def (graph_config_t *cfg, graph_def_t *def) /* {{{ */
     return (0);
   }
 
-  return (def_append (cfg->defs, def));
+  /* Insert in reverse order. This makes the order in the config file and the
+   * order of the DEFs in the graph more natural. Really. */
+  tmp = cfg->defs;
+  cfg->defs = def;
+  return (def_append (cfg->defs, tmp));
 } /* }}} int graph_add_def */
 
 _Bool graph_matches_ident (graph_config_t *cfg, const graph_ident_t *ident) /* {{{ */
@@ -470,27 +499,27 @@ int graph_clear_instances (graph_config_t *cfg) /* {{{ */
 } /* }}} int graph_clear_instances */
 
 int graph_get_rrdargs (graph_config_t *cfg, graph_instance_t *inst, /* {{{ */
-    str_array_t *args)
+    rrd_args_t *args)
 {
   if ((cfg == NULL) || (inst == NULL) || (args == NULL))
     return (EINVAL);
 
   if (cfg->title != NULL)
   {
-    array_append (args, "-t");
-    array_append (args, cfg->title);
+    array_append (args->options, "-t");
+    array_append (args->options, cfg->title);
   }
 
   if (cfg->vertical_label != NULL)
   {
-    array_append (args, "-v");
-    array_append (args, cfg->vertical_label);
+    array_append (args->options, "-v");
+    array_append (args->options, cfg->vertical_label);
   }
 
   if (cfg->show_zero)
   {
-    array_append (args, "-l");
-    array_append (args, "0");
+    array_append (args->options, "-l");
+    array_append (args->options, "0");
   }
 
   return (0);