Sync to Wine-20050830:

Mike McCormack <mike@codeweavers.com>
- Fix a gcc 4.0 -Wpointer-sign warning.
- gcc 4.0 warning fix.

svn path=/trunk/; revision=17658
This commit is contained in:
Gé van Geldorp 2005-09-05 10:18:07 +00:00
parent 2853a0678a
commit 89c566ad64
2 changed files with 11 additions and 5 deletions

View file

@ -251,9 +251,11 @@ static int mbstowcs_dbcs_decompose( const struct dbcs_table *table,
/* return -1 on dst buffer overflow, -2 on invalid input char */ /* return -1 on dst buffer overflow, -2 on invalid input char */
int wine_cp_mbstowcs( const union cptable *table, int flags, int wine_cp_mbstowcs( const union cptable *table, int flags,
const char *src, int srclen, const char *s, int srclen,
WCHAR *dst, int dstlen ) WCHAR *dst, int dstlen )
{ {
const unsigned char *src = (const unsigned char*) s;
if (table->info.char_size == 1) if (table->info.char_size == 1)
{ {
if (flags & MB_ERR_INVALID_CHARS) if (flags & MB_ERR_INVALID_CHARS)

View file

@ -198,12 +198,16 @@ static int wcstombs_sbcs_slow( const struct sbcs_table *table, int flags,
{ {
const unsigned char * const uni2cp_low = table->uni2cp_low; const unsigned char * const uni2cp_low = table->uni2cp_low;
const unsigned short * const uni2cp_high = table->uni2cp_high; 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; unsigned int len;
int tmp; int tmp;
WCHAR composed; 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 */ if (!used) used = &tmp; /* avoid checking on every char */
*used = 0; *used = 0;
@ -225,7 +229,7 @@ static int wcstombs_sbcs_slow( const struct sbcs_table *table, int flags,
/* no mapping for the composed char, check the other flags */ /* no mapping for the composed char, check the other flags */
if (flags & WC_DEFAULTCHAR) /* use the default char instead */ if (flags & WC_DEFAULTCHAR) /* use the default char instead */
{ {
*dst = *defchar; *dst = def;
*used = 1; *used = 1;
src++; /* skip the non-spacing char */ src++; /* skip the non-spacing char */
srclen--; srclen--;
@ -242,7 +246,7 @@ static int wcstombs_sbcs_slow( const struct sbcs_table *table, int flags,
*dst = uni2cp_low[uni2cp_high[wch >> 8] + (wch & 0xff)]; *dst = uni2cp_low[uni2cp_high[wch >> 8] + (wch & 0xff)];
if (!is_valid_sbcs_mapping( table, flags, wch, *dst )) if (!is_valid_sbcs_mapping( table, flags, wch, *dst ))
{ {
*dst = *defchar; *dst = def;
*used = 1; *used = 1;
} }
} }