Fixed problem with check for special characters.
diff --git a/tools/wmc/write.c b/tools/wmc/write.c
index 035b9b7..733f7bc 100644
--- a/tools/wmc/write.c
+++ b/tools/wmc/write.c
@@ -310,40 +310,31 @@
*cptr++ = '"';
for(i = b = 0; i < len; i++, uc++)
{
- int n;
- if(*uc < 0x100)
- {
- if(isprint(*uc))
- {
- *cptr++ = *uc;
- b++;
- }
- else
- {
- switch(*uc)
- {
- case '\a': *cptr++ = '\\'; *cptr++ = 'a'; b += 2; break;
- case '\b': *cptr++ = '\\'; *cptr++ = 'b'; b += 2; break;
- case '\f': *cptr++ = '\\'; *cptr++ = 'f'; b += 2; break;
- case '\n': *cptr++ = '\\'; *cptr++ = 'n'; b += 2; break;
- case '\r': *cptr++ = '\\'; *cptr++ = 'r'; b += 2; break;
- case '\t': *cptr++ = '\\'; *cptr++ = 't'; b += 2; break;
- case '\v': *cptr++ = '\\'; *cptr++ = 'v'; b += 2; break;
- case '\\': *cptr++ = '\\'; *cptr++ = '\\'; b += 2; break;
- case '"': *cptr++ = '\\'; *cptr++ = '"'; b += 2; break;
- default:
- n = sprintf(cptr, "\\x%04x", *uc & 0xffff);
- cptr += n;
- b += n;
- }
- }
- }
- else
- {
- n = sprintf(cptr, "\\x%04x", *uc & 0xffff);
- cptr += n;
- b += n;
- }
+ switch(*uc)
+ {
+ case '\a': *cptr++ = '\\'; *cptr++ = 'a'; b += 2; break;
+ case '\b': *cptr++ = '\\'; *cptr++ = 'b'; b += 2; break;
+ case '\f': *cptr++ = '\\'; *cptr++ = 'f'; b += 2; break;
+ case '\n': *cptr++ = '\\'; *cptr++ = 'n'; b += 2; break;
+ case '\r': *cptr++ = '\\'; *cptr++ = 'r'; b += 2; break;
+ case '\t': *cptr++ = '\\'; *cptr++ = 't'; b += 2; break;
+ case '\v': *cptr++ = '\\'; *cptr++ = 'v'; b += 2; break;
+ case '\\': *cptr++ = '\\'; *cptr++ = '\\'; b += 2; break;
+ case '"': *cptr++ = '\\'; *cptr++ = '"'; b += 2; break;
+ default:
+ if (*uc < 0x100 && isprint(*uc))
+ {
+ *cptr++ = *uc;
+ b++;
+ }
+ else
+ {
+ int n = sprintf(cptr, "\\x%04x", *uc & 0xffff);
+ cptr += n;
+ b += n;
+ }
+ break;
+ }
if(i < len-1 && b >= 72)
{
*cptr++ = '"';
@@ -381,30 +372,30 @@
*cptr++ = '"';
for(i = b = 0; i < len; i++, cc++)
{
- int n;
- if(isprint(*cc))
- {
- *cptr++ = *cc;
- b++;
- }
- else
- {
- switch(*cc)
- {
- case '\a': *cptr++ = '\\'; *cptr++ = 'a'; b += 2; break;
- case '\b': *cptr++ = '\\'; *cptr++ = 'b'; b += 2; break;
- case '\f': *cptr++ = '\\'; *cptr++ = 'f'; b += 2; break;
- case '\n': *cptr++ = '\\'; *cptr++ = 'n'; b += 2; break;
- case '\r': *cptr++ = '\\'; *cptr++ = 'r'; b += 2; break;
- case '\t': *cptr++ = '\\'; *cptr++ = 't'; b += 2; break;
- case '\v': *cptr++ = '\\'; *cptr++ = 'v'; b += 2; break;
- case '\\': *cptr++ = '\\'; *cptr++ = '\\'; b += 2; break;
- case '"': *cptr++ = '\\'; *cptr++ = '"'; b += 2; break;
- default:
- n = sprintf(cptr, "\\x%02x", *cc & 0xff);
- cptr += n;
- b += n;
- }
+ switch(*cc)
+ {
+ case '\a': *cptr++ = '\\'; *cptr++ = 'a'; b += 2; break;
+ case '\b': *cptr++ = '\\'; *cptr++ = 'b'; b += 2; break;
+ case '\f': *cptr++ = '\\'; *cptr++ = 'f'; b += 2; break;
+ case '\n': *cptr++ = '\\'; *cptr++ = 'n'; b += 2; break;
+ case '\r': *cptr++ = '\\'; *cptr++ = 'r'; b += 2; break;
+ case '\t': *cptr++ = '\\'; *cptr++ = 't'; b += 2; break;
+ case '\v': *cptr++ = '\\'; *cptr++ = 'v'; b += 2; break;
+ case '\\': *cptr++ = '\\'; *cptr++ = '\\'; b += 2; break;
+ case '"': *cptr++ = '\\'; *cptr++ = '"'; b += 2; break;
+ default:
+ if(isprint(*cc))
+ {
+ *cptr++ = *cc;
+ b++;
+ }
+ else
+ {
+ int n = sprintf(cptr, "\\x%02x", *cc & 0xff);
+ cptr += n;
+ b += n;
+ }
+ break;
}
if(i < len-1 && b >= 72)
{