* @map: the typed strmap to search.
* @member: the string to search for.
*
- * Returns the value, or NULL if it isn't in the map.
+ * Returns the value, or NULL if it isn't in the map (and sets errno = ENOENT).
*
* Example:
* int *val = strmap_get(&map, "hello");
* @member: the string to remove from the map.
* @valuep: the value (if non-NULL)
*
- * This returns the string which was passed to strmap_map(), or NULL.
+ * This returns the string which was passed to strmap_map(), or NULL if
+ * it was not in the map (and sets errno = ENOENT).
+ *
* This means that if you allocated a string (eg. using strdup()), you
* can free it here. Similarly, the value is returned in @valuep if
* @valuep is not NULL.
* @handle's prototype should be:
* bool @handle(const char *member, type value, typeof(arg) arg)
*
- * If @handle returns true, the iteration will stop.
+ * If @handle returns false, the iteration will stop.
* You should not alter the map within the @handle function!
*
* Example:
* {
* // Only dump out num nodes.
* if (*(num--) == 0)
- * return true;
+ * return false;
* printf("%s=>%i\n", member, *value);
- * return false;
+ * return true;
* }
*
* static void dump_map(const struct strmap_intp *map)
__typeof__(arg)), (handle)), \
(arg))
void strmap_iterate_(const struct strmap *map,
- bool (*handle)(const char *, void *, void *), void *data);
-
+ bool (*handle)(const char *, void *, void *),
+ const void *data);
/**
* strmap_prefix - return a submap matching a prefix