From dc346f6a990c3bf85a31f5e884ac2ab37dd6111c Mon Sep 17 00:00:00 2001
From: Daniel Wallace <daniel.wallace@gatech.edu>
Date: Mon, 27 Aug 2012 16:46:00 -0400
Subject: [PATCH] update zsh completion

---
 completion/zsh-completion.zsh | 48 ++++++++++++++++++++++-------------
 1 file changed, 31 insertions(+), 17 deletions(-)

diff --git a/completion/zsh-completion.zsh b/completion/zsh-completion.zsh
index 9d417ec9..68487bd8 100644
--- a/completion/zsh-completion.zsh
+++ b/completion/zsh-completion.zsh
@@ -1,18 +1,32 @@
-#compdef ponysay
-_shortopts=(
-    '-v[Show version and exit]'
-    '-h[Show this help and exit]'
-    '-l[list pony names]'
-    '-L[list pony names with alternatives]'
-    '+l[list extra pony names]'
-    '+L[list extra pony names with alternatives]'
-    '-B[list balloon style names]'
-    '-f[Select a pony (either a file name or a pony name)]: :_path_files -W '/usr/share/ponysay/ponies' -g "*(\:r)"'
-    '-F[Select a extra pony]: :_path_files -W '/usr/share/ponysay/extraponies' -g "*(\:r)"'
-    '-q[Select ponies for MLP:FiM quotes]'
-    '-b[Selecy a balloon style]'
-    '-W[The screen column where the message should be wrapped]'
+#compdef ponysay ponythink
+_opts=(
+    '(--version -v)'{-v,--version}'[Show version and exit]'
+    '(-h --help)'{-h,--help}'[Show this help and exit]'
+    '(-l --list)'{-l,--list}'[list pony names]'
+    '(-L --altlist)'{-L,--altlist}'[list pony names with alternatives]'
+    '(+l ++list)'{+l,++list}'[list extra pony names]'
+    '(+L ++altlist)'{+L,++altlist}'[list extra pony names with alternatives]'
+    '(-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]'
     )
-_arguments -s : \
-    "$_shortopts[@]"
-
+_tty_select=(
+    '(-q --quite)'{-q,--quote}'[Select ponies for MLP:FiM quotes]: :_path_files -W '/usr/share/ponysay/ttyponies' -g "*(\:r)"'
+    '(-f --pony)'{-f,--pony}'[select pony]: :_path_files -W '/usr/share/ponysay/ttyponies/' -g "*(\:r)"'
+    '(-F ++pony)'{-F,++pony}'[Select a extra pony]: :_path_files -W '/usr/share/ponysay/extrattyponies' -g "*(\:r)"'
+    )
+_select=(
+    '(-q --quite)'{-q,--quote}'[Select ponies for MLP:FiM quotes]: :_path_files -W '/usr/share/ponysay/ponies' -g "*(\:r)"'
+    '(-f --pony)'{-f,--pony}'[select pony]: :_path_files -W '/usr/share/ponysay/ponies/' -g "*(\:r)"'
+    '(-F ++pony)'{-F,++pony}'[Select a extra pony]: :_path_files -W '/usr/share/ponysay/extraponies' -g "*(\:r)"'
+    )
+if [[ "${(f)"$(tty)"##*/}" == "tty*" ]]; then
+    _arguments \
+        "$_opts[@]" \
+        "$_tty_select[@]"
+else
+    _arguments \
+        "$_opts[@]" \
+        "$_select[@]"
+fi