]>
Commit | Line | Data |
---|---|---|
f20569fa XL |
1 | fn issue1468() { |
2 | euc_jp_decoder_functions!({ | |
3 | let trail_minus_offset = byte.wrapping_sub(0xA1); | |
4 | // Fast-track Hiragana (60% according to Lunde) | |
5 | // and Katakana (10% according to Lunde). | |
6 | if jis0208_lead_minus_offset == 0x03 && | |
7 | trail_minus_offset < 0x53 { | |
8 | // Hiragana | |
9 | handle.write_upper_bmp(0x3041 + trail_minus_offset as u16) | |
10 | } else if jis0208_lead_minus_offset == 0x04 && | |
11 | trail_minus_offset < 0x56 { | |
12 | // Katakana | |
13 | handle.write_upper_bmp(0x30A1 + trail_minus_offset as u16) | |
14 | } else if trail_minus_offset > (0xFE - 0xA1) { | |
15 | if byte < 0x80 { | |
16 | return (DecoderResult::Malformed(1, 0), | |
17 | unread_handle_trail.unread(), | |
18 | handle.written()); | |
19 | } | |
20 | return (DecoderResult::Malformed(2, 0), | |
21 | unread_handle_trail.consumed(), | |
22 | handle.written()); | |
23 | } else { | |
24 | unreachable!(); | |
25 | } | |
26 | }); | |
27 | } |