| @@ 254-260 (lines=7) @@ | ||
| 251 | if (0 == (0x80 & ($in))) { |
|
| 252 | // US-ASCII, pass straight through. |
|
| 253 | $mBytes = 1; |
|
| 254 | } elseif (0xC0 == (0xE0 & ($in))) { |
|
| 255 | // First octet of 2 octet sequence |
|
| 256 | $mUcs4 = ($in); |
|
| 257 | $mUcs4 = ($mUcs4 & 0x1F) << 6; |
|
| 258 | $mState = 1; |
|
| 259 | $mBytes = 2; |
|
| 260 | } elseif (0xE0 == (0xF0 & ($in))) { |
|
| 261 | // First octet of 3 octet sequence |
|
| 262 | $mUcs4 = ($in); |
|
| 263 | $mUcs4 = ($mUcs4 & 0x0F) << 12; |
|
| @@ 266-272 (lines=7) @@ | ||
| 263 | $mUcs4 = ($mUcs4 & 0x0F) << 12; |
|
| 264 | $mState = 2; |
|
| 265 | $mBytes = 3; |
|
| 266 | } elseif (0xF0 == (0xF8 & ($in))) { |
|
| 267 | // First octet of 4 octet sequence |
|
| 268 | $mUcs4 = ($in); |
|
| 269 | $mUcs4 = ($mUcs4 & 0x07) << 18; |
|
| 270 | $mState = 3; |
|
| 271 | $mBytes = 4; |
|
| 272 | } elseif (0xF8 == (0xFC & ($in))) { |
|
| 273 | /* First octet of 5 octet sequence. |
|
| 274 | * |
|
| 275 | * This is illegal because the encoded codepoint must be either |
|
| @@ 285-291 (lines=7) @@ | ||
| 282 | $mUcs4 = ($mUcs4 & 0x03) << 24; |
|
| 283 | $mState = 4; |
|
| 284 | $mBytes = 5; |
|
| 285 | } elseif (0xFC == (0xFE & ($in))) { |
|
| 286 | // First octet of 6 octet sequence, see comments for 5 octet sequence. |
|
| 287 | $mUcs4 = ($in); |
|
| 288 | $mUcs4 = ($mUcs4 & 1) << 30; |
|
| 289 | $mState = 5; |
|
| 290 | $mBytes = 6; |
|
| 291 | } else { |
|
| 292 | /* Current octet is neither in the US-ASCII range nor a legal first |
|
| 293 | * octet of a multi-octet sequence. |
|
| 294 | */ |
|