aboutsummaryrefslogtreecommitdiffstats
path: root/libgamma_value_of_error.c
diff options
context:
space:
mode:
Diffstat (limited to 'libgamma_value_of_error.c')
-rw-r--r--libgamma_value_of_error.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/libgamma_value_of_error.c b/libgamma_value_of_error.c
new file mode 100644
index 0000000..6d2f878
--- /dev/null
+++ b/libgamma_value_of_error.c
@@ -0,0 +1,23 @@
+/* See LICENSE file for copyright and license details. */
+#include "common.h"
+
+
+/**
+ * Get the value of a `libgamma` error definition refered to by name
+ *
+ * @param name The name of the definition associated with the error code
+ * @return The error code, zero if the name does is `NULL`
+ * or does not refer to a `libgamma` error
+ */
+int
+libgamma_value_of_error(const char *name)
+{
+ if (!name)
+ return 0;
+#define X(NAME, DESC)\
+ if (!strcmp(name, #NAME))\
+ return NAME;
+ LIST_ERRORS(X)
+ #undef X
+ return 0;
+}