summaryrefslogtreecommitdiff
path: root/src/lib-config
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib-config')
-rw-r--r--src/lib-config/get.c14
-rw-r--r--src/lib-config/iconfig.h2
2 files changed, 16 insertions, 0 deletions
diff --git a/src/lib-config/get.c b/src/lib-config/get.c
index 98e2a30b..21b97251 100644
--- a/src/lib-config/get.c
+++ b/src/lib-config/get.c
@@ -308,3 +308,17 @@ CONFIG_NODE *config_node_index(CONFIG_NODE *node, int index)
return NULL;
}
+
+/* Returns the next non-comment node in list */
+GSList *config_node_next(GSList *list)
+{
+ list = list->next;
+ while (list != NULL) {
+ CONFIG_NODE *node = list->data;
+
+ if (node->type != NODE_TYPE_COMMENT)
+ break;
+ list = list->next;
+ }
+ return list;
+}
diff --git a/src/lib-config/iconfig.h b/src/lib-config/iconfig.h
index ea2e6c37..d63af031 100644
--- a/src/lib-config/iconfig.h
+++ b/src/lib-config/iconfig.h
@@ -99,6 +99,8 @@ const char *config_list_find(CONFIG_REC *rec, const char *section, const char *k
CONFIG_NODE *config_list_find_node(CONFIG_REC *rec, const char *section, const char *key, const char *value, const char *value_key);
/* Returns n'th node from list. */
CONFIG_NODE *config_node_index(CONFIG_NODE *node, int index);
+/* Returns the next non-comment node in list */
+GSList *config_node_next(GSList *list);
/* Setting values */
int config_set_str(CONFIG_REC *rec, const char *section, const char *key, const char *value);