summaryrefslogtreecommitdiff
path: root/include/search.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/search.h')
-rw-r--r--include/search.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/search.h b/include/search.h
index 1e48deb..d68e24a 100644
--- a/include/search.h
+++ b/include/search.h
@@ -47,6 +47,8 @@ typedef enum {
typedef struct entry {
const char *key;
char *data;
+ int (*callback)(const char *name, const char *value, enum env_op op,
+ int flags);
} ENTRY;
/* Opaque type for internal use. */
@@ -120,6 +122,9 @@ extern int himport_r(struct hsearch_data *__htab,
const char *__env, size_t __size, const char __sep,
int __flag, int nvars, char * const vars[]);
+/* Walk the whole table calling the callback on each element */
+extern int hwalk_r(struct hsearch_data *__htab, int (*callback)(ENTRY *));
+
/* Flags for himport_r(), hexport_r(), hdelete_r(), and hsearch_r() */
#define H_NOCLEAR (1 << 0) /* do not clear hash table before importing */
#define H_FORCE (1 << 1) /* overwrite read-only/write-once variables */