src/graph.[ch]: Implement "graph_ident_intersect".
authorFlorian Forster <ff@octo.it>
Mon, 12 Jul 2010 16:58:30 +0000 (18:58 +0200)
committerFlorian Forster <octo@leeloo.lan.home.verplant.org>
Mon, 12 Jul 2010 16:58:30 +0000 (18:58 +0200)
src/graph.c
src/graph.h

index c6fb444..2c1afc8 100644 (file)
@@ -318,6 +318,17 @@ _Bool graph_matches_ident (graph_config_t *cfg, /* {{{ */
   return (ident_matches (selector, cfg->select));
 } /* }}} _Bool graph_matches_ident */
 
+_Bool graph_ident_intersect (graph_config_t *cfg, /* {{{ */
+    const graph_ident_t *selector)
+{
+#if C4_DEBUG
+  if ((cfg == NULL) || (selector == NULL))
+    return (0);
+#endif
+
+  return (ident_intersect (cfg->select, selector));
+} /* }}} _Bool graph_ident_intersect */
+
 _Bool graph_matches_field (graph_config_t *cfg, /* {{{ */
     graph_ident_field_t field, const char *field_value)
 {
index b7a7a89..7dca2ce 100644 (file)
@@ -62,6 +62,12 @@ _Bool graph_ident_matches (graph_config_t *cfg, const graph_ident_t *ident);
 _Bool graph_matches_ident (graph_config_t *cfg,
     const graph_ident_t *selector);
 
+/* Returns true if a file may apply to both, the graphs selector and the
+ * selector given as argument. If the selectors contradict one another,
+ * returns false. */
+_Bool graph_ident_intersect (graph_config_t *cfg,
+    const graph_ident_t *selector);
+
 /* Compares the given string with the appropriate field of the selector. If
  * the selector field is "/all/" or "/any/", returns true without checking the
  * instances. See "graph_inst_search_field" for finding all matching