From 0b8ee3dac1abf7eb237e136e98d67b6dd15bb042 Mon Sep 17 00:00:00 2001 From: Denis Drakhnia Date: Thu, 19 Oct 2023 11:55:13 +0300 Subject: [PATCH] protocol: parse numbers with colorcode prefix --- protocol/src/cursor.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/protocol/src/cursor.rs b/protocol/src/cursor.rs index 620df7b..fc3cbeb 100644 --- a/protocol/src/cursor.rs +++ b/protocol/src/cursor.rs @@ -65,7 +65,14 @@ macro_rules! impl_get_value { ($($t:ty),+ $(,)?) => { $(impl<'a> GetKeyValue<'a> for $t { fn get_key_value(cur: &mut Cursor<'a>) -> Result { - cur.get_key_value::<&str>()?.parse().map_err(|_| Error::InvalidPacket) + let s = cur.get_key_value::<&str>()?; + // HACK: special case for one asshole + let s = if s.len() > 2 && s.as_bytes()[0] == b'^' && s.as_bytes()[1].is_ascii_digit() { + &s[2..] + } else { + s + }; + s.parse().map_err(|_| Error::InvalidPacket) } })+ };