diff options
author | Mattias Andrée <maandree@kth.se> | 2021-03-05 00:43:38 +0100 |
---|---|---|
committer | Mattias Andrée <maandree@kth.se> | 2021-03-05 00:43:38 +0100 |
commit | 0ce0d8d6e0c420ccafa79e0203b928c3559a4311 (patch) | |
tree | 88e8228a93691c28811a49898abf86a96dd9d613 /libgamma_strerror.c | |
parent | Change license + change style + misc (diff) | |
download | libgamma-0ce0d8d6e0c420ccafa79e0203b928c3559a4311.tar.gz libgamma-0ce0d8d6e0c420ccafa79e0203b928c3559a4311.tar.bz2 libgamma-0ce0d8d6e0c420ccafa79e0203b928c3559a4311.tar.xz |
Split source files, merge public header files, eliminite use gpp, rewrite makefile
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to '')
-rw-r--r-- | libgamma_strerror.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/libgamma_strerror.c b/libgamma_strerror.c new file mode 100644 index 0000000..c252a49 --- /dev/null +++ b/libgamma_strerror.c @@ -0,0 +1,32 @@ +/* See LICENSE file for copyright and license details. */ +#include "common.h" + + +/** + * Get a description of an error + * + * @param error_code The error code, may be an `errno` value, if + * `LIBGAMMA_ERRNO_SET`, the current value of `errno` + * will be used + * @return The description associated with the error code, + * `NULL` if the error code is not recognised + */ +const char * +libgamma_strerror(int error_code) +{ + const char *desc; + if (error_code == LIBGAMMA_ERRNO_SET) + error_code = errno; + switch (error_code) { +#define X(NAME, DESC)\ + case NAME:\ + desc = #NAME;\ + break; + LIST_ERRORS(X) +#undef X + default: + desc = NULL; + break; + } + return desc ? desc : error_code < 0 ? NULL : strerror(error_code); +} |