summary refs log tree commit diff
path: root/Completion
diff options
context:
space:
mode:
Diffstat (limited to 'Completion')
-rw-r--r--Completion/BSD/Command/_chflags2
-rw-r--r--Completion/Unix/Command/_comm24
-rw-r--r--Completion/Unix/Command/_ls9
-rw-r--r--Completion/Unix/Type/_file_systems4
4 files changed, 30 insertions, 9 deletions
diff --git a/Completion/BSD/Command/_chflags b/Completion/BSD/Command/_chflags
index d6bcfe4b3..6d5b6e973 100644
--- a/Completion/BSD/Command/_chflags
+++ b/Completion/BSD/Command/_chflags
@@ -25,7 +25,7 @@ if (( ! EUID )); then
   unset own
 fi
 
-if [[ $OSTYPE = (freebsd|dragonfly)* ]]; then
+if [[ $OSTYPE = (freebsd|dragonfly|darwin)* ]]; then
   flags=( $flags[@]
     '(nouunlnk)uunlnk[set the user undeletable flag]'
     '(uunlnk)nouunlnk[unset the user undeletable flag]'
diff --git a/Completion/Unix/Command/_comm b/Completion/Unix/Command/_comm
index c55378420..e90c317f6 100644
--- a/Completion/Unix/Command/_comm
+++ b/Completion/Unix/Command/_comm
@@ -1,10 +1,20 @@
 #compdef comm
 
-_arguments -s \
-  '-1[suppress lines unique to FILE1]' \
-  '-2[suppress lines unique to FILE2]' \
-  '-3[suppress lines that appear in both files]' \
-  '--help' \
-  '--version' \
-  '1:file1 to compare:_files' \
+local -a args
+
+args=(
+  '-1[suppress lines unique to FILE1]'
+  '-2[suppress lines unique to FILE2]'
+  '-3[suppress lines that appear in both files]'
+  '1:file1 to compare:_files'
   '2:file2 to compare:_files'
+)
+
+if _pick_variant gnu=GNU unix --version; then
+  args+=(
+    '(- : *)--version[display version information]'
+    '(- : *)--help[display help information]'
+  )
+fi
+
+_arguments -s $args
diff --git a/Completion/Unix/Command/_ls b/Completion/Unix/Command/_ls
index e5ef1fe03..7680f9273 100644
--- a/Completion/Unix/Command/_ls
+++ b/Completion/Unix/Command/_ls
@@ -5,7 +5,7 @@ local arguments is_gnu
 
 _pick_variant -r is_gnu gnu=gnu unix --help
 
-if [[ "$OSTYPE" = (netbsd*|freebsd*|openbsd*) && "$is_gnu" != gnu ]]; then
+if [[ "$OSTYPE" = (netbsd*|freebsd*|openbsd*|darwin*) && "$is_gnu" != gnu ]]; then
   arguments=(
     '(-A)-a[list entries starting with .]'
     '(-a)-A[list all except . and ..]'
@@ -54,6 +54,13 @@ if [[ "$OSTYPE" = (netbsd*|freebsd*|openbsd*) && "$is_gnu" != gnu ]]; then
 
     '*:files:_files'
   )
+  if [[ "$OSTYPE" = (freebsd*|darwin*) ]]; then
+    arguments+=(
+      '-G[enable colorized output]'
+      '-H[follow symlinks on the command line]'
+      '-P[do not follow symlinks]'
+    )
+  fi
 else
   arguments=(
     '(--all -a -A --almost-all)'{--all,-a}'[list entries starting with .]'
diff --git a/Completion/Unix/Type/_file_systems b/Completion/Unix/Type/_file_systems
index ffbf5ac68..fd75e2fa5 100644
--- a/Completion/Unix/Type/_file_systems
+++ b/Completion/Unix/Type/_file_systems
@@ -20,6 +20,10 @@ case $OSTYPE in
     fss=( cd9660 devfs ext2fs fdesc kernfs linprocfs mfs msdos nfs 
           ntfs null nwfs portal procfs std udf ufs umap union )
   ;;
+  darwin*)
+    fss=( afp cd9660 cddafs devfs fdesc hfs lfs msdos nfs
+          ntfs smbfs synthfs udf ufs volfs webdav )
+  ;;
   *)
     # default for all other systems
     fss=( ufs )