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/

Reply via email to