Sync to Wine-20050830: Mike McCormack mike@codeweavers.com - Fix a gcc 4.0 -Wpointer-sign warning. - gcc 4.0 warning fix. Modified: trunk/reactos/tools/unicode/mbtowc.c Modified: trunk/reactos/tools/unicode/wctomb.c _____
Modified: trunk/reactos/tools/unicode/mbtowc.c --- trunk/reactos/tools/unicode/mbtowc.c 2005-09-05 09:26:02 UTC (rev 17657) +++ trunk/reactos/tools/unicode/mbtowc.c 2005-09-05 10:18:07 UTC (rev 17658) @@ -251,9 +251,11 @@
/* return -1 on dst buffer overflow, -2 on invalid input char */ int wine_cp_mbstowcs( const union cptable *table, int flags, - const char *src, int srclen, + const char *s, int srclen, WCHAR *dst, int dstlen ) { + const unsigned char *src = (const unsigned char*) s; + if (table->info.char_size == 1) { if (flags & MB_ERR_INVALID_CHARS) _____
Modified: trunk/reactos/tools/unicode/wctomb.c --- trunk/reactos/tools/unicode/wctomb.c 2005-09-05 09:26:02 UTC (rev 17657) +++ trunk/reactos/tools/unicode/wctomb.c 2005-09-05 10:18:07 UTC (rev 17658) @@ -198,12 +198,16 @@
{ const unsigned char * const uni2cp_low = table->uni2cp_low; const unsigned short * const uni2cp_high = table->uni2cp_high; - const unsigned char table_default = table->info.def_char & 0xff; + unsigned char def; unsigned int len; int tmp; WCHAR composed;
- if (!defchar) defchar = (const char*)&table_default; + if (!defchar) + def = table->info.def_char & 0xff; + else + def = *defchar; + if (!used) used = &tmp; /* avoid checking on every char */ *used = 0;
@@ -225,7 +229,7 @@ /* no mapping for the composed char, check the other flags */ if (flags & WC_DEFAULTCHAR) /* use the default char instead */ { - *dst = *defchar; + *dst = def; *used = 1; src++; /* skip the non-spacing char */ srclen--; @@ -242,7 +246,7 @@ *dst = uni2cp_low[uni2cp_high[wch >> 8] + (wch & 0xff)]; if (!is_valid_sbcs_mapping( table, flags, wch, *dst )) { - *dst = *defchar; + *dst = def; *used = 1; } }