commit 8a590d4b21a22baaacf934ece3f0372e6b72faba
parent 3cb21279e81fde0e4dc9b10061b9aa2ecd7225b5
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date: Sun, 6 Nov 2022 20:26:11 +0100
libc: Protect definitions of MB_CUR_MAX
MB_CUR_MAX is defined in limits.h and stdlib.h and it
implies that the inclusion guards cannot protect
against multiple definitions of it.
Diffstat:
3 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/include/limits.h b/include/limits.h
@@ -3,6 +3,8 @@
#include <arch/limits.h>
+#ifndef MB_LEN_MAX
#define MB_LEN_MAX 4
+#endif
#endif
diff --git a/include/stdlib.h b/include/stdlib.h
@@ -11,7 +11,10 @@
#define _ATEXIT_MAX 32
+#ifndef MB_CUR_MAX
#define MB_CUR_MAX 4
+#endif
+
#define RAND_MAX 32767
typedef struct {
diff --git a/src/libc/wchar/_validutf8.c b/src/libc/wchar/_validutf8.c
@@ -0,0 +1,15 @@
+#include <wchar.h>
+
+#include "../libc.h"
+
+int
+_validutf8(wchar_t wc)
+{
+ if (wc >= 0xD800 && wc < 0xDBFF)
+ return 0;
+ if (wc >= 0xDC00 && wc < 0xDCFF)
+ return 0;
+ if (wc > 0x10FFFF)
+ return 0;
+ return 1;
+}