wrapping use getcolour() instead of implementing it itself (code deduplication) + getcolour() recognises xterm palette changes

Signed-off-by: Mattias Andrée <maandree@operamail.com>
This commit is contained in:
Mattias Andrée 2012-11-10 00:35:01 +01:00
parent d5cd93b87d
commit aeea52b238

View file

@ -2173,6 +2173,22 @@ class Backend():
i += 1 i += 1
di += 1 di += 1
rc += c rc += c
while c == '0':
c = input[i]
i += 1
rc += c
if c == '4':
c = input[i]
i += 1
rc += c
if c == ';':
c = input[i]
i += 1
rc += c
while c != '\\':
c = input[i]
i += 1
rc += c
elif c == '[': elif c == '[':
while i < n: while i < n:
c = input[i] c = input[i]
@ -2290,32 +2306,13 @@ class Backend():
if i < n: if i < n:
d = line[i] d = line[i]
i += 1 i += 1
if d == '\033': # TODO this should use Backend.getcolour() if d == '\033':
## Invisible stuff ## Invisible stuff
b[bi] = d i -= 1
bi += 1 colourseq = Backend.getcolour(line, i)
b[bi] = line[i] b[bi : bi + len(colourseq)] = colourseq
d = line[i] i += len(colourseq)
bi += 1 bi += len(colourseq)
i += 1
if d == '[':
while True:
b[bi] = line[i]
d = line[i]
bi += 1
i += 1
if (('a' <= d) and (d <= 'z')) or (('A' <= d) and (d <= 'Z')) or (d == '~'):
break
elif d == ']':
b[bi] = line[i]
d = line[i]
bi += 1
i += 1
if d == 'P':
for j in range(0, 7):
b[bi] = line[i]
bi += 1
i += 1
elif (d is not None) and (d != ' '): elif (d is not None) and (d != ' '):
## Fetch word ## Fetch word
if indent == -1: if indent == -1: