Commit c60bc0c9 authored by Justin Santa Barbara's avatar Justin Santa Barbara Committed by Alexandre Julliard

Fixed problem with check for special characters.

parent 4014c74e
...@@ -310,40 +310,31 @@ static char *make_string(WCHAR *uc, int len, int codepage) ...@@ -310,40 +310,31 @@ static char *make_string(WCHAR *uc, int len, int codepage)
*cptr++ = '"'; *cptr++ = '"';
for(i = b = 0; i < len; i++, uc++) for(i = b = 0; i < len; i++, uc++)
{ {
int n; switch(*uc)
if(*uc < 0x100) {
{ case '\a': *cptr++ = '\\'; *cptr++ = 'a'; b += 2; break;
if(isprint(*uc)) case '\b': *cptr++ = '\\'; *cptr++ = 'b'; b += 2; break;
{ case '\f': *cptr++ = '\\'; *cptr++ = 'f'; b += 2; break;
*cptr++ = *uc; case '\n': *cptr++ = '\\'; *cptr++ = 'n'; b += 2; break;
b++; case '\r': *cptr++ = '\\'; *cptr++ = 'r'; b += 2; break;
} case '\t': *cptr++ = '\\'; *cptr++ = 't'; b += 2; break;
else case '\v': *cptr++ = '\\'; *cptr++ = 'v'; b += 2; break;
{ case '\\': *cptr++ = '\\'; *cptr++ = '\\'; b += 2; break;
switch(*uc) case '"': *cptr++ = '\\'; *cptr++ = '"'; b += 2; break;
{ default:
case '\a': *cptr++ = '\\'; *cptr++ = 'a'; b += 2; break; if (*uc < 0x100 && isprint(*uc))
case '\b': *cptr++ = '\\'; *cptr++ = 'b'; b += 2; break; {
case '\f': *cptr++ = '\\'; *cptr++ = 'f'; b += 2; break; *cptr++ = *uc;
case '\n': *cptr++ = '\\'; *cptr++ = 'n'; b += 2; break; b++;
case '\r': *cptr++ = '\\'; *cptr++ = 'r'; b += 2; break; }
case '\t': *cptr++ = '\\'; *cptr++ = 't'; b += 2; break; else
case '\v': *cptr++ = '\\'; *cptr++ = 'v'; b += 2; break; {
case '\\': *cptr++ = '\\'; *cptr++ = '\\'; b += 2; break; int n = sprintf(cptr, "\\x%04x", *uc & 0xffff);
case '"': *cptr++ = '\\'; *cptr++ = '"'; b += 2; break; cptr += n;
default: b += n;
n = sprintf(cptr, "\\x%04x", *uc & 0xffff); }
cptr += n; break;
b += n; }
}
}
}
else
{
n = sprintf(cptr, "\\x%04x", *uc & 0xffff);
cptr += n;
b += n;
}
if(i < len-1 && b >= 72) if(i < len-1 && b >= 72)
{ {
*cptr++ = '"'; *cptr++ = '"';
...@@ -381,30 +372,30 @@ static char *make_string(WCHAR *uc, int len, int codepage) ...@@ -381,30 +372,30 @@ static char *make_string(WCHAR *uc, int len, int codepage)
*cptr++ = '"'; *cptr++ = '"';
for(i = b = 0; i < len; i++, cc++) for(i = b = 0; i < len; i++, cc++)
{ {
int n; switch(*cc)
if(isprint(*cc)) {
{ case '\a': *cptr++ = '\\'; *cptr++ = 'a'; b += 2; break;
*cptr++ = *cc; case '\b': *cptr++ = '\\'; *cptr++ = 'b'; b += 2; break;
b++; case '\f': *cptr++ = '\\'; *cptr++ = 'f'; b += 2; break;
} case '\n': *cptr++ = '\\'; *cptr++ = 'n'; b += 2; break;
else case '\r': *cptr++ = '\\'; *cptr++ = 'r'; b += 2; break;
{ case '\t': *cptr++ = '\\'; *cptr++ = 't'; b += 2; break;
switch(*cc) case '\v': *cptr++ = '\\'; *cptr++ = 'v'; b += 2; break;
{ case '\\': *cptr++ = '\\'; *cptr++ = '\\'; b += 2; break;
case '\a': *cptr++ = '\\'; *cptr++ = 'a'; b += 2; break; case '"': *cptr++ = '\\'; *cptr++ = '"'; b += 2; break;
case '\b': *cptr++ = '\\'; *cptr++ = 'b'; b += 2; break; default:
case '\f': *cptr++ = '\\'; *cptr++ = 'f'; b += 2; break; if(isprint(*cc))
case '\n': *cptr++ = '\\'; *cptr++ = 'n'; b += 2; break; {
case '\r': *cptr++ = '\\'; *cptr++ = 'r'; b += 2; break; *cptr++ = *cc;
case '\t': *cptr++ = '\\'; *cptr++ = 't'; b += 2; break; b++;
case '\v': *cptr++ = '\\'; *cptr++ = 'v'; b += 2; break; }
case '\\': *cptr++ = '\\'; *cptr++ = '\\'; b += 2; break; else
case '"': *cptr++ = '\\'; *cptr++ = '"'; b += 2; break; {
default: int n = sprintf(cptr, "\\x%02x", *cc & 0xff);
n = sprintf(cptr, "\\x%02x", *cc & 0xff); cptr += n;
cptr += n; b += n;
b += n; }
} break;
} }
if(i < len-1 && b >= 72) if(i < len-1 && b >= 72)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment