about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Completion/User/_zcat20
1 files changed, 20 insertions, 0 deletions
diff --git a/Completion/User/_zcat b/Completion/User/_zcat
new file mode 100644
index 000000000..378844511
--- /dev/null
+++ b/Completion/User/_zcat
@@ -0,0 +1,20 @@
+#compdef zcat
+
+(( $+_is_gnu )) || typeset -gA _is_gnu
+
+if (( ! $+_is_gnu[$words[1]] )); then
+  if [[ $(_call version $words[1] --license </dev/null 2>&1) = *GNU* ]]
+  then
+    _is_gnu[$words[1]]=yes
+  else
+    _is_gnu[$words[1]]=
+  fi
+fi
+
+if [[ -n "$_is_gnu[$words[1]]" ]]
+then
+  _gzip "$@"
+else
+  _description files expl 'compressed file'
+  _files "$expl[@]" -g '*.Z'
+fi