about summary refs log tree commit diff
path: root/Completion/Unix/Type
diff options
context:
space:
mode:
authorOliver Kiddle <opk@users.sourceforge.net>2001-12-11 15:46:21 +0000
committerOliver Kiddle <opk@users.sourceforge.net>2001-12-11 15:46:21 +0000
commitbee1fa9e0d6a920795df5015c33d32d33a45bb05 (patch)
treeb51c22c2347635789bcb59f60e86dce6903a8f09 /Completion/Unix/Type
parentad2c72445459f6266e00fa8da0fffb6803622b1f (diff)
downloadzsh-bee1fa9e0d6a920795df5015c33d32d33a45bb05.tar.gz
zsh-bee1fa9e0d6a920795df5015c33d32d33a45bb05.tar.xz
zsh-bee1fa9e0d6a920795df5015c33d32d33a45bb05.zip
16320: factor out file system completion to new function
Diffstat (limited to 'Completion/Unix/Type')
-rw-r--r--Completion/Unix/Type/.distfiles1
-rw-r--r--Completion/Unix/Type/_file_systems37
2 files changed, 38 insertions, 0 deletions
diff --git a/Completion/Unix/Type/.distfiles b/Completion/Unix/Type/.distfiles
index 2d8162d13..dfb856bcb 100644
--- a/Completion/Unix/Type/.distfiles
+++ b/Completion/Unix/Type/.distfiles
@@ -8,4 +8,5 @@ _domains             _path_files          _ps                  _user_at_host
 _files               _pdf                 _pspdf               _users
 _groups              _perl_basepods       _signals             _users_on
 _hosts               _perl_builtin_funcs  _tar_archive         _time_zone
+_file_systems
 '
diff --git a/Completion/Unix/Type/_file_systems b/Completion/Unix/Type/_file_systems
new file mode 100644
index 000000000..b977ac79c
--- /dev/null
+++ b/Completion/Unix/Type/_file_systems
@@ -0,0 +1,37 @@
+#autoload
+
+local fss
+
+case $OSTYPE in
+  aix*) fss=( jfs nfs cdrfs ) ;;
+  irix*) fss=( efs proc fd nfs iso9660 dos hfs cachefs xfs ) ;;
+  linux*)
+    typeset -aU fss
+    fss=( adfs bfs cramfs ext2 ext3 hfs hpfs iso9660 minix ntfs qnx4
+          reiserfs romfs swap udf ufs vxfs xfs xiafs )
+    [[ -r /proc/filesystems ]] &&
+        fss=( $fss ${$(</proc/filesystems)#nodev} )
+    [[ -r /etc/filesystems ]] &&
+        fss=( $fss ${$(</etc/filesystems)#nodev} )
+  ;;
+  osf*) fss=( advfs ufs nfs mfs cdfs ) ;;
+  solaris*) fss=( ufs nfs hsfs s5fs pcfs cachefs tmpfs ) ;;
+  freebsd*)
+    fss=( cd9660 devfs ext2fs fdesc kernfs linprocfs mfs msdos nfs 
+          ntfs null nwfs portal procfs std ufs umap union )
+  ;;
+  *)
+    # default for all other systems
+    fss=( ufs)
+  ;;
+esac
+
+_wanted types expl 'file system type' compadd "$@" -M 'L:|no=' -a fss
+
+
+ 
+
+
+
+
+