aboutsummaryrefslogtreecommitdiff
path: root/lib/error_handler.c
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2020-04-18 15:28:21 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2020-04-19 00:32:26 -0400
commitf70b803e39484a2eba362414545ba8afd027c9da (patch)
tree9fd89a070f272df3e0c47de821f6fbf38c914360 /lib/error_handler.c
parent59f7d29e2d707373ba1153337dca3279a2e3acc5 (diff)
downloadspmc-f70b803e39484a2eba362414545ba8afd027c9da.tar.gz
Add error handler
Diffstat (limited to 'lib/error_handler.c')
-rw-r--r--lib/error_handler.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/error_handler.c b/lib/error_handler.c
new file mode 100644
index 0000000..baf56b4
--- /dev/null
+++ b/lib/error_handler.c
@@ -0,0 +1,27 @@
+#include "spm.h"
+
+int spmerrno = 0;
+static char spmerrbuf[255];
+
+/**
+ *
+ * @param code
+ * @return
+ */
+char *spm_strerror(int code) {
+ char *buf = spmerrbuf;
+ int is_spm_error = SPM_ERR_CONFIRM(code);
+
+ memset(buf, '\0', sizeof(spmerrbuf));
+ if (is_spm_error == 0) {
+ strcpy(buf, strerror(code));
+ } else {
+ strcpy(buf, SPM_ERR_STRING[SPM_ERR_INDEX(code)]);
+ }
+ return buf;
+}
+
+void spm_perror(const char *msg) {
+ fprintf(stderr, "%s: %s\n", msg ? msg : "", spm_strerror(spmerrno));
+}
+