diff --git a/Libraries/LibDraw/Color.cpp b/Libraries/LibDraw/Color.cpp index 1b1bf469d5..f6a976d94e 100644 --- a/Libraries/LibDraw/Color.cpp +++ b/Libraries/LibDraw/Color.cpp @@ -281,6 +281,16 @@ Optional Color::from_string(const StringView& string) return Color(r.value() * 17, g.value() * 17, b.value() * 17); } + if (string.length() == 5) { + Optional r = hex_nibble_to_u8(string[1]); + Optional g = hex_nibble_to_u8(string[2]); + Optional b = hex_nibble_to_u8(string[3]); + Optional a = hex_nibble_to_u8(string[4]); + if (!r.has_value() || !g.has_value() || !b.has_value() || !a.has_value()) + return {}; + return Color(r.value() * 17, g.value() * 17, b.value() * 17, a.value() * 17); + } + if (string.length() != 7 && string.length() != 9) return {};