160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
|
c = *++z;
if( c2>=0x80 ){
if( ((c2<0xc2) || (c2>=0xf4) || ((c&0xc0)!=0x80)) &&
(((c2!=0xf4) || (c>=0x90)) && ((c2!=0xc0) || (c!=0x80))) ){
return LOOK_INVALID; /* Invalid UTF-8 */
}
if( c2>=0xe0 ){
if( c2>=0xf0 ){
if (c2==0xf0 && c<0x90) return LOOK_INVALID; /* Invalid UTF-8 */
c = (c2<<1)|3;
}else{
if (c2==0xe0 && c<0xa0) return LOOK_INVALID; /* Invalid UTF-8 */
c = (c2<<1)|3;
}
}else{
c = ' ';
}
}
}
return (c>=0x80) ? LOOK_INVALID : 0; /* Last byte must be ASCII. */
}
|
<
|
<
<
|
<
>
|
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
|
c = *++z;
if( c2>=0x80 ){
if( ((c2<0xc2) || (c2>=0xf4) || ((c&0xc0)!=0x80)) &&
(((c2!=0xf4) || (c>=0x90)) && ((c2!=0xc0) || (c!=0x80))) ){
return LOOK_INVALID; /* Invalid UTF-8 */
}
if( c2>=0xe0 ){
if ((c2==0xf0 && c<0x90)||(c2==0xe0 && c<0xa0)){
return LOOK_INVALID; /* Invalid UTF-8, too short */
}
c = (c2<<1)|3;
}else{
c = ' ';
}
}
}
return (c>=0x80) ? LOOK_INVALID : 0; /* Last byte must be ASCII. */
}
|