73 |
if (cvalue <= utf8_table1[i]) break; |
if (cvalue <= utf8_table1[i]) break; |
74 |
if (i >= sizeof(utf8_table1)/sizeof(int)) return 0; |
if (i >= sizeof(utf8_table1)/sizeof(int)) return 0; |
75 |
if (cvalue < 0) return -1; |
if (cvalue < 0) return -1; |
76 |
*buffer++ = utf8_table2[i] | (cvalue & utf8_table3[i]); |
|
77 |
cvalue >>= 6 - i; |
buffer += i; |
78 |
for (j = 0; j < i; j++) |
for (j = i; j > 0; j--) |
79 |
{ |
{ |
80 |
*buffer++ = 0x80 | (cvalue & 0x3f); |
*buffer-- = 0x80 | (cvalue & 0x3f); |
81 |
cvalue >>= 6; |
cvalue >>= 6; |
82 |
} |
} |
83 |
|
*buffer = utf8_table2[i] | cvalue; |
84 |
return i + 1; |
return i + 1; |
85 |
} |
} |
86 |
|
|
118 |
|
|
119 |
/* i now has a value in the range 1-5 */ |
/* i now has a value in the range 1-5 */ |
120 |
|
|
121 |
d = c & utf8_table3[i]; |
s = 6*i; |
122 |
s = 6 - i; |
d = (c & utf8_table3[i]) << s; |
123 |
|
|
124 |
for (j = 0; j < i; j++) |
for (j = 0; j < i; j++) |
125 |
{ |
{ |
126 |
c = *buffer++; |
c = *buffer++; |
127 |
if ((c & 0xc0) != 0x80) return -(j+1); |
if ((c & 0xc0) != 0x80) return -(j+1); |
128 |
|
s -= 6; |
129 |
d |= (c & 0x3f) << s; |
d |= (c & 0x3f) << s; |
|
s += 6; |
|
130 |
} |
} |
131 |
|
|
132 |
/* Check that encoding was the correct unique one */ |
/* Check that encoding was the correct unique one */ |
461 |
else if (strcmp(argv[op], "-i") == 0) showinfo = 1; |
else if (strcmp(argv[op], "-i") == 0) showinfo = 1; |
462 |
else if (strcmp(argv[op], "-d") == 0) showinfo = debug = 1; |
else if (strcmp(argv[op], "-d") == 0) showinfo = debug = 1; |
463 |
else if (strcmp(argv[op], "-o") == 0 && argc > 2 && |
else if (strcmp(argv[op], "-o") == 0 && argc > 2 && |
464 |
((size_offsets = strtoul(argv[op+1], &endptr, 10)), *endptr == 0)) |
((size_offsets = (int)strtoul(argv[op+1], &endptr, 10)), *endptr == 0)) |
465 |
{ |
{ |
466 |
op++; |
op++; |
467 |
argc--; |
argc--; |