forked from 1b-agent/opencadstudio-upstream
Bug: Legacy CTB files carry color1 = #xx... colour values parsed with fixed-offset byte slices (&value[2..4], ...) guarded only by a length check. Multi-byte UTF-8 in the value (a value with a non-ASCII character inside the hex section) passes the byte-length check but slices mid-character, panicking while the style loads. Reproduce: 1. Craft a legacy CTB whose color1 value passes the length check but contains a multi-byte character. 2. Open the Plot Style panel or plot with that style. 3. Before: panic at the char-boundary slice. 4. After: invalid pairs parse as 0 (black) and the style loads. Fix: Fixed-offset byte slices are replaced with str::get over the same offsets - None (a non-boundary or short position) keeps the existing unwrap_or(0) semantics, so every previously valid value parses identically and previously panicking values now default to zero. Tests: the crafted multi-byte value loads as black, valid values unchanged.