Don't eat numbers after color formatting if they'd end up making the color code

`20` or more
This commit is contained in:
jesopo 2018-11-25 13:21:15 +00:00
parent 8cd7393d17
commit 6d2c15ed2c

View file

@ -152,28 +152,35 @@ def _color_tokens(s: str) -> typing.List[str]:
is_color = False
foreground = ""
background = ""
is_background = False
matches = [] # type: typing.List[str]
for char in s:
if is_color:
if char.isdigit():
if background:
can_add = True
current_color = background if is_background else foreground
if current_color:
can_add = int(current_color) == 1
if char.isdigit() and can_add:
if is_background:
background += char
else:
foreground += char
continue
elif char == "," and not background:
background += char
elif char == "," and not is_background:
is_background = True
continue
else:
color = foreground
if len(background) > 1:
color += background
if background:
color += ","+background
matches.append("\x03%s" % color)
is_color = False
foreground = ""
background = ""
is_background = False
if char == utils.consts.COLOR:
if is_color: