X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fgraph.c;h=0802bee4306f70775e6f7ac34f9fbdb1d8fbe407;hb=1b6d2fdc7299279432f4b8cab32f3edf46177aab;hp=4ed2d155c7988e9c24bcfe14dba09d90c0b920d5;hpb=7411750e5355656ba767517b201674aebb8312fa;p=collection4.git diff --git a/src/graph.c b/src/graph.c index 4ed2d15..0802bee 100644 --- a/src/graph.c +++ b/src/graph.c @@ -342,6 +342,30 @@ graph_instance_t *graph_inst_find_matching (graph_config_t *cfg, /* {{{ */ return (NULL); } /* }}} graph_instance_t *graph_inst_find_matching */ +int graph_inst_find_all_matching (graph_config_t *cfg, /* {{{ */ + const graph_ident_t *ident, + graph_inst_callback_t callback, void *user_data) +{ + size_t i; + + if ((cfg == NULL) || (ident == NULL) || (callback == NULL)) + return (EINVAL); + + for (i = 0; i < cfg->instances_num; i++) + { + int status; + + if (!inst_matches_ident (cfg->instances[i], ident)) + continue; + + status = (*callback) (cfg, cfg->instances[i], user_data); + if (status != 0) + return (status); + } + + return (0); +} /* }}} int graph_inst_find_all_matching */ + int graph_inst_search (graph_config_t *cfg, const char *term, /* {{{ */ graph_inst_callback_t cb, void *user_data)