Merge branch 'master' of verplant.org:/var/lib/git/collection4
[collection4.git] / src / graph_list.c
index f3e9738..de80b3b 100644 (file)
@@ -73,7 +73,7 @@ static int gl_register_file (const graph_ident_t *file, /* {{{ */
     graph_config_t *cfg = gl_active[i];
     int status;
 
-    if (!graph_matches (cfg, file))
+    if (!graph_matches_ident (cfg, file))
       continue;
 
     status = graph_add_file (cfg, file);
@@ -236,8 +236,7 @@ int gl_graph_instance_get_all (graph_config_t *cfg, /* {{{ */
   if ((cfg == NULL) || (callback == NULL))
     return (EINVAL);
 
-  return (inst_foreach (graph_get_instances (cfg),
-        gl_inst_callback_handler, &data));
+  return (graph_inst_foreach (cfg, gl_inst_callback_handler, &data));
 } /* }}} int gl_graph_instance_get_all */
 
 int gl_instance_get_all (graph_inst_callback_t callback, /* {{{ */
@@ -269,7 +268,7 @@ int gl_search (const char *term, graph_inst_callback_t callback, /* {{{ */
   {
     int status;
 
-    status = graph_search (gl_active[i], term,
+    status = graph_inst_search (gl_active[i], term,
         /* callback  = */ callback,
         /* user data = */ user_data);
     if (status != 0)
@@ -279,6 +278,30 @@ int gl_search (const char *term, graph_inst_callback_t callback, /* {{{ */
   return (0);
 } /* }}} int gl_search */
 
+int gl_search_field (graph_ident_field_t field, /* {{{ */
+    const char *field_value,
+    graph_inst_callback_t callback, void *user_data)
+{
+  size_t i;
+
+  if ((field_value == NULL) || (callback == NULL))
+    return (EINVAL);
+
+  for (i = 0; i < gl_active_num; i++)
+  {
+    int status;
+
+    status = graph_inst_search_field (gl_active[i],
+        field, field_value,
+        /* callback  = */ callback,
+        /* user data = */ user_data);
+    if (status != 0)
+      return (status);
+  }
+
+  return (0);
+} /* }}} int gl_search_field */
+
 int gl_update (void) /* {{{ */
 {
   time_t now;