ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/misc.C
(Generate patch)

Comparing rxvt-unicode/src/misc.C (file contents):
Revision 1.22 by root, Mon Dec 20 18:07:19 2004 UTC vs.
Revision 1.24 by root, Sun Jan 16 23:55:42 2005 UTC

36 char *r = (char *)rxvt_malloc (len * MB_CUR_MAX + 1); 36 char *r = (char *)rxvt_malloc (len * MB_CUR_MAX + 1);
37 37
38 char *dst = r; 38 char *dst = r;
39 while (len--) 39 while (len--)
40 { 40 {
41 int l = wcrtomb (dst, *str++, mbs); 41 ssize_t l = wcrtomb (dst, *str++, mbs);
42 if (l < 0) 42 if (l < 0)
43 *dst++ = '?'; 43 *dst++ = '?';
44 else 44 else
45 dst += l; 45 dst += l;
46 } 46 }
47 47
48 *dst++ = 0; 48 *dst++ = 0;
49 49
50 return r; 50 return (char *)rxvt_realloc (r, dst - r);
51} 51}
52 52
53wchar_t * 53wchar_t *
54rxvt_mbstowcs (const char *str, int len) 54rxvt_mbstowcs (const char *str, int len)
55{ 55{
56 if (len < 0) len = strlen (str); 56 if (len < 0) len = strlen (str);
57 57
58 wchar_t *r = (wchar_t *)rxvt_malloc ((len + 1) * sizeof (wchar_t)); 58 wchar_t *r = (wchar_t *)rxvt_malloc ((len + 1) * sizeof (wchar_t));
59 59
60 if (mbstowcs (r, str, len + 1) < 0) 60 if ((ssize_t)mbstowcs (r, str, len + 1) < 0)
61 *r = 0; 61 *r = 0;
62 62
63 return r; 63 return r;
64} 64}
65 65
91 *p++ = 0x80 | ( w & 0x3f); 91 *p++ = 0x80 | ( w & 0x3f);
92 else 92 else
93 *p++ = '?'; 93 *p++ = '?';
94 } 94 }
95 95
96 *p = 0; 96 *p++ = 0;
97 97
98 return r; 98 return (char *)rxvt_realloc (r, p - r);
99} 99}
100 100
101wchar_t * 101wchar_t *
102rxvt_utf8towcs (const char *str, int len) 102rxvt_utf8towcs (const char *str, int len)
103{ 103{

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines