We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents 6130f9b + 9ffb43a commit 50c4328Copy full SHA for 50c4328
src/read.rs
@@ -1055,15 +1055,17 @@ static HEX0: [i16; 256] = build_hex_table(0);
1055
static HEX1: [i16; 256] = build_hex_table(4);
1056
1057
fn decode_four_hex_digits(a: u8, b: u8, c: u8, d: u8) -> Option<u16> {
1058
- let a = HEX1[a as usize];
1059
- let b = HEX0[b as usize];
1060
- let c = HEX1[c as usize];
1061
- let d = HEX0[d as usize];
+ let a = HEX1[a as usize] as i32;
+ let b = HEX0[b as usize] as i32;
+ let c = HEX1[c as usize] as i32;
+ let d = HEX0[d as usize] as i32;
1062
+
1063
+ let codepoint = ((a | b) << 8) | c | d;
1064
1065
// A single sign bit check.
- if (a | b | c | d) < 0 {
- return None;
1066
+ if codepoint >= 0 {
1067
+ Some(codepoint as u16)
1068
+ } else {
1069
+ None
1070
}
-
- Some((((a | b) << 8) | c | d) as u16)
1071
0 commit comments