scc

simple c99 compiler
git clone git://git.simple-cc.org/scc
Log | Files | Refs | Submodules | README | LICENSE

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:
Minclude/wchar.h | 3+--
Msrc/libc/Makefile | 1+
Asrc/libc/wchar/Makefile | 11+++++++++++
Asrc/libc/wchar/deps.mk | 1+
Asrc/libc/wchar/wcwidth.c | 13+++++++++++++
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; +}