summaryrefslogtreecommitdiff
path: root/Completion/Unix/Command/_stdbuf
diff options
context:
space:
mode:
authorAxel Beckert <abe@deuxchevaux.org>2018-04-07 15:12:57 +0200
committerAxel Beckert <abe@deuxchevaux.org>2018-04-07 15:12:57 +0200
commit6e1ab9aa550695ee7e3d467b4173c0b83ba7f759 (patch)
tree8fb7faa4364a7cbf1cba48296a5f537e13f2a8d9 /Completion/Unix/Command/_stdbuf
parent5ad56a41f1ee2e61abca079f5ea8909f895ac2dd (diff)
parentf027f1d6e876708bc75d4217e1ca26898658d8d3 (diff)
downloadzsh-6e1ab9aa550695ee7e3d467b4173c0b83ba7f759.tar.gz
zsh-6e1ab9aa550695ee7e3d467b4173c0b83ba7f759.zip
Merge tag 'zsh-5.4.2-test-2' / 'upstream' branch into 'debian' branch
Test version 2 prior to zsh 5.5.
Diffstat (limited to 'Completion/Unix/Command/_stdbuf')
-rw-r--r--Completion/Unix/Command/_stdbuf30
1 files changed, 30 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_stdbuf b/Completion/Unix/Command/_stdbuf
new file mode 100644
index 000000000..e45b5a5cd
--- /dev/null
+++ b/Completion/Unix/Command/_stdbuf
@@ -0,0 +1,30 @@
+#compdef stdbuf gstdbuf
+
+local -a short long buf args
+local i opt gnu=0
+
+short=( -e -i -o )
+long=( --error --output --input )
+buf=( err in out )
+
+opt='[set initial buffering for std${buf[i]}]:mode or size:((0\:unbuffered L\:line\ buffered'
+if _pick_variant gnu=GNU freebsd --version; then
+ gnu=1
+ args=(
+ '(- *)--help[display usage information]'
+ '(- *)--version[display version information]'
+ )
+else
+ opt+=' B\:fully\ buffered'
+fi
+opt+='))'
+
+for ((i=1;i<=3;i++)); do
+ args+=( "(${long[i]})${short[i]}+${(e)opt}" )
+ (( gnu )) && args+=(
+ "(${short[i]})${long[i]}=${(e)opt}"
+ )
+done
+(( CURRENT > 2 )) && args+=( '*::command:_normal' )
+
+_arguments -s -S $args