aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMattias Andrée <maandree@operamail.com>2012-10-27 22:50:17 +0200
committerMattias Andrée <maandree@operamail.com>2012-10-27 22:50:17 +0200
commit4d27b0a8733980577811ff79ca217a11c5c15ac6 (patch)
treecf6d2faeaff8e3c1297a714bd408647b30920598
parent994b19712a5f9fb1cb870ebd4f583e05a08f1c32 (diff)
downloadponysay-4d27b0a8733980577811ff79ca217a11c5c15ac6.tar.gz
ponysay-4d27b0a8733980577811ff79ca217a11c5c15ac6.tar.bz2
ponysay-4d27b0a8733980577811ff79ca217a11c5c15ac6.zip
wrapping options from issue #108
-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/ponysay.texinfo11
-rwxr-xr-xponysay.py16
7 files changed, 32 insertions, 12 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 94c0239..412d12f 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -14,6 +14,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..62fc9eb 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 balloons extra width is taken
+into consideration. If the argument is not an integer, 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/ponysay.texinfo b/manuals/ponysay.texinfo
index 1fa708f..a558575 100644
--- a/manuals/ponysay.texinfo
+++ b/manuals/ponysay.texinfo
@@ -248,7 +248,14 @@ 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}. If the argument is not an integer, 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
@@ -2054,6 +2061,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 51f8c72..64b835c 100755
--- a/ponysay.py
+++ b/ponysay.py
@@ -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'):