summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
}