summaryrefslogtreecommitdiff
path: root/include/libwapcaplet/libwapcaplet.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/libwapcaplet/libwapcaplet.h')
-rw-r--r--include/libwapcaplet/libwapcaplet.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/include/libwapcaplet/libwapcaplet.h b/include/libwapcaplet/libwapcaplet.h
index b71306c..e5b1844 100644
--- a/include/libwapcaplet/libwapcaplet.h
+++ b/include/libwapcaplet/libwapcaplet.h
@@ -29,6 +29,14 @@ typedef void *(*lwc_allocator_fn)(void *ptr, size_t size, void *pw);
typedef struct lwc_string_s lwc_string;
/**
+ * String iteration function
+ *
+ * @param str A string which has been interned.
+ * @param pw The private pointer for the allocator.
+ */
+typedef void (*lwc_iteration_callback_fn)(lwc_string *str, void *pw);
+
+/**
* Result codes which libwapcaplet might return.
*/
typedef enum lwc_error_e {
@@ -149,7 +157,7 @@ extern void lwc_string_unref(lwc_string *str);
* by \a ret will not be valid.
*/
#define lwc_string_isequal(str1, str2, ret) \
- (*ret = (str1 == str2)), lwc_error_ok
+ ((*(ret) = ((str1) == (str2))), lwc_error_ok)
/**
* Check if two interned strings are case-insensitively equal.
@@ -199,4 +207,12 @@ extern size_t lwc_string_length(lwc_string *str);
*/
extern uint32_t lwc_string_hash_value(lwc_string *str);
+/**
+ * Iterate the context and return every string in it.
+ *
+ * @param cb The callback to give the string to.
+ * @param pw The private word for the callback.
+ */
+extern void lwc_iterate_strings(lwc_iteration_callback_fn cb, void *pw);
+
#endif /* libwapcaplet_h_ */