commit e2a539b841ab9e0edd116b43473cbb11ca6f1196
parent b3ac2d6c35ab05cde378a4f0b625123e9bc9306a
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Tue, 15 Mar 2022 16:20:15 +0100
libc: wchar: initial wcwidth implementation (incomplete)
Diffstat:
5 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/include/wchar.h b/include/wchar.h
@@ -91,6 +91,5 @@ extern size_t mbrtowc(wchar_t * restrict pwc, const char * restrict s, size_t n,
extern size_t wcrtomb(char * restrict s, wchar_t wc, mbstate_t * restrict ps);
extern size_t mbsrtowcs(wchar_t * restrict dst, const char ** restrict src, size_t len, mbstate_t * restrict ps);
extern size_t wcsrtombs(char * restrict dst, const wchar_t ** restrict src, size_t len, mbstate_t * restrict ps);
-
-
+extern int wcwidth(wchar_t wc);
#endif
diff --git a/src/libc/Makefile b/src/libc/Makefile
@@ -9,6 +9,7 @@ DIRS =\
stdlib\
string\
time\
+ wchar\
arch\
include $(PROJECTDIR)/scripts/rules.mk
diff --git a/src/libc/wchar/Makefile b/src/libc/wchar/Makefile
@@ -0,0 +1,11 @@
+.POSIX:
+PROJECTDIR =../../..
+include $(PROJECTDIR)/scripts/rules.mk
+include ../rules.mk
+
+OBJS =\
+ wcwidth.$O\
+
+all: $(OBJS)
+
+include deps.mk
diff --git a/src/libc/wchar/deps.mk b/src/libc/wchar/deps.mk
@@ -0,0 +1 @@
+#deps
diff --git a/src/libc/wchar/wcwidth.c b/src/libc/wchar/wcwidth.c
@@ -0,0 +1,13 @@
+#include <wchar.h>
+#undef wcwidth
+
+/* incomplete, needs a real implementation */
+int
+wcwidth(wchar_t wc)
+{
+ if (!wc)
+ return 0;
+ else if (wc < 32 || wc >= 127)
+ return -1;
+ return 1;
+}