Hi. I found a trivial bug.
*pmbs is unsigned char. '\x80' is -128 because it is char literal (not unsigned char). -> "*pmbs > '\x80'" is always true. # Is not "> 0x80" but ">= 0x80" correct? --- winsup/cygwin/strfuncs.cc 31 May 2009 03:59:38 -0000 1.30 +++ winsup/cygwin/strfuncs.cc 3 Jun 2009 17:59:23 -0000 @@ -572,7 +572,7 @@ --len; } } - else if ((bytes = f_mbtowc (_REENT, ptr, (const char *) pmbs, nms, charset, &ps)) < 0 && *pmbs > '\x80') + else if ((bytes = f_mbtowc (_REENT, ptr, (const char *) pmbs, nms, charset, &ps)) < 0 && *pmbs > 0x80) { /* This should probably be handled in f_mbtowc which can operate on sequences rather than individual characters. -- IWAMURO Motnori <http://vmi.jp/> -- 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/