Browse Source

faux: ini: faux_ini_each()

Serj Kalichev 4 years ago
parent
commit
72c290f356
3 changed files with 37 additions and 79 deletions
  1. 7 16
      faux/ini.h
  2. 17 63
      faux/ini/ini.c
  3. 13 0
      faux/ini/private.h

+ 7 - 16
faux/ini.h

@@ -15,32 +15,23 @@ typedef faux_list_node_t faux_ini_node_t;
 C_DECL_BEGIN
 
 // Pair
-int faux_pair_compare(const void *first, const void *second);
-faux_pair_t *faux_pair_new(const char *name, const char *value);
-void faux_pair_free(void *pair);
-
 const char *faux_pair_name(const faux_pair_t *pair);
-void faux_pair_set_name(faux_pair_t *pair, const char *name);
 const char *faux_pair_value(const faux_pair_t *pair);
-void faux_pair_set_value(faux_pair_t *pair, const char *value);
 
 // Ini
 faux_ini_t *faux_ini_new(void);
 void faux_ini_free(faux_ini_t *ini);
 
-faux_ini_node_t *faux_ini_head(const faux_ini_t *ini);
-faux_ini_node_t *faux_ini_tail(const faux_ini_t *ini);
-faux_ini_node_t *faux_ini_next(const faux_ini_node_t *node);
-faux_ini_node_t *faux_ini_prev(const faux_ini_node_t *node);
-faux_pair_t *faux_ini_data(const faux_ini_node_t *node);
-
-faux_pair_t *faux_ini_set(faux_ini_t *ini, const char *name, const char *value);
+const faux_pair_t *faux_ini_set(faux_ini_t *ini, const char *name, const char *value);
 void faux_ini_unset(faux_ini_t *ini, const char *name);
-int faux_ini_parse_str(faux_ini_t *ini, const char *str);
-int faux_ini_parse_file(faux_ini_t *ini, const char *fn);
 
-faux_pair_t *faux_ini_find_pair(const faux_ini_t *ini, const char *name);
+const faux_pair_t *faux_ini_find_pair(const faux_ini_t *ini, const char *name);
 const char *faux_ini_find(const faux_ini_t *ini, const char *name);
+faux_ini_node_t *faux_ini_init_iter(const faux_ini_t *ini);
+const faux_pair_t *faux_ini_each(faux_ini_node_t **iter);
+
+int faux_ini_parse_str(faux_ini_t *ini, const char *str);
+int faux_ini_parse_file(faux_ini_t *ini, const char *fn);
 
 C_DECL_END
 

+ 17 - 63
faux/ini/ini.c

@@ -40,17 +40,7 @@ void faux_ini_free(faux_ini_t *ini) {
 }
 
 
-static int faux_ini_del(faux_ini_t *ini, faux_ini_node_t *node) {
-
-	assert(ini);
-	assert(node);
-	if (!ini || !node)
-		return -1;
-
-	return faux_list_del(ini->list, (faux_list_node_t *)node);
-}
-
-faux_pair_t *faux_ini_set(faux_ini_t *ini, const char *name, const char *value) {
+const faux_pair_t *faux_ini_set(faux_ini_t *ini, const char *name, const char *value) {
 
 	faux_pair_t *pair = NULL;
 	faux_list_node_t *node = NULL;
@@ -100,7 +90,7 @@ void faux_ini_unset(faux_ini_t *ini, const char *name) {
 
 
 /* Find pair by name */
-faux_pair_t *faux_ini_find_pair(const faux_ini_t *ini, const char *name) {
+const faux_pair_t *faux_ini_find_pair(const faux_ini_t *ini, const char *name) {
 
 	faux_list_node_t *iter = NULL;
 	faux_pair_t *pair = NULL;
@@ -123,7 +113,7 @@ faux_pair_t *faux_ini_find_pair(const faux_ini_t *ini, const char *name) {
 /* Find value by name */
 const char *faux_ini_find(const faux_ini_t *ini, const char *name) {
 
-	faux_pair_t *pair = faux_ini_find_pair(ini, name);
+	const faux_pair_t *pair = faux_ini_find_pair(ini, name);
 
 	if (!pair)
 		return NULL;
@@ -132,6 +122,20 @@ const char *faux_ini_find(const faux_ini_t *ini, const char *name) {
 }
 
 
+faux_ini_node_t *faux_ini_init_iter(const faux_ini_t *ini) {
+
+	assert(ini);
+	if (!ini)
+		return NULL;
+
+	return (faux_ini_node_t *)faux_list_head(ini->list);
+}
+
+const faux_pair_t *faux_ini_each(faux_ini_node_t **iter) {
+
+	return (const faux_pair_t *)faux_list_each((faux_list_node_t **)iter);
+}
+
 int faux_ini_parse_str(faux_ini_t *ini, const char *string) {
 
 	char *buffer = NULL;
@@ -238,53 +242,3 @@ error:
 
 	return ret;
 }
-
-
-faux_ini_node_t *faux_ini_head(const faux_ini_t *ini) {
-
-	assert(ini);
-	if (!ini)
-		return NULL;
-
-	return faux_list_head(ini->list);
-}
-
-
-faux_ini_node_t *faux_ini_tail(const faux_ini_t *ini) {
-
-	assert(ini);
-	if (!ini)
-		return NULL;
-
-	return faux_list_tail(ini->list);
-}
-
-
-faux_ini_node_t *faux_ini_next(const faux_ini_node_t *node) {
-
-	assert(node);
-	if (!node)
-		return NULL;
-
-	return faux_list_next_node(node);
-}
-
-
-faux_ini_node_t *faux_ini_prev(const faux_ini_node_t *node) {
-
-	assert(node);
-	if (!node)
-		return NULL;
-
-	return faux_list_prev_node(node);
-}
-
-
-faux_pair_t *faux_ini_data(const faux_ini_node_t *node) {
-
-	assert(node);
-	if (!node)
-		return NULL;
-
-	return (faux_pair_t *)faux_list_data(node);
-}

+ 13 - 0
faux/ini/private.h

@@ -1,4 +1,6 @@
+#include "faux/faux.h"
 #include "faux/list.h"
+#include "faux/ini.h"
 
 struct faux_pair_s {
 	char *name;
@@ -8,3 +10,14 @@ struct faux_pair_s {
 struct faux_ini_s {
 	faux_list_t *list;
 };
+
+C_DECL_BEGIN
+
+int faux_pair_compare(const void *first, const void *second);
+faux_pair_t *faux_pair_new(const char *name, const char *value);
+void faux_pair_free(void *pair);
+
+void faux_pair_set_name(faux_pair_t *pair, const char *name);
+void faux_pair_set_value(faux_pair_t *pair, const char *value);
+
+C_DECL_END