src/graph.[ch]: Implement "graph_sort_instances".
[collection4.git] / src / graph.c
index 5c143b4..9d435c2 100644 (file)
@@ -299,8 +299,10 @@ int graph_add_def (graph_config_t *cfg, graph_def_t *def) /* {{{ */
 
 _Bool graph_matches_ident (graph_config_t *cfg, const graph_ident_t *ident) /* {{{ */
 {
+#if C4_DEBUG
   if ((cfg == NULL) || (ident == NULL))
     return (0);
+#endif
 
   return (ident_matches (cfg->select, ident));
 } /* }}} _Bool graph_matches_ident */
@@ -482,6 +484,20 @@ int graph_compare (graph_config_t *cfg, const graph_ident_t *ident) /* {{{ */
   return (ident_compare (cfg->select, ident));
 } /* }}} int graph_compare */
 
+int graph_sort_instances (graph_config_t *cfg) /* {{{ */
+{
+  if (cfg == NULL)
+    return (EINVAL);
+
+  if (cfg->instances_num < 2)
+    return (0);
+
+  qsort (cfg->instances, cfg->instances_num, sizeof (*cfg->instances),
+      (void *) ident_compare);
+
+  return (0);
+} /* }}} int graph_sort_instances */
+
 int graph_clear_instances (graph_config_t *cfg) /* {{{ */
 {
   size_t i;