summaryrefslogtreecommitdiffstats
path: root/src/tools/rustfmt/tests/target/issue-1468.rs
blob: 4c14a0f746a0b9fb679abb0d8dbb0618f98a4b24 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
fn issue1468() {
    euc_jp_decoder_functions!({
        let trail_minus_offset = byte.wrapping_sub(0xA1);
        // Fast-track Hiragana (60% according to Lunde)
        // and Katakana (10% according to Lunde).
        if jis0208_lead_minus_offset == 0x03 && trail_minus_offset < 0x53 {
            // Hiragana
            handle.write_upper_bmp(0x3041 + trail_minus_offset as u16)
        } else if jis0208_lead_minus_offset == 0x04 && trail_minus_offset < 0x56 {
            // Katakana
            handle.write_upper_bmp(0x30A1 + trail_minus_offset as u16)
        } else if trail_minus_offset > (0xFE - 0xA1) {
            if byte < 0x80 {
                return (
                    DecoderResult::Malformed(1, 0),
                    unread_handle_trail.unread(),
                    handle.written(),
                );
            }
            return (
                DecoderResult::Malformed(2, 0),
                unread_handle_trail.consumed(),
                handle.written(),
            );
        } else {
            unreachable!();
        }
    });
}