src/graph.[ch]: Rename "graph_inst_search" to "graph_search_inst_string".
[collection4.git] / src / graph.c
index 49bd765..66dbd47 100644 (file)
@@ -297,7 +297,7 @@ int graph_add_def (graph_config_t *cfg, graph_def_t *def) /* {{{ */
   return (def_append (cfg->defs, tmp));
 } /* }}} int graph_add_def */
 
-_Bool graph_matches_ident (graph_config_t *cfg, const graph_ident_t *ident) /* {{{ */
+_Bool graph_ident_matches (graph_config_t *cfg, const graph_ident_t *ident) /* {{{ */
 {
 #if C4_DEBUG
   if ((cfg == NULL) || (ident == NULL))
@@ -305,6 +305,17 @@ _Bool graph_matches_ident (graph_config_t *cfg, const graph_ident_t *ident) /* {
 #endif
 
   return (ident_matches (cfg->select, ident));
+} /* }}} _Bool graph_ident_matches */
+
+_Bool graph_matches_ident (graph_config_t *cfg, /* {{{ */
+    const graph_ident_t *selector)
+{
+#if C4_DEBUG
+  if ((cfg == NULL) || (selector == NULL))
+    return (0);
+#endif
+
+  return (ident_matches (selector, cfg->select));
 } /* }}} _Bool graph_matches_ident */
 
 _Bool graph_matches_field (graph_config_t *cfg, /* {{{ */
@@ -397,7 +408,7 @@ int graph_inst_find_all_matching (graph_config_t *cfg, /* {{{ */
   return (0);
 } /* }}} int graph_inst_find_all_matching */
 
-int graph_inst_search (graph_config_t *cfg, const char *term, /* {{{ */
+int graph_search_inst_string (graph_config_t *cfg, const char *term, /* {{{ */
     graph_inst_callback_t cb,
     void *user_data)
 {
@@ -408,7 +419,7 @@ int graph_inst_search (graph_config_t *cfg, const char *term, /* {{{ */
   status = graph_get_title (cfg, buffer, sizeof (buffer));
   if (status != 0)
   {
-    fprintf (stderr, "graph_inst_search: graph_get_title failed\n");
+    fprintf (stderr, "graph_search_inst_string: graph_get_title failed\n");
     return (status);
   }
 
@@ -437,7 +448,7 @@ int graph_inst_search (graph_config_t *cfg, const char *term, /* {{{ */
   }
 
   return (0);
-} /* }}} int graph_inst_search */
+} /* }}} int graph_search_inst_string */
 
 int graph_inst_search_field (graph_config_t *cfg, /* {{{ */
     graph_ident_field_t field, const char *field_value,
@@ -484,6 +495,34 @@ int graph_compare (graph_config_t *cfg, const graph_ident_t *ident) /* {{{ */
   return (ident_compare (cfg->select, ident));
 } /* }}} int graph_compare */
 
+static int graph_sort_instances_cb (const void *v0, const void *v1) /* {{{ */
+{
+  return (inst_compare (*(graph_instance_t * const *) v0,
+        *(graph_instance_t * const *) v1));
+} /* }}} int graph_sort_instances_cb */
+
+size_t graph_num_instances (graph_config_t *cfg) /* {{{ */
+{
+  if (cfg == NULL)
+    return ((size_t) -1);
+
+  return (cfg->instances_num);
+} /* }}} size_t graph_num_instances */
+
+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),
+      graph_sort_instances_cb);
+
+  return (0);
+} /* }}} int graph_sort_instances */
+
 int graph_clear_instances (graph_config_t *cfg) /* {{{ */
 {
   size_t i;