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.c78
1 files changed, 0 insertions, 78 deletions
diff --git a/newlib/libc/stdlib/wcsrtombs.c b/newlib/libc/stdlib/wcsrtombs.c
deleted file mode 100644
index 431347866..000000000
--- a/newlib/libc/stdlib/wcsrtombs.c
+++ /dev/null
@@ -1,78 +0,0 @@
-#include <wchar.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <reent.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];
- int i, n;
- int count;
- wint_t wch;
-
-#ifdef MB_CAPABLE
- if (ps == NULL)
- {
- _REENT_CHECK_MISC(r);
- ps = &(_REENT_WCSRTOMBS_STATE(r));
- }
-#endif
-
- n = (int)len;
-
- while (n > 0)
- {
- wchar_t *pwcs = (wchar_t *)(*src);
- int count = ps->__count;
- wint_t wch = ps->__value.__wch;
- int bytes = _wctomb_r (r, buff, *pwcs, ps);
- if (bytes == -1)
- {
- r->_errno = EILSEQ;
- ps->__count = 0;
- return (size_t)-1;
- }
- if (bytes <= n)
- {
- for (i = 0; i < bytes; ++i)
- *ptr++ = buff[i];
-
- if (*pwcs == 0x00)
- {
- *src = NULL;
- ps->__count = 0;
- return (size_t)(ptr - dst - 1);
- }
- ++(*src);
- }
- else
- {
- /* not enough room, we must back up state to before _wctomb_r call */
- ps->__count = count;
- ps->__value.__wch = wch;
- }
- n -= bytes;
- }
-
- return (size_t)(ptr - dst);
-}
-
-#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 */