summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2011-08-09 11:20:31 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2011-08-22 15:56:50 +1000
commitd33652dad8838ab0a9175ca4613a3161ebc5676f (patch)
treeeffb152c416afbda85a5655eb0f06cb5220bd75d
parente684e816acb617b4dc66a68e2b0ba8f80399170a (diff)
config: return the new InputOption from add_option.
Change add_option to return the new InputOption on success, or NULL failure. This way we can at least check for errors in callers. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org>
-rw-r--r--config/config-backends.h2
-rw-r--r--config/config.c13
2 files changed, 11 insertions, 4 deletions
diff --git a/config/config-backends.h b/config/config-backends.h
index 0a2a22af0..0d36d7208 100644
--- a/config/config-backends.h
+++ b/config/config-backends.h
@@ -30,7 +30,7 @@
void remove_devices(const char *backend, const char *config_info);
BOOL device_is_duplicate(const char *config_info);
-void add_option(InputOption **options, const char *key, const char *value);
+InputOption* add_option(InputOption **options, const char *key, const char *value);
#ifdef CONFIG_UDEV
int config_udev_init(void);
diff --git a/config/config.c b/config/config.c
index d86f7c649..af8f4f9b2 100644
--- a/config/config.c
+++ b/config/config.c
@@ -122,18 +122,25 @@ device_is_duplicate(const char *config_info)
return FALSE;
}
-void
+/**
+ * Allocate a new option and append to the list.
+ *
+ * @return A pointer to the newly allocated InputOption struct.
+ */
+InputOption*
add_option(InputOption **options, const char *key, const char *value)
{
if (!value || *value == '\0')
- return;
+ return NULL;
for (; *options; options = &(*options)->next)
;
*options = calloc(sizeof(**options), 1);
if (!*options) /* Yeesh. */
- return;
+ return NULL;
(*options)->key = strdup(key);
(*options)->value = strdup(value);
(*options)->next = NULL;
+
+ return *options;
}