diff --git a/library/libc.gmk b/library/libc.gmk index cd92dc9..58e0a17 100644 --- a/library/libc.gmk +++ b/library/libc.gmk @@ -387,6 +387,7 @@ C_LIB := \ wchar_getwc.o \ wchar_getwchar.o \ wchar_mbrlen.o \ + wchar_mbrtowc.o \ wchar_mbsinit.o \ wchar_mbsrtowcs.o \ wchar_putwc.o \ diff --git a/library/wchar_mbrtowc.c b/library/wchar_mbrtowc.c new file mode 100644 index 0000000..05f59c0 --- /dev/null +++ b/library/wchar_mbrtowc.c @@ -0,0 +1,64 @@ +/* + * $Id: wchar_mbrlen.c,v 1.3 2006-01-08 12:04:27 obarthel Exp $ + * + * :ts=4 + * + * Portable ISO 'C' (1994) runtime library for the Amiga computer + * Copyright (c) 2002-2015 by Olaf Barthel + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Neither the name of Olaf Barthel nor the names of contributors + * may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _WCHAR_HEADERS_H +#include "wchar_headers.h" +#endif /* _WCHAR_HEADERS_H */ + +/****************************************************************************/ + +/* Mostly non-working stub based on bionic */ + +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) +size_t +mbrtowc(wchar_t *restrict pwc, const char *restrict s, size_t n, mbstate_t *restrict ps) +{ + if (s == NULL) + { + s = ""; + pwc = NULL; + } + + if (n == 0) + { + if (pwc) + *pwc = 0; + return 0; + } + + if (pwc) + *pwc = *s; + + return (*s != 0); +} +#endif /* __STDC_VERSION__ && __STDC_VERSION__ >= 199901L */