Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/stdlib/wcsrtombs.c')
-rw-r--r--newlib/libc/stdlib/wcsrtombs.c87
1 files changed, 0 insertions, 87 deletions
diff --git a/newlib/libc/stdlib/wcsrtombs.c b/newlib/libc/stdlib/wcsrtombs.c
deleted file mode 100644
index 6871d0c00..000000000
--- a/newlib/libc/stdlib/wcsrtombs.c
+++ /dev/null
@@ -1,87 +0,0 @@
-#include <reent.h>
-#include <newlib.h>
-#include <wchar.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <errno.h>
-
-size_t
-_DEFUN (_wcsrtombs_r, (r, dst, src, len, ps),
- struct _reent *r _AND
- char *dst _AND
- const wchar_t **src _AND
- size_t len _AND
- mbstate_t *ps)
-{
- char *ptr = dst;
- char buff[10];
- wchar_t *pwcs;
- size_t n;
- int i;
-
-#ifdef _MB_CAPABLE
- if (ps == NULL)
- {
- _REENT_CHECK_MISC(r);
- ps = &(_REENT_WCSRTOMBS_STATE(r));
- }
-#endif
-
- /* If no dst pointer, treat len as maximum possible value. */
- if (dst == NULL)
- len = (size_t)-1;
-
- n = 0;
- pwcs = (wchar_t *)(*src);
-
- while (n < len)
- {
- int count = ps->__count;
- wint_t wch = ps->__value.__wch;
- int bytes = _wcrtomb_r (r, buff, *pwcs, ps);
- if (bytes == -1)
- {
- r->_errno = EILSEQ;
- ps->__count = 0;
- return (size_t)-1;
- }
- if (n <= len - bytes && bytes < len)
- {
- n += bytes;
- if (dst)
- {
- for (i = 0; i < bytes; ++i)
- *ptr++ = buff[i];
- ++(*src);
- }
- if (*pwcs++ == 0x00)
- {
- if (dst)
- *src = NULL;
- ps->__count = 0;
- return n - 1;
- }
- }
- else
- {
- /* not enough room, we must back up state to before _wctomb_r call */
- ps->__count = count;
- ps->__value.__wch = wch;
- len = 0;
- }
- }
-
- return n;
-}
-
-#ifndef _REENT_ONLY
-size_t
-_DEFUN (wcsrtombs, (dst, src, len, ps),
- char *dst _AND
- const wchar_t **src _AND
- size_t len _AND
- mbstate_t *ps)
-{
- return _wcsrtombs_r (_REENT, dst, src, len, ps);
-}
-#endif /* !_REENT_ONLY */