projects
/
dana
/
urxvt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
*** empty log message ***
[dana/urxvt.git]
/
src
/
misc.C
diff --git
a/src/misc.C
b/src/misc.C
index
a56e4de
..
e93dba7
100644
(file)
--- a/
src/misc.C
+++ b/
src/misc.C
@@
-108,17
+108,19
@@
rxvt_utf8towcs (const char *str, int len)
unsigned char *s = (unsigned char *)str;
unsigned char *s = (unsigned char *)str;
- while (len
--
)
+ while (len)
{
if (s[0] < 0x80)
{
if (s[0] < 0x80)
- *p++ = *s++;
+ {
+ *p++ = *s++; len--;
+ }
else if (len > 0
&& s[0] >= 0xc2 && s[0] <= 0xdf
&& (s[1] & 0xc0) == 0x80)
{
*p++ = ((s[0] & 0x1f) << 6)
| (s[1] & 0x3f);
else if (len > 0
&& s[0] >= 0xc2 && s[0] <= 0xdf
&& (s[1] & 0xc0) == 0x80)
{
*p++ = ((s[0] & 0x1f) << 6)
| (s[1] & 0x3f);
- s += 2;
+ s += 2;
len -= 2;
}
else if (len > 1
&& ( (s[0] == 0xe0 && s[1] >= 0xa0 && s[1] <= 0xbf)
}
else if (len > 1
&& ( (s[0] == 0xe0 && s[1] >= 0xa0 && s[1] <= 0xbf)
@@
-131,7
+133,7
@@
rxvt_utf8towcs (const char *str, int len)
*p++ = ((s[0] & 0x0f) << 12)
| ((s[1] & 0x3f) << 6)
| (s[2] & 0x3f);
*p++ = ((s[0] & 0x0f) << 12)
| ((s[1] & 0x3f) << 6)
| (s[2] & 0x3f);
- s += 3;
+ s += 3;
len -= 3;
}
else if (len > 2
&& ( (s[0] == 0xf0 && s[1] >= 0x90 && s[1] <= 0xbf)
}
else if (len > 2
&& ( (s[0] == 0xf0 && s[1] >= 0x90 && s[1] <= 0xbf)
@@
-145,12
+147,12
@@
rxvt_utf8towcs (const char *str, int len)
| ((s[1] & 0x3f) << 12)
| ((s[2] & 0x3f) << 6)
| (s[3] & 0x3f);
| ((s[1] & 0x3f) << 12)
| ((s[2] & 0x3f) << 6)
| (s[3] & 0x3f);
- s += 4;
+ s += 4;
len -= 4;
}
else
{
*p++ = 0xfffd;
}
else
{
*p++ = 0xfffd;
- s++;
+ s++;
len--;
}
}
}
}