diff options
Diffstat (limited to 'libc/stdlib')
-rw-r--r-- | libc/stdlib/atoi.c | 33 | ||||
-rw-r--r-- | libc/stdlib/atol.c | 33 | ||||
-rw-r--r-- | libc/stdlib/atoll.c | 33 | ||||
-rw-r--r-- | libc/stdlib/locale.c | 34 | ||||
-rw-r--r-- | libc/stdlib/strntoimax.c | 34 | ||||
-rw-r--r-- | libc/stdlib/strntoumax.c | 95 | ||||
-rw-r--r-- | libc/stdlib/wchar.c | 330 |
7 files changed, 0 insertions, 592 deletions
diff --git a/libc/stdlib/atoi.c b/libc/stdlib/atoi.c deleted file mode 100644 index 9a655430b..000000000 --- a/libc/stdlib/atoi.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * 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. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 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. - */ -#include <inttypes.h> - -int atoi(const char* s) -{ - return (int)strtoimax(s, NULL, 10); -} diff --git a/libc/stdlib/atol.c b/libc/stdlib/atol.c deleted file mode 100644 index 83dc05c70..000000000 --- a/libc/stdlib/atol.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * 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. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 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. - */ -#include <inttypes.h> - -long atol(const char* s) -{ - return (long)strtoimax(s, NULL, 10); -} diff --git a/libc/stdlib/atoll.c b/libc/stdlib/atoll.c deleted file mode 100644 index 953878f27..000000000 --- a/libc/stdlib/atoll.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * 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. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 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. - */ -#include <inttypes.h> - -long long atoll(const char* s) -{ - return (long long)strtoimax(s, NULL, 10); -} diff --git a/libc/stdlib/locale.c b/libc/stdlib/locale.c deleted file mode 100644 index 9dabbe486..000000000 --- a/libc/stdlib/locale.c +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * 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. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 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. - */ -#include <locale.h> - -char* setlocale (int category, char const *locale) -{ - /* INTENTIONAL: there is no locale support in Bionic */ - return 0; -} diff --git a/libc/stdlib/strntoimax.c b/libc/stdlib/strntoimax.c deleted file mode 100644 index 2f3cd9a91..000000000 --- a/libc/stdlib/strntoimax.c +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * 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. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 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. - */ -#include <stddef.h> -#include <inttypes.h> - -intmax_t strntoimax(const char *nptr, char **endptr, int base, size_t n) -{ - return (intmax_t) strntoumax(nptr, endptr, base, n); -} diff --git a/libc/stdlib/strntoumax.c b/libc/stdlib/strntoumax.c deleted file mode 100644 index 050d71893..000000000 --- a/libc/stdlib/strntoumax.c +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * 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. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 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. - */ -#include <stddef.h> -#include <stdint.h> -#include <ctype.h> - -static inline int digitval(int ch) -{ - unsigned d; - - d = (unsigned)(ch - '0'); - if (d < 10) return (int)d; - - d = (unsigned)(ch - 'a'); - if (d < 6) return (int)(d+10); - - d = (unsigned)(ch - 'A'); - if (d < 6) return (int)(d+10); - - return -1; -} - -uintmax_t -strntoumax(const char *nptr, char **endptr, int base, size_t n) -{ - const unsigned char* p = (const unsigned char *)nptr; - const unsigned char* end = p + n; - int minus = 0; - uintmax_t v = 0; - int d; - - /* skip leading space */ - while (p < end && isspace(*p)) - p++; - - /* Single optional + or - */ - if (p < end) { - char c = p[0]; - if ( c == '-' || c == '+' ) { - minus = (c == '-'); - p++; - } - } - - if ( base == 0 ) { - if ( p+2 < end && p[0] == '0' && (p[1] == 'x' || p[1] == 'X') ) { - p += 2; - base = 16; - } else if ( p+1 < end && p[0] == '0' ) { - p += 1; - base = 8; - } else { - base = 10; - } - } else if ( base == 16 ) { - if ( p+2 < end && p[0] == '0' && (p[1] == 'x' || p[1] == 'X') ) { - p += 2; - } - } - - while ( p < end && (d = digitval(*p)) >= 0 && d < base ) { - v = v*base + d; - p += 1; - } - - if ( endptr ) - *endptr = (char *)p; - - return minus ? -v : v; -} diff --git a/libc/stdlib/wchar.c b/libc/stdlib/wchar.c deleted file mode 100644 index d83613a6b..000000000 --- a/libc/stdlib/wchar.c +++ /dev/null @@ -1,330 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * 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. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 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. - */ -#include <wchar.h> -#include <ctype.h> -#include <string.h> -#include <stdlib.h> -#include <errno.h> - -/* stubs for wide-char functions */ -wint_t btowc(int c) -{ - return (c == EOF) ? WEOF : c; -} - -int fwprintf(FILE *stream, const wchar_t *format, ...) -{ - va_list args; - int result; - - va_start(args, format); - result = vfwprintf(stream, format, args); - va_end(args); - return result; -} - -int wprintf(const wchar_t *format, ...) -{ - va_list args; - int result; - - va_start(args, format); - result = vwprintf(format, args); - va_end(args); - return result; -} - -int swprintf(wchar_t *s, size_t n, const wchar_t *format, ...) -{ - va_list args; - int result; - - va_start(args, format); - result = vswprintf(s, n, format, args); - va_end(args); - return result; -} - -int vwprintf(const wchar_t *format, va_list arg) -{ - return vfwprintf(stdout, format, arg); -} - -int vfwprintf(FILE *stream, const wchar_t *format, va_list arg) -{ - errno = ENOTSUP; - return -1; -} - -int vswprintf(wchar_t *s, size_t n, const wchar_t *format, va_list arg) -{ - errno = ENOTSUP; - return -1; -} - -int fwscanf(FILE *stream, const wchar_t *format, ... ) -{ - errno = ENOTSUP; - return -1; -} - -int wscanf(const wchar_t *format, ... ) -{ - va_list args; - int result; - - va_start (args, format); - result = fwscanf(stdout, format, args ); - va_end (args); - return result; -} - -int swscanf(const wchar_t *s, const wchar_t *format, ... ) -{ - errno = ENOTSUP; - return -1; -} - -int iswalnum(wint_t wc) { return isalnum(wc); } -int iswalpha(wint_t wc) { return isalpha(wc); } -int iswcntrl(wint_t wc) { return iscntrl(wc); } -int iswdigit(wint_t wc) { return isdigit(wc); } -int iswgraph(wint_t wc) { return isgraph(wc); } -int iswlower(wint_t wc) { return islower(wc); } -int iswprint(wint_t wc) { return isprint(wc); } -int iswpunct(wint_t wc) { return ispunct(wc); } -int iswspace(wint_t wc) { return isspace(wc); } -int iswupper(wint_t wc) { return isupper(wc); } -int iswxdigit(wint_t wc) { return isxdigit(wc); } - -int iswctype(wint_t wc, wctype_t charclass) -{ - switch (charclass) { - case WC_TYPE_ALNUM: return isalnum(wc); - case WC_TYPE_ALPHA: return isalpha(wc); - case WC_TYPE_BLANK: return isblank(wc); - case WC_TYPE_CNTRL: return iscntrl(wc); - case WC_TYPE_DIGIT: return isdigit(wc); - case WC_TYPE_GRAPH: return isgraph(wc); - case WC_TYPE_LOWER: return islower(wc); - case WC_TYPE_PRINT: return isprint(wc); - case WC_TYPE_PUNCT: return ispunct(wc); - case WC_TYPE_SPACE: return isspace(wc); - case WC_TYPE_UPPER: return isupper(wc); - case WC_TYPE_XDIGIT: return isxdigit(wc); - default: return 0; - }; -} - -wint_t fgetwc(FILE *stream) -{ - return (wint_t)fgetc(stream); -} - -wchar_t *fgetws(wchar_t *ws, int n, FILE *stream) -{ - return (wchar_t*) fgets((char*)ws, n, stream); -} - -wint_t fputwc(wchar_t wc, FILE *stream) -{ - return (wint_t)fputc((char)wc, stream); -} - -int fputws(const wchar_t *str, FILE *stream) -{ - return fputs( (const char*)str, stream ); -} - -int fwide(FILE *stream, int mode) -{ - stream=stream; - return (mode); -} - -wint_t getwc(FILE *stream) -{ - return getc(stream); -} - -wint_t getwchar(void) -{ - return getchar(); -} - -int mbsinit(const mbstate_t *ps) -{ - ps=ps; - return 1; -} - -size_t mbrlen(const char *s, size_t n, mbstate_t *ps) -{ - return (n != 0); -} - -size_t mbrtowc(wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) -{ - if (s == NULL) { - s = ""; - pwc = NULL; - } - if (n == 0) { - if (pwc) - *pwc = 0; - return 0; - } - if (pwc) - *pwc = *s; - - return (*s != 0); -} - -size_t mbsrtowcs(wchar_t *dst, const char **src, size_t len, mbstate_t *ps) -{ - const char* s = *src; - const char* s2 = memchr( s, 0, len ); - - if (s2 != NULL) - len = (size_t)(s2 - s) + 1U; - - if (dst) - memcpy( (char*)dst, s, len ); - - *src = s + len; - return len; -} - -size_t mbstowcs(wchar_t *dst, const char *src, size_t len) -{ - return mbsrtowcs(dst, &src, len, NULL); -} - -wint_t putwc(wchar_t wc, FILE *stream) -{ - return fputc((char)wc, stream); -} - -wint_t putwchar(wchar_t wc) -{ - return putchar((char)wc); -} - -wint_t towlower(wint_t wc) -{ - return tolower(wc); -} - -wint_t towupper(wint_t wc) -{ - return toupper(wc); -} - -wint_t ungetwc(wint_t wc, FILE *stream) -{ - return ungetc((char)wc, stream); -} - -size_t wcrtomb(char *s, wchar_t wc, mbstate_t *ps) -{ - if (s != NULL) - *s = 1; - return 1; -} - -size_t wcsftime(wchar_t *wcs, size_t maxsize, const wchar_t *format, const struct tm *timptr) -{ - return strftime( (char*)wcs, maxsize, (const char*)format, timptr ); -} - -size_t wcsrtombs(char *dst, const wchar_t **src, size_t len, mbstate_t *ps) -{ - const char* s = (const char*)*src; - const char* s2 = memchr( s, 0, len ); - - if (s2 != NULL) - len = (s2 - s)+1; - - if (dst != NULL) - memcpy( dst, s, len ); - - *src = (wchar_t*)(s + len); - return len; -} - -size_t wcstombs(char *dst, const wchar_t *src, size_t len) -{ - return wcsrtombs(dst, &src, len, NULL); -} - -double wcstod(const wchar_t *nptr, wchar_t **endptr) -{ - return strtod( (const char*)nptr, (char**)endptr ); -} - -long int wcstol(const wchar_t *nptr, wchar_t **endptr, int base) -{ - return strtol( (const char*)nptr, (char**)endptr, base ); -} - -unsigned long int wcstoul(const wchar_t *nptr, wchar_t **endptr, int base) -{ - return strtoul( (const char*)nptr, (char**)endptr, base ); -} - -wchar_t *wcswcs(const wchar_t *ws1, const wchar_t *ws2) -{ - return (wchar_t*) strstr( (const char*)ws1, (const char*)ws2 ); -} - -int wctob(wint_t c) -{ - return c; -} - -wctype_t wctype(const char *property) -{ - static const char* const properties[WC_TYPE_MAX] = - { - "<invalid>", - "alnum", "alpha", "blank", "cntrl", "digit", "graph", - "lower", "print", "punct", "space", "upper", "xdigit" - }; - int nn; - - for ( nn = 0; nn < WC_TYPE_MAX; nn++ ) - if ( !strcmp( properties[nn], property ) ) - return (wctype_t)(nn); - - return 0; -} - -int wcwidth(wchar_t wc) -{ - return (wc > 0); -} |