@@ -326,13 +326,27 @@ regex_highlighter(attr_line_t& al, std::optional<int> x, line_range sub)
326326 alb.overlay_attr (line_range (lpc - 1 , lpc + 1 ),
327327 VC_ROLE .value (role_t ::VCR_ERROR ));
328328 break ;
329- case ' 0' :
330329 case ' x' :
331330 if (safe_read (line, lpc + 1 ) == ' {' ) {
332331 alb.overlay_attr (line_range (lpc - 1 , lpc + 1 ),
333332 VC_ROLE .value (role_t ::VCR_RE_SPECIAL ));
334- } else if (isdigit (safe_read (line, lpc + 1 ))
335- && isdigit (safe_read (line, lpc + 2 )))
333+ } else if (isxdigit (safe_read (line, lpc + 1 ))
334+ && isxdigit (safe_read (line, lpc + 2 )))
335+ {
336+ alb.overlay_attr (line_range (lpc - 1 , lpc + 3 ),
337+ VC_ROLE .value (role_t ::VCR_RE_SPECIAL ));
338+ } else {
339+ alb.overlay_attr (line_range (lpc - 1 , lpc + 1 ),
340+ VC_STYLE .value (text_attrs::with_styles (
341+ text_attrs::style::bold,
342+ text_attrs::style::reverse)));
343+ alb.overlay_attr (line_range (lpc - 1 , lpc + 1 ),
344+ VC_ROLE .value (role_t ::VCR_ERROR ));
345+ }
346+ break ;
347+ case ' 0' :
348+ if (isdigit (safe_read (line, lpc + 1 ))
349+ && isdigit (safe_read (line, lpc + 2 )))
336350 {
337351 alb.overlay_attr (line_range (lpc - 1 , lpc + 3 ),
338352 VC_ROLE .value (role_t ::VCR_RE_SPECIAL ));
0 commit comments