commit 8475094bf2b26b40e5884dbe790222dc904fd217
parent 0b0912907edf1f93e405cb9ba00f8b6a146d09b5
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date: Sun, 6 Nov 2022 14:35:49 +0100
libc/wchar: Add mbrlen()
Diffstat:
4 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/include/wchar.h b/include/wchar.h
@@ -93,4 +93,7 @@ extern size_t wcrtomb(char *restrict, wchar_t, mbstate_t *restrict);
extern size_t mbsrtowcs(wchar_t *restrict, const char **restrict, size_t, mbstate_t *restrict);
extern size_t wcsrtombs(char *restrict, const wchar_t **restrict, size_t, mbstate_t *restrict);
extern int wcwidth(wchar_t);
+
+#define mbrlen(s, n, ps) mbrtowc(NULL, s, n, ps)
+
#endif
diff --git a/src/libc/objs/common-objs.mk b/src/libc/objs/common-objs.mk
@@ -116,5 +116,6 @@ COMMON_OBJS =\
time/mktime.$O\
time/strftime.$O\
time/tz.$O\
+ wchar/mbrlen.$O\
wchar/mbrtowc.$O\
wchar/wcwidth.$O\
diff --git a/src/libc/wchar/Makefile b/src/libc/wchar/Makefile
@@ -4,6 +4,7 @@ include $(PROJECTDIR)/scripts/rules.mk
include ../rules.mk
OBJS =\
+ mbrlen.$O\
mbrtowc.$O\
wcwidth.$O\
diff --git a/src/libc/wchar/mbrlen.c b/src/libc/wchar/mbrlen.c
@@ -0,0 +1,9 @@
+#include <wchar.h>
+
+#undef mbrlen
+
+size_t
+mbrlen(const char *restrict s, size_t n, mbstate_t *restrict ps)
+{
+ return mbrtowc(NULL, s, n, ps);
+}