aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xponysay18
1 files changed, 16 insertions, 2 deletions
diff --git a/ponysay b/ponysay
index 45e1d33..b0bc98b 100755
--- a/ponysay
+++ b/ponysay
@@ -1371,9 +1371,23 @@ class Backend():
msg = self.message
if wrap is not None:
msg = self.__wrapMessage(msg, wrap)
- lines = msg.split('\n')
- return self.balloon.get(width, height, lines, self.__len)
+ if '\033' in msg:
+ AUTO_PUSH = '\033[01010~'
+ AUTO_POP = '\033[10101~'
+ cstack = ColourStack(AUTO_PUSH, AUTO_POP)
+ buf = ''
+ for c in msg:
+ if c == '\n':
+ for cc in ('%s\n%s' % (AUTO_PUSH, AUTO_POP)):
+ buf += cc
+ buf += cstack.feed(cc)
+ else:
+ buf += c
+ buf += cstack.feed(c)
+ msg = buf
+
+ return self.balloon.get(width, height, msg.split('\n'), self.__len)
'''