diff --git a/src/ponysay.py b/src/ponysay.py index c828c3f6..cd7a8bfc 100755 --- a/src/ponysay.py +++ b/src/ponysay.py @@ -872,12 +872,39 @@ class Ponysay(): print('%s %s' % ('ponysay', VERSION)) + def __compressMessage(self, msg): + ''' + This algorithm should give some result as cowsay's + + @param msg:str The message + @return :str The message compressed + ''' + buf = '' + last = ' ' + CHARS = '\t \n' + for c in msg: + if (c in CHARS) and (last in CHARS): + if last == '\n': + buf += last + last = c + else: + buf += c + last = c + msg = buf.strip(CHARS) + buf = '' + for c in msg: + if (c != '\n') or (last != '\n'): + buf += c + last = c + return buf.replace('\n', '\n\n') + + def __useImage(self, pony): ''' Convert image to the ponysay format if it is a regular image - @param pony:str The pony file - @param pony:str The new pony file, or the old if it was already in the ponysay format + @param pony:str The pony file + @return :str The new pony file, or the old if it was already in the ponysay format ''' if endswith(pony.lower(), '.png'): pony = '\'' + pony.replace('\'', '\'\\\'\'') + '\'' @@ -926,24 +953,7 @@ class Ponysay(): ## This algorithm should give some result as cowsay's (according to tests) if args.opts['-c'] is not None: - buf = '' - last = ' ' - CHARS = '\t \n' - for c in msg: - if (c in CHARS) and (last in CHARS): - if last == '\n': - buf += last - last = c - else: - buf += c - last = c - msg = buf.strip(CHARS) - buf = '' - for c in msg: - if (c != '\n') or (last != '\n'): - buf += c - last = c - msg = buf.replace('\n', '\n\n') + msg = self.__compressMessage(msg) ## Print info printinfo('pony file: ' + pony)