diff options
author | Mattias Andrée <maandree@operamail.com> | 2012-08-21 02:53:01 +0200 |
---|---|---|
committer | Mattias Andrée <maandree@operamail.com> | 2012-08-21 02:53:01 +0200 |
commit | 5fa8938b957e38a930934d615e0f803e8c5a5336 (patch) | |
tree | e52a798a5e538d06b3d0c12862135dd891668934 /ponysay | |
parent | 5ee263a05560ef5a3031425c3f65e6d8b8d7cc3e (diff) | |
download | ponysay-5fa8938b957e38a930934d615e0f803e8c5a5336.tar.gz ponysay-5fa8938b957e38a930934d615e0f803e8c5a5336.tar.bz2 ponysay-5fa8938b957e38a930934d615e0f803e8c5a5336.zip |
work on colour stack + make fix
Diffstat (limited to 'ponysay')
-rwxr-xr-x | ponysay | 23 |
1 files changed, 21 insertions, 2 deletions
@@ -1085,16 +1085,35 @@ class ColourStack(): Constructor ''' def __init__(self, autopush, autopop): - pass + self.autopush = autopush + self.autopop = autopop + self.lenpush = len(autopush) + self.lenpop = len(autopop) + self.bufproto = ' ' * (self.lenpush if self.lenpush > self.lenpop else self.lenpop) + self.stack = [] + self.push() + def push(self): + self.stack = [[self.bufproto]] + self.stack + if len(self.stack) == 1: + return '' return '' + def pop(self): return '' + def feed(self, char): - return '' + buf = self.stack[0][0] + rc = '' + if buf[:-self.lenpush] == self.autopush: + rc = self.push() + elif buf[:-self.lenpop] == self.autopop: + rc = self.pop() + self.stack[0][0] = buf[1:] + char + return rc |