2007-03-14 20:24:57 +00:00
|
|
|
#include <precomp.h>
|
|
|
|
|
2008-06-06 17:49:24 +00:00
|
|
|
|
2007-03-14 20:24:57 +00:00
|
|
|
/*
|
2008-06-06 17:49:24 +00:00
|
|
|
* @implemented
|
2007-03-14 20:24:57 +00:00
|
|
|
*/
|
2008-06-06 17:49:24 +00:00
|
|
|
size_t mbstowcs (wchar_t *widechar, const char *multibyte, size_t number)
|
2007-03-14 20:24:57 +00:00
|
|
|
{
|
2008-06-06 17:49:24 +00:00
|
|
|
int bytes;
|
2008-12-07 21:52:22 +00:00
|
|
|
size_t n = 0;
|
2007-03-14 20:24:57 +00:00
|
|
|
|
2008-06-06 17:49:24 +00:00
|
|
|
while (n < number) {
|
2007-03-14 20:24:57 +00:00
|
|
|
|
2008-06-06 17:49:24 +00:00
|
|
|
if ((bytes = mbtowc (widechar, multibyte, MB_LEN_MAX)) < 0)
|
2008-12-07 21:52:22 +00:00
|
|
|
return (size_t) -1;
|
2007-03-14 20:24:57 +00:00
|
|
|
|
2008-06-06 17:49:24 +00:00
|
|
|
if (bytes == 0) {
|
|
|
|
*widechar = (wchar_t) '\0';
|
|
|
|
return n;
|
|
|
|
}
|
2007-03-14 20:24:57 +00:00
|
|
|
|
2008-06-06 17:49:24 +00:00
|
|
|
widechar++;
|
|
|
|
multibyte += bytes;
|
|
|
|
n++;
|
2007-03-14 20:24:57 +00:00
|
|
|
}
|
|
|
|
|
2008-06-06 17:49:24 +00:00
|
|
|
return n;
|
2007-03-14 20:24:57 +00:00
|
|
|
}
|