The spec says that mbsrtowcs() should return the length of the string _even_when_the_output_buffer_is_NULL_ .
currently mbsrtowcs(NULL, ...) returns 0. #include <stdio.h> #include <wchar.h> #include <string.h> main() { int len; char* s = "test"; mbstate_t mbstate; memset(&mbstate, 0, sizeof(mbstate)); len = mbsrtowcs(NULL, (const char **)&s, 0, &mbstate); printf("s='%s' - strlen(s)=%d - mbstowcs(s)=%d\n", s, strlen(s), len); } cygwin$ ./mbsrtowcs s='test' - strlen(s)=4 - mbstowcs(s)=0 linux$ ./mbsrtowcs s='test' - strlen(s)=4 - mbstowcs(s)=4 ---------------------------------------------------------------------------------- Plaats je zoekertjes GRATIS op AdValvas Placez votre petite annonce GRATUITEMENT sur AdValvas http://www.advalvas.be -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/