summaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/util')
-rw-r--r--src/util/error.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/util/error.h b/src/util/error.h
index 0849ddb..c45f0f0 100644
--- a/src/util/error.h
+++ b/src/util/error.h
@@ -1,3 +1,5 @@
+#pragma once
+
#include <al/lib.h>
#include <errno.h>
@@ -9,7 +11,11 @@ extern __al_thread char errorbuf[AKI_ERROR_STR_MAXLEN];
static inline char *aki_strerror(s32 errnum)
{
#ifndef _WIN32
- (void)!strerror_r(errnum, errorbuf, AKI_ERROR_STR_MAXLEN);
+#if (_POSIX_C_SOURCE >= 200112L) && ! _GNU_SOURCE
+ if (strerror_r(errnum, errorbuf, AKI_ERROR_STR_MAXLEN) != 0) errorbuf[0] = '\0';
+#else
+ return strerror_r(errnum, errorbuf, AKI_ERROR_STR_MAXLEN);
+#endif
#else
strerror_s(errorbuf, AKI_ERROR_STR_MAXLEN, errnum);
#endif