aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG2
-rw-r--r--completion/bash-completion.sh2
-rw-r--r--completion/fish-completion.fish6
-rw-r--r--completion/zsh-completion.zsh3
-rw-r--r--manuals/manpage.04
-rw-r--r--manuals/manpage.es.04
-rw-r--r--manuals/ponysay.texinfo72
-rwxr-xr-xponysay.py20
8 files changed, 85 insertions, 28 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 787a9a2..be02a02 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -16,6 +16,8 @@ Version 2.9
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
diff --git a/completion/bash-completion.sh b/completion/bash-completion.sh
index e9c284c..ae6a744 100644
--- a/completion/bash-completion.sh
+++ b/completion/bash-completion.sh
@@ -27,7 +27,7 @@ _ponysay()
elif [ $prev = "-W" ] || [ $prev = "--wrap" ]; then
cols=$(( `stty size | cut -d ' ' -f 2` - 10 ))
- COMPREPLY=( $cols $(( $cols / 2 )) 100 60 )
+ COMPREPLY=( $cols $(( $cols / 2 )) 100 60 none inherit )
fi
}
diff --git a/completion/fish-completion.fish b/completion/fish-completion.fish
index 044dd78..24e9b05 100644
--- a/completion/fish-completion.fish
+++ b/completion/fish-completion.fish
@@ -1,6 +1,4 @@
-# FISH completions for ponysay
-# https://github.com/erkin/ponysay/
-#
+# fish completion for ponysay -*- shell-script -*-
# Author: Elis Axelsson <etu AT elis DOT nu>
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 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 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'
diff --git a/completion/zsh-completion.zsh b/completion/zsh-completion.zsh
index 68487bd..ec00594 100644
--- a/completion/zsh-completion.zsh
+++ b/completion/zsh-completion.zsh
@@ -1,3 +1,4 @@
+# zsh completion for ponysay -*- shell-script -*-
#compdef ponysay ponythink
_opts=(
'(--version -v)'{-v,--version}'[Show version and exit]'
@@ -9,7 +10,7 @@ _opts=(
'(-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)"'
'(-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=(
'(-q --quite)'{-q,--quote}'[Select ponies for MLP:FiM quotes]: :_path_files -W '/usr/share/ponysay/ttyponies' -g "*(\:r)"'
diff --git a/manuals/manpage.0 b/manuals/manpage.0
index 5407e2c..fefc6ae 100644
--- a/manuals/manpage.0
+++ b/manuals/manpage.0
@@ -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.
.TP
.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
.B \-A, \-\-all
List all pony files, MLP-FiM and non-MLP-FiM, in this case the first list are MLP:FiM
diff --git a/manuals/manpage.es.0 b/manuals/manpage.es.0
index 4dda148..80f79cb 100644
--- a/manuals/manpage.es.0
+++ b/manuals/manpage.es.0
@@ -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.
.TP
.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
.B \-A. \-\-all
Lista todos los ponis, tanto pertenecientes a MLP:FiM cono no pertenecientes a esta
diff --git a/manuals/ponysay.texinfo b/manuals/ponysay.texinfo
index f189c3b..0079f65 100644
--- a/manuals/ponysay.texinfo
+++ b/manuals/ponysay.texinfo
@@ -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
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...]
@itemx --quotes [PONY...]
@opindex @option{--q}
@@ -245,7 +248,16 @@ balloon style is specified a fallback style will be used.
@opindex @option{-W}
@opindex @option{--wrap}
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
@itemx --compress
@@ -1337,9 +1349,12 @@ before building and installing.
@menu
* Arch Linux:: Packages for Arch Linux.
+* Arch Linux ARM:: Packages for Arch Linux ARM.
* Chakra:: Packages for Chakra.
-* Gentoo Linux:: Packages for Gentoo Linux.
* 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
@@ -1348,16 +1363,37 @@ before building and installing.
@cindex arch linux
The official Arch Linux package repositories contains @command{ponysay} as
-@w{@code{community/ponysay}}. The Arch Linux User Repository (AUR) contains a
-bleeding edge git version of @command{ponysay} as @code{ponysay-git}.
+@w{@code{community/ponysay}} (developer maintained). The Arch Linux User Repository
+(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
@subsection Chakra
@cindex chakra
-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}.
+Chakra users can install from (CCR) a stable version named a @code{ponysay}
+(developer maintained Arch Linux mirror), additionally a git verion of ponysay is
+available as @code{ponysay-git} (developer maintained Arch Linux mirror).
+
+
+@node Debian GNU/Linux
+@subsection Debian GNU/Linux and Ubuntu
+@cindex debian gnu/linux
+@cindex ubuntu
+
+A .deb file is available at @url{http://roryholland.co.uk/misc.html#ponysay}
+(user maintained), and PPA:s can be found at
+@url{https://launchpad.net/~vincent-c/+archive/ppa} (user maintained) and
+@url{https://launchpad.net/~blazemore/+archive/ponysay} (user maintained).
@node Gentoo Linux
@@ -1365,17 +1401,23 @@ additionally a git verion of ponysay is available as @code{ponysay-git}.
@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}}.
+contains @command{ponysay} as @w{@code{games-misc/ponysay}} (developer maintained).
-@node Debian GNU/Linux
-@subsection Debian GNU/Linux and Ubuntu
-@cindex debian gnu/linux
-@cindex ubuntu
+@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.
-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
-@url{https://launchpad.net/~blazemore/+archive/ponysay}.
+
+@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
@@ -2022,6 +2064,8 @@ than unlimited. Currently this cannot be modified (without editing the source co
@item
If file descriptor 3 is definied when @command{ponysay} is executed, extra information is
printed to it.
+@item
+Arguments starting with @code{n} or @code{i} is allowed for @option{-W}.
@end itemize
diff --git a/ponysay.py b/ponysay.py
index de6997a..64b835c 100755
--- a/ponysay.py
+++ b/ponysay.py
@@ -319,13 +319,13 @@ class Ponysay():
ponies[pony] = ponydir + ponyfile
## Support for explicit pony file names
- if not names == None:
+ if names is not None:
for name in names:
if os.path.exists(name):
ponies[name] = name
## 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())
## Select a random pony of the choosen onles
@@ -806,11 +806,19 @@ class Ponysay():
if linuxvt:
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
if env_width is None: env_width = ''
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
balloonfile = self.__getballoonpath(args.opts['-b'])
@@ -833,8 +841,8 @@ class Ponysay():
## Run cowsay replacement
- backend = Backend(message = msg, ponyfile = pony, wrapcolumn = messagewrap if messagewrap is not None else 40,
- width = widthtruncation, balloon = balloon, hyphen = hyphen, linkcolour = linkcolour, ballooncolour = ballooncolour)
+ backend = Backend(message = msg, ponyfile = pony, wrapcolumn = messagewrap, width = widthtruncation,
+ balloon = balloon, hyphen = hyphen, linkcolour = linkcolour, ballooncolour = ballooncolour)
backend.parse()
output = backend.output
if output.endswith('\n'):