summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/messages.c17
-rw-r--r--utils/messages.h1
2 files changed, 18 insertions, 0 deletions
diff --git a/utils/messages.c b/utils/messages.c
index 4d07a47ef..f2ed3e037 100644
--- a/utils/messages.c
+++ b/utils/messages.c
@@ -121,6 +121,23 @@ const char *messages_get(const char *key)
return entry->value;
}
+/**
+ * Retrieve the key associated with a value
+ *
+ * \param value The value as returned by messages_get
+ * \return The key associated with the value or NULL if not found
+ */
+const char *messages_get_key(const char *value)
+{
+ const char *key = value - MAX_KEY_LENGTH;
+ const char *temp_value = messages_get(key);
+
+ if (strcmp(value, temp_value) == 0)
+ return key;
+
+ return NULL;
+}
+
/**
* Hash function for keys.
diff --git a/utils/messages.h b/utils/messages.h
index 4ca079293..33b2fc3f4 100644
--- a/utils/messages.h
+++ b/utils/messages.h
@@ -23,6 +23,7 @@
void messages_load(const char *path);
const char *messages_get(const char *key);
+const char *messages_get_key(const char *value);
void messages_dump(void);
#endif