environment variables PONYSAY_{TYPO_LIMIT,WRAP_HYPHEN}

This commit is contained in:
Mattias Andrée 2012-10-28 04:09:53 +01:00
parent 0a04905912
commit 03ab06b8e1
3 changed files with 41 additions and 3 deletions

View file

@ -2,6 +2,10 @@ Version 3.0
Renamed option -F to +f and option --F to ++f. Renamed option -F to +f and option --F to ++f.
Environment variable 'PONYSAY_TYPO_LIMIT' has been added.
Environment variable 'PONYSAY_WRAP_HYPHEN' has been added.
Version 2.9 Version 2.9

View file

@ -610,6 +610,29 @@ ponysay how your TTY palette looks, this feature lets you get the best images
in TTY if you have Kernel Mode Setting (KMS) support. in TTY if you have Kernel Mode Setting (KMS) support.
See @ref{KMS ponies} for information on how to use this. See @ref{KMS ponies} for information on how to use this.
@item @env{PONYSAY_TYPO_LIMIT}
@vindex @env{PONYSAY_TYPO_LIMIT}
@cindex auto correction
@cindex typo correction
@cindex spello correction
ponysay is able to auto correct misspelled pony names and balloon style name.
Without consideration for transpositioning, the distance between two words are
measured in the number of edits needed to get from one word to the other, with
weighting on some character changes used to favour spellos over typos.
By default if the weighted distance is greater than 5 for the closest words,
auto correction ignored. This limit can be changed by exporting the limit to
@env{PONYSAY_TYPO_LIMIT}; setting the limit to zero will disable auto correction.
@item @env{PONYSAY_WRAP_HYPHEN}
@vindex @env{PONYSAY_WRAP_HYPHEN}
@cindex wrapping
You can export what ponysay should use instead of a hyphen when wrapping messages.
The hythen is red by default, if you want to change the colour or other formating,
should should do so using the option @option{--colour-hyphen} (@option{--colour-wrap}).
@end table @end table
@ -2050,6 +2073,10 @@ sequences.
@itemize @bullet @itemize @bullet
@item @item
Renamed option @option{-F} to @option{+f} and option @option{--F} to @option{++f}. Renamed option @option{-F} to @option{+f} and option @option{--F} to @option{++f}.
@item
Environment variable @env{PONYSAY_TYPO_LIMIT} has been added.
@item
Environment variable @env{PONYSAY_WRAP_HYPHEN} has been added.
@end itemize @end itemize

View file

@ -334,7 +334,9 @@ class Ponysay():
if not alt: if not alt:
autocorrect = SpelloCorrecter(ponydirs, '.pony') autocorrect = SpelloCorrecter(ponydirs, '.pony')
(alternatives, dist) = autocorrect.correct(pony) (alternatives, dist) = autocorrect.correct(pony)
if (len(alternatives) > 0) and (dist <= 5): # TODO the limit `dist` should be configureable limit = os.environ['PONYSAY_TYPO_LIMIT'] if 'PONYSAY_TYPO_LIMIT' in os.environ else ''
limit = 5 if len(limit) == 0 else int(dist)
if (len(alternatives) > 0) and (dist <= limit):
return self.__getponypath(alternatives, True) return self.__getponypath(alternatives, True)
sys.stderr.write('I have never heard of anypony named %s\n' % (pony)); sys.stderr.write('I have never heard of anypony named %s\n' % (pony));
exit(1) exit(1)
@ -691,7 +693,9 @@ class Ponysay():
if not alt: if not alt:
autocorrect = SpelloCorrecter(balloondirs, '.think' if isthink else '.say') autocorrect = SpelloCorrecter(balloondirs, '.think' if isthink else '.say')
(alternatives, dist) = autocorrect.correct(balloon) (alternatives, dist) = autocorrect.correct(balloon)
if (len(alternatives) > 0) and (dist <= 5): # TODO the limit `dist` should be configureable limit = os.environ['PONYSAY_TYPO_LIMIT'] if 'PONYSAY_TYPO_LIMIT' in os.environ else ''
limit = 5 if len(limit) == 0 else int(dist)
if (len(alternatives) > 0) and (dist <= limit):
return self.__getballoonpath(alternatives, True) return self.__getballoonpath(alternatives, True)
sys.stderr.write('That balloon style %s does not exist\n' % (balloon)); sys.stderr.write('That balloon style %s does not exist\n' % (balloon));
exit(1) exit(1)
@ -826,10 +830,13 @@ class Ponysay():
balloon = self.__getballoon(balloonfile) if args.opts['-o'] is None else None balloon = self.__getballoon(balloonfile) if args.opts['-o'] is None else None
## Get hyphen style ## Get hyphen style
hyphen = environ['PONYSAY_BOTTOM'] if 'PONYSAY_BOTTOM' in os.environ else None
if (hyphen is None) or (len(hyphen) == 0):
hyphen = '-'
hyphencolour = '' hyphencolour = ''
if args.opts['--colour-wrap'] is not None: if args.opts['--colour-wrap'] is not None:
hyphencolour = '\033[' + ';'.join(args.opts['--colour-wrap']) + 'm' hyphencolour = '\033[' + ';'.join(args.opts['--colour-wrap']) + 'm'
hyphen = '\033[31m' + hyphencolour + '-' # TODO make configurable hyphen = '\033[31m' + hyphencolour + hyphen
## Link and balloon colouring ## Link and balloon colouring
linkcolour = '' linkcolour = ''