Merge branch 'develop'

This commit is contained in:
Mattias Andrée 2012-10-27 23:45:02 +02:00
commit e3872aed44
8 changed files with 88 additions and 31 deletions

View file

@ -16,6 +16,8 @@ Version 2.9
If file descriptor 3 is definied when ponysay is executed, extra information is printed to it. If file descriptor 3 is definied when ponysay is executed, extra information is printed to it.
Arguments starting with n or i is allowed for -W.
Version 2.8 Version 2.8

View file

@ -27,7 +27,7 @@ _ponysay()
elif [ $prev = "-W" ] || [ $prev = "--wrap" ]; then elif [ $prev = "-W" ] || [ $prev = "--wrap" ]; then
cols=$(( `stty size | cut -d ' ' -f 2` - 10 )) cols=$(( `stty size | cut -d ' ' -f 2` - 10 ))
COMPREPLY=( $cols $(( $cols / 2 )) 100 60 ) COMPREPLY=( $cols $(( $cols / 2 )) 100 60 none inherit )
fi fi
} }

View file

@ -1,6 +1,4 @@
# FISH completions for ponysay # fish completion for ponysay -*- shell-script -*-
# https://github.com/erkin/ponysay/
#
# Author: Elis Axelsson <etu AT elis DOT nu> # Author: Elis Axelsson <etu AT elis DOT nu>
set -g ponies ('/usr/bin/ponysay' --onelist) set -g ponies ('/usr/bin/ponysay' --onelist)
@ -19,7 +17,7 @@ complete --command ponysay --short-option f --long-option pony --argument
complete --command ponysay --short-option F --arguments "$xponies" --description 'extra pony' complete --command ponysay --short-option F --arguments "$xponies" --description 'extra pony'
complete --command ponysay --short-option q --long-option quote --arguments "$quoters" --no-files --description 'pony' complete --command ponysay --short-option q --long-option quote --arguments "$quoters" --no-files --description 'pony'
complete --command ponysay --short-option b --long-option balloon --arguments "$balloons" --no-files --description 'balloon style' complete --command ponysay --short-option b --long-option balloon --arguments "$balloons" --no-files --description 'balloon style'
complete --command ponysay --short-option W --long-option wrap --arguments 'Integer' --description 'specify the column when the message should be wrapped' complete --command ponysay --short-option W --long-option wrap --arguments 'Integer' --description 'specify the column when the message should be wrapped' ## TODO arguments `none` and `inherit` should be suggested
complete --command ponysay --arguments 'MESSAGE' complete --command ponysay --arguments 'MESSAGE'

View file

@ -1,3 +1,4 @@
# zsh completion for ponysay -*- shell-script -*-
#compdef ponysay ponythink #compdef ponysay ponythink
_opts=( _opts=(
'(--version -v)'{-v,--version}'[Show version and exit]' '(--version -v)'{-v,--version}'[Show version and exit]'
@ -9,7 +10,7 @@ _opts=(
'(-B --balloonlist)'{-B,--balloonlist}'[list balloon style names]' '(-B --balloonlist)'{-B,--balloonlist}'[list balloon style names]'
'(-b --ballon)'{-b,--balloon}'[Selecy a balloon style]: :_path_files -W '/usr/share/ponysay/balloons' -g "*(\:r)"' '(-b --ballon)'{-b,--balloon}'[Selecy a balloon style]: :_path_files -W '/usr/share/ponysay/balloons' -g "*(\:r)"'
'(-c --compact)'{-c,--compat}'[Compress messages.]' '(-c --compact)'{-c,--compat}'[Compress messages.]'
'(-W --wrap)'{-W,--wrap}'[The screen column where the message should be wrapped]' '(-W --wrap)'{-W,--wrap}'[The screen column where the message should be wrapped]' # TODO arguments `none` and `inherit` should be suggested
) )
_tty_select=( _tty_select=(
'(-q --quite)'{-q,--quote}'[Select ponies for MLP:FiM quotes]: :_path_files -W '/usr/share/ponysay/ttyponies' -g "*(\:r)"' '(-q --quite)'{-q,--quote}'[Select ponies for MLP:FiM quotes]: :_path_files -W '/usr/share/ponysay/ttyponies' -g "*(\:r)"'

View file

@ -80,7 +80,9 @@ is added as an argument to \fI-q\fP. If one or more ponies are added as an argum
to \fI-q\fP the pony will be selected randomly from that set of ponies. to \fI-q\fP the pony will be selected randomly from that set of ponies.
.TP .TP
.B \-W, \-\-wrap \fIcolumn\fP .B \-W, \-\-wrap \fIcolumn\fP
The screen column where the message should be wrapped. The screen column where the message should be wrapped, the balloon's extra width is taken
into consideration. If the argument is not a number, but starts instead with \fIn\fP,
no wrapping is done, and if it starts with \fIi\fP the width of the terminal is used.
.TP .TP
.B \-A, \-\-all .B \-A, \-\-all
List all pony files, MLP-FiM and non-MLP-FiM, in this case the first list are MLP:FiM List all pony files, MLP-FiM and non-MLP-FiM, in this case the first list are MLP:FiM

View file

@ -82,7 +82,9 @@ uno o varios ponis sean agregados tras la opción \fI-q\fP, en cuyo caso se sele
aleatoriamente uno de este conjunto. aleatoriamente uno de este conjunto.
.TP .TP
.B \-W, \-\-wrap \fIcolumna\fP .B \-W, \-\-wrap \fIcolumna\fP
El numero de columnas en el que será impreso el mensaje. La columna donde el mensage será truncado, el globo puede tomar en consideración un largo mayor
si el argumento no es un numero, pero si inicia con \fIn\fP , no hay contenido y si es \fIi\fP
el largo de la terminal es usado es su lugar.
.TP .TP
.B \-A. \-\-all .B \-A. \-\-all
Lista todos los ponis, tanto pertenecientes a MLP:FiM cono no pertenecientes a esta Lista todos los ponis, tanto pertenecientes a MLP:FiM cono no pertenecientes a esta

View file

@ -216,6 +216,9 @@ Variadic variant of @option{-F}, meaning that all arguments added after this one
will parsed as an argument to this option. Additionally, those options are added will parsed as an argument to this option. Additionally, those options are added
to @option{-F}. to @option{-F}.
An important feature of this options, is that you can but it in the end of the
command line, without any argument to get a random non-MLP:FiM pony.
@item --q [PONY...] @item --q [PONY...]
@itemx --quotes [PONY...] @itemx --quotes [PONY...]
@opindex @option{--q} @opindex @option{--q}
@ -245,7 +248,16 @@ balloon style is specified a fallback style will be used.
@opindex @option{-W} @opindex @option{-W}
@opindex @option{--wrap} @opindex @option{--wrap}
Specify the screen column where the message should be wrapped, this is by default 40, Specify the screen column where the message should be wrapped, this is by default 40,
as with @command{cowsay}. as with @command{cowsay}. The balloon's extra width is taken into consideration.
If the argument is not a number, but starts instead with @code{n} (for none or
no), no wrapping is done, and if it starts with @code{i} (for inherit) the width
of the terminal is used.
@code{n} and @code{i} is case insensitive, so you may use @code{N} and @code{I}
instead. Additionally, typo correction is for QWERTY and Dvorak is built in to
@command{ponysay}; the nearest key, either to the left or to the right, depending
on which hand is used to press the key, is also allowed.
@item -c @item -c
@itemx --compress @itemx --compress
@ -1337,9 +1349,12 @@ before building and installing.
@menu @menu
* Arch Linux:: Packages for Arch Linux. * Arch Linux:: Packages for Arch Linux.
* Arch Linux ARM:: Packages for Arch Linux ARM.
* Chakra:: Packages for Chakra. * Chakra:: Packages for Chakra.
* Gentoo Linux:: Packages for Gentoo Linux.
* Debian GNU/Linux:: Packages for Debian GNU/Linux and Ubuntu. * Debian GNU/Linux:: Packages for Debian GNU/Linux and Ubuntu.
* Gentoo Linux:: Packages for Gentoo Linux.
* Parabola GNU/Linux:: Packages for Parabola GNU/Linux.
* Source Mage GNU/Linux:: Packages for Source Mage GNU/Linux.
@end menu @end menu
@ -1348,24 +1363,26 @@ before building and installing.
@cindex arch linux @cindex arch linux
The official Arch Linux package repositories contains @command{ponysay} as The official Arch Linux package repositories contains @command{ponysay} as
@w{@code{community/ponysay}}. The Arch Linux User Repository (AUR) contains a @w{@code{community/ponysay}} (developer maintained). The Arch Linux User Repository
bleeding edge git version of @command{ponysay} as @code{ponysay-git}. (AUR) contains a bleeding edge git version of @command{ponysay} as
@w{@code{ponysay-git}} (user maintained).
@node Arch Linux ARM
@subsection Arch Linux ARM
@cindex arch linux arm
@w{@code{community/ponysay}} from Arch Linux (@ref{Arch Linux}) is also available
for Arch Linux ARM.
@node Chakra @node Chakra
@subsection Chakra @subsection Chakra
@cindex chakra @cindex chakra
Chakra users can install from (CCR) a stable version named a @code{ponysay}, Chakra users can install from (CCR) a stable version named a @code{ponysay}
additionally a git verion of ponysay is available as @code{ponysay-git}. (developer maintained Arch Linux mirror), additionally a git verion of ponysay is
available as @code{ponysay-git} (developer maintained Arch Linux mirror).
@node Gentoo Linux
@subsection Gentoo Linux
@cindex gentoo linux
Gentoo users can use the overlay @url{https://github.com/etu/aidstu-overlay}, which
contains @command{ponysay} as @w{@code{games-misc/ponysay}}.
@node Debian GNU/Linux @node Debian GNU/Linux
@ -1373,9 +1390,34 @@ contains @command{ponysay} as @w{@code{games-misc/ponysay}}.
@cindex debian gnu/linux @cindex debian gnu/linux
@cindex ubuntu @cindex ubuntu
A .deb file is available at @url{http://roryholland.co.uk/misc.html#ponysay}, A .deb file is available at @url{http://roryholland.co.uk/misc.html#ponysay}
and PPA:s can be found at @url{https://launchpad.net/~vincent-c/+archive/ppa} and (user maintained), and PPA:s can be found at
@url{https://launchpad.net/~blazemore/+archive/ponysay}. @url{https://launchpad.net/~vincent-c/+archive/ppa} (user maintained) and
@url{https://launchpad.net/~blazemore/+archive/ponysay} (user maintained).
@node Gentoo Linux
@subsection Gentoo Linux
@cindex gentoo linux
Gentoo users can use the overlay @url{https://github.com/etu/aidstu-overlay}, which
contains @command{ponysay} as @w{@code{games-misc/ponysay}} (developer maintained).
@node Parabola GNU/Linux
@subsection Parabola GNU/Linux
@cindex parabola gnu/linux
@w{@code{community/ponysay}} from Arch Linux (@ref{Arch Linux}) is also available
for Parabola GNU/Linux.
@node Source Mage GNU/Linux
@subsection Source Mage GNU/Linux
@cindex source mage gnu/linux
The spell @w{@code{util/ponysay}} (user maintained) is available in Grimoire for
Source Mage @w{GNU/Linux}.
@node Uninstalling @node Uninstalling
@ -2022,6 +2064,8 @@ than unlimited. Currently this cannot be modified (without editing the source co
@item @item
If file descriptor 3 is definied when @command{ponysay} is executed, extra information is If file descriptor 3 is definied when @command{ponysay} is executed, extra information is
printed to it. printed to it.
@item
Arguments starting with @code{n} or @code{i} is allowed for @option{-W}.
@end itemize @end itemize

View file

@ -319,13 +319,13 @@ class Ponysay():
ponies[pony] = ponydir + ponyfile ponies[pony] = ponydir + ponyfile
## Support for explicit pony file names ## Support for explicit pony file names
if not names == None: if names is not None:
for name in names: for name in names:
if os.path.exists(name): if os.path.exists(name):
ponies[name] = name ponies[name] = name
## If there is not select ponies, choose all of them ## If there is not select ponies, choose all of them
if names == None: if (names is None) or (len(names) == 0):
names = list(ponies.keys()) names = list(ponies.keys())
## Select a random pony of the choosen onles ## Select a random pony of the choosen onles
@ -806,11 +806,19 @@ class Ponysay():
if linuxvt: if linuxvt:
print('\033[H\033[2J', end='') print('\033[H\033[2J', end='')
## Width Get truncation and wrapping ## Get width truncation and wrapping
env_width = os.environ['PONYSAY_FULL_WIDTH'] if 'PONYSAY_FULL_WIDTH' in os.environ else None env_width = os.environ['PONYSAY_FULL_WIDTH'] if 'PONYSAY_FULL_WIDTH' in os.environ else None
if env_width is None: env_width = '' if env_width is None: env_width = ''
widthtruncation = self.__gettermsize()[1] if env_width not in ('yes', 'y', '1') else None widthtruncation = self.__gettermsize()[1] if env_width not in ('yes', 'y', '1') else None
messagewrap = int(args.opts['-W'][0]) if args.opts['-W'] is not None else None messagewrap = 40
if (args.opts['-W'] is not None) and (len(args.opts['-W'][0]) > 0):
messagewrap = args.opts['-W'][0]
if messagewrap[0] in 'nmsNMS': # m is left to n on QWERTY and s is left to n on Dvorak
messagewrap = None
elif messagewrap[0] in 'iouIOU': # o is left to i on QWERTY and u is right to i on Dvorak
messagewrap = self.__gettermsize()[1]
else:
messagewrap = int(args.opts['-W'][0])
## Get balloon object ## Get balloon object
balloonfile = self.__getballoonpath(args.opts['-b']) balloonfile = self.__getballoonpath(args.opts['-b'])
@ -833,8 +841,8 @@ class Ponysay():
## Run cowsay replacement ## Run cowsay replacement
backend = Backend(message = msg, ponyfile = pony, wrapcolumn = messagewrap if messagewrap is not None else 40, backend = Backend(message = msg, ponyfile = pony, wrapcolumn = messagewrap, width = widthtruncation,
width = widthtruncation, balloon = balloon, hyphen = hyphen, linkcolour = linkcolour, ballooncolour = ballooncolour) balloon = balloon, hyphen = hyphen, linkcolour = linkcolour, ballooncolour = ballooncolour)
backend.parse() backend.parse()
output = backend.output output = backend.output
if output.endswith('\n'): if output.endswith('\n'):