From 5e4171c975a2529fa7631f87d5541566617ab0bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Wed, 15 Sep 2004 12:20:03 +0000 Subject: [PATCH] Made a minimum subset build - mbrtowc() is currently a hack to make it work... git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8967 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kernel/libroot/posix/glibc/wcsmbs/Jamfile | 18 ++++++++++++++++++ .../libroot/posix/glibc/wcsmbs/mbrtowc.c | 16 +++++++++++++++- src/kernel/libroot/posix/glibc/wcsmbs/wchar.h | 2 ++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 src/kernel/libroot/posix/glibc/wcsmbs/Jamfile diff --git a/src/kernel/libroot/posix/glibc/wcsmbs/Jamfile b/src/kernel/libroot/posix/glibc/wcsmbs/Jamfile new file mode 100644 index 0000000000..1918a436a4 --- /dev/null +++ b/src/kernel/libroot/posix/glibc/wcsmbs/Jamfile @@ -0,0 +1,18 @@ +SubDir OBOS_TOP src kernel libroot posix glibc wcsmbs ; + +SubDirHdrs $(OBOS_TOP) src kernel libroot posix glibc include arch $(OBOS_ARCH) ; +SubDirHdrs $(OBOS_TOP) src kernel libroot posix glibc wcsmbs ; +SubDirHdrs $(OBOS_TOP) src kernel libroot posix glibc include ; +SubDirHdrs $(OBOS_TOP) src kernel libroot posix glibc iconv ; +SubDirHdrs $(OBOS_TOP) src kernel libroot posix glibc locale ; +SubDirHdrs $(OBOS_TOP) src kernel libroot posix glibc libio ; +SubDirHdrs $(OBOS_TOP) src kernel libroot posix glibc ; + +# ToDo: for now, all wide character functions are disabled + +KernelMergeObject posix_gnu_wcsmbs.o : + mbrlen.c + mbrtowc.c + mbsinit.c + : -fPIC -DPIC + ; diff --git a/src/kernel/libroot/posix/glibc/wcsmbs/mbrtowc.c b/src/kernel/libroot/posix/glibc/wcsmbs/mbrtowc.c index de79e10e5d..7db3a4e1e9 100644 --- a/src/kernel/libroot/posix/glibc/wcsmbs/mbrtowc.c +++ b/src/kernel/libroot/posix/glibc/wcsmbs/mbrtowc.c @@ -21,7 +21,7 @@ #include #include #include -#include +//#include #include @@ -35,6 +35,19 @@ static mbstate_t state; size_t __mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) { + // ToDo: this is a dummy implementation to get it going + if (s == NULL) + n = 1, s = ""; + + if (pwc == NULL || n == 0) + return 0; + + if (ps == NULL) + ps = &state; + + pwc[0] = s[0]; + return s[0] == 0 ? 0 : 1; +#if 0 wchar_t buf[1]; struct __gconv_step_data data; int status; @@ -104,6 +117,7 @@ __mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) } return result; +#endif } libc_hidden_def (__mbrtowc) weak_alias (__mbrtowc, mbrtowc) diff --git a/src/kernel/libroot/posix/glibc/wcsmbs/wchar.h b/src/kernel/libroot/posix/glibc/wcsmbs/wchar.h index 74a8fc1f0b..1043e551d2 100644 --- a/src/kernel/libroot/posix/glibc/wcsmbs/wchar.h +++ b/src/kernel/libroot/posix/glibc/wcsmbs/wchar.h @@ -23,6 +23,8 @@ #ifndef _WCHAR_H +#include + #ifndef __need_mbstate_t # define _WCHAR_H 1 # include