diff options
author | Mattias Andrée <maandree@operamail.com> | 2012-08-22 01:55:50 +0200 |
---|---|---|
committer | Mattias Andrée <maandree@operamail.com> | 2012-08-22 01:55:50 +0200 |
commit | 22d7318624f834254ecdb0c6bdf9536dee3cae37 (patch) | |
tree | 8f4a027ab4f60d6f0f4375d5413571c006a3e2c8 /ponysay | |
parent | 08fb7cc7e66f4cc5917b4b15a61b111abe94cc27 (diff) | |
download | ponysay-22d7318624f834254ecdb0c6bdf9536dee3cae37.tar.gz ponysay-22d7318624f834254ecdb0c6bdf9536dee3cae37.tar.bz2 ponysay-22d7318624f834254ecdb0c6bdf9536dee3cae37.zip |
warping error with combining characters
Diffstat (limited to 'ponysay')
-rwxr-xr-x | ponysay | 21 |
1 files changed, 12 insertions, 9 deletions
@@ -995,19 +995,19 @@ class Balloon(): rc = [] for j in range(0, len(self.n)): - outer = len(self.nw[j]) + len(self.ne[j]) - inner = len(self.nnw[j]) + len(self.nne[j]) + outer = UCS.dispLen(self.nw[j]) + UCS.dispLen(self.ne[j]) + inner = UCS.dispLen(self.nnw[j]) + UCS.dispLen(self.nne[j]) if outer + inner >= w: rc.append(self.nw[j] + self.nnw[j] + self.n[j] * (w - outer - inner) + self.nne[j] + self.ne[j]) else: rc.append(self.nw[j] + self.n[j] * (w - outer) + self.ne[j]) for j in range(0, len(lines)): - rc.append(ws[j] + lines[j] + ' ' * (w - lencalc(lines[j]) - len(self.w) - len(self.e)) + es[j]) + rc.append(ws[j] + lines[j] + ' ' * (w - lencalc(lines[j]) - UCS.dispLen(self.w) - UCS.dispLen(self.e)) + es[j]) for j in range(0, len(self.s)): - outer = len(self.sw[j]) + len(self.se[j]) - inner = len(self.ssw[j]) + len(self.sse[j]) + outer = UCS.dispLen(self.sw[j]) + UCS.dispLen(self.se[j]) + inner = UCS.dispLen(self.ssw[j]) + UCS.dispLen(self.sse[j]) if outer + inner >= w: rc.append(self.sw[j] + self.ssw[j] + self.s[j] * (w - outer - inner) + self.sse[j] + self.se[j]) else: @@ -1069,7 +1069,8 @@ class Backend(): x += nx else: buf += c - x += 1 + if not UCS.isCombining(c): + x += 1 buf += '\n' self.message = buf[:-1] @@ -1107,7 +1108,8 @@ class Backend(): else: if x < self.width: self.output += c - x += 1 + if not UCS.isCombining(c): + x += 1 self.output += '\n' self.output = self.output[:-1] @@ -1222,7 +1224,8 @@ class Backend(): if nonskip > 0: nonskip -= 1 self.output += c + colourstack.feed(c); - indent += 1 + if not UCS.isCombining(c): + indent += 1 else: skip -= 1 @@ -1302,7 +1305,7 @@ class Backend(): msg = self.__wrapMessage(msg, wrap) lines = msg.split('\n') - return self.balloon.get(width, height, lines, self.__len) + return self.balloon.get(width, height, lines, lambda text : self.__len(text) - UCS.countCombining(text)) ''' |