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 'winsup/mingw/mingwex/wcrtomb.c')
-rwxr-xr-xwinsup/mingw/mingwex/wcrtomb.c94
1 files changed, 0 insertions, 94 deletions
diff --git a/winsup/mingw/mingwex/wcrtomb.c b/winsup/mingw/mingwex/wcrtomb.c
deleted file mode 100755
index 61ae6d677..000000000
--- a/winsup/mingw/mingwex/wcrtomb.c
+++ /dev/null
@@ -1,94 +0,0 @@
-#include "mb_wc_common.h"
-#include <wchar.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <limits.h>
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-
-
-static int __MINGW_ATTRIB_NONNULL(1)
- __wcrtomb_cp (char *dst, wchar_t wc, const unsigned int cp,
- const unsigned int mb_max)
-{
- if (cp == 0)
- {
- if (wc > 255)
- {
- errno = EILSEQ;
- return -1;
- }
- *dst = (char) wc;
- return 1;
- }
- else
- {
- int invalid_char = 0;
-
- int size = WideCharToMultiByte (cp, 0 /* Is this correct flag? */,
- &wc, 1, dst, mb_max,
- NULL, &invalid_char);
- if (size == 0 || invalid_char)
- {
- errno = EILSEQ;
- return -1;
- }
- return size;
- }
-}
-
-size_t
-wcrtomb (char *dst, wchar_t wc, mbstate_t * __UNUSED_PARAM (ps))
-{
- char byte_bucket [MB_LEN_MAX];
- char* tmp_dst = dst ? dst : byte_bucket;
- return (size_t)__wcrtomb_cp (tmp_dst, wc, get_codepage (),
- MB_CUR_MAX);
-}
-
-size_t wcsrtombs (char *dst, const wchar_t **src, size_t len,
- mbstate_t * __UNUSED_PARAM (ps))
-{
- int ret = 0;
- size_t n = 0;
- const unsigned int cp = get_codepage();
- const unsigned int mb_max = MB_CUR_MAX;
- const wchar_t *pwc = *src;
-
- if (src == NULL || *src == NULL) /* undefined behavior */
- return 0;
-
- if (dst != NULL)
- {
- while (n < len)
- {
- if ((ret = __wcrtomb_cp (dst, *pwc, cp, mb_max)) <= 0)
- return (size_t) -1;
- n += ret;
- dst += ret;
- if (*(dst - 1) == '\0')
- {
- *src = (wchar_t*) NULL;;
- return (n - 1);
- }
- pwc++;
- }
- *src = pwc;
- }
- else
- {
- char byte_bucket [MB_LEN_MAX];
- while (n < len)
- {
- if ((ret = __wcrtomb_cp (byte_bucket, *pwc, cp, mb_max))
- <= 0)
- return (size_t) -1;
- n += ret;
- if (byte_bucket [ret - 1] == '\0')
- return (n - 1);
- pwc++;
- }
- }
-
- return n;
-}