summary refs log tree commit diff
path: root/Completion
diff options
context:
space:
mode:
Diffstat (limited to 'Completion')
-rw-r--r--Completion/Unix/Command/_mount78
1 files changed, 66 insertions, 12 deletions
diff --git a/Completion/Unix/Command/_mount b/Completion/Unix/Command/_mount
index 987838465..e3bbb61f3 100644
--- a/Completion/Unix/Command/_mount
+++ b/Completion/Unix/Command/_mount
@@ -40,7 +40,7 @@ fi
 # are below these table.
 
 local curcontext="$curcontext" state line expl suf ret=1
-local args deffs=iso9660 tmp typeops=-t _fs_any _nfs_access _fs_nfs _nfs_ufs \
+local args deffs=iso9660 tmp typeops=-t _nfs_access _fs_nfs _nfs_ufs \
 _fs_ufs _fs_efs _fs_iso9660 _fs_cachefs _fs_s5fs _fs_tmpfs _fs_pcfs _fs_hsfs \
 _fs_advfs _fs_cdfs _fs_affs _fs_ext2 _fs_fat _fs_ext3 _fs_msdos _fs_umsdos \
 _fs_vfat _fs_hpfs _fs_ntfs _fs_reiserfs _fs_smbfs _fs_xfs _fs_std _fs_devfs \
@@ -50,6 +50,8 @@ typeset -A opt_args
 
 if (( ! $+_fs_any )); then
 
+  local _fs_any
+
   # These are tables describing the possible values and their
   # arguments for the `-o' option. There is one array per 
   # file system type (only for those that accept more values
@@ -95,7 +97,7 @@ if (( ! $+_fs_any )); then
   _nfs_ufs=(
     '(nodev)dev[interpret devices]'
     "(dev)nodev[don't interpret devices]"
-    '(nosuid)suid[use suid and sgib bits]'
+    '(nosuid)suid[use suid and sgid bits]'
     '(suid)nosuid[ignore suid and sgid bits]'
     '(nosync)sync[do I/O synchronously]'
     '(sync)nosync[do all I/O asynchronously]'
@@ -210,7 +212,7 @@ if (( ! $+_fs_any )); then
     _fs_s5fs=(
       'remount[remount file system]'
       '(suid)nosuid[ignore suid and sgid bits]'
-      '(nosuid)suid[use suid and sgib bits]'
+      '(nosuid)suid[use suid and sgid bits]'
     )
     _fs_ufs=(
       "(atime)noatime[don't update access time]"
@@ -303,20 +305,19 @@ if (( ! $+_fs_any )); then
     _fs_any=(
       '(sync)async[do all I/O asynchronously]'
       '(noatime)atime[update access time]'
-      '(noauto)auto[can be mounted with -a]'
-      '(rw suid dev exec auto nouser async)defaults[use default options]'
+      '(rw suid dev exec async)defaults[use default options]'
       '(nodev)dev[interpret devices]'
       '(noexec)exec[permit execution of binaries]'
+      '(nomand)mand[allow mandatory locks]'
       "(atime)noatime[don't update access time]"
-      '(auto)noauto[can only be mounted explicitly]'
       "(dev)nodev[don't interpret devices]"
       "(exec)noexec[don't allow execution of binaries]"
+      "(mand)nomand[don'tallow mandatory locks]"
       '(suid)nosuid[ignore suid and sgid bits]'
-      '(user)nouser[can only be mounted by root]'
       'remount[mount already mounted file system]'
       '(rw)ro[mount file system read-only]'
       '(ro)rw[mount file system read-write]'
-      '(nosuid)suid[use suid and sgib bits]'
+      '(nosuid)suid[use suid and sgid bits]'
       '(async)sync[do I/O synchronously]'
       'dirsync[perform directory updates synchronously]'
       'loop[use loopback device]:loopback device:_files'
@@ -324,6 +325,12 @@ if (( ! $+_fs_any )); then
       'keybits[set number of bits in encryption key]:key size:(64 128 160 192 256)'
       'offset[specify data start for loopback mount]:offset (bytes)'
     )
+    _fs_adfs=(
+      'uid[set owner of root]:user ID'
+      'gid[set group of root]:group ID'
+      'ownmask[permission mask for ADFS "owner" permissions]:mask (octal)'
+      'othmask[permission mask for ADFS "other" permissions]:mask (octal)'
+    )
     _fs_affs=(
       'uid[set owner of root]:user ID'
       'gid[set group of root]:group ID'
@@ -339,7 +346,14 @@ if (( ! $+_fs_any )); then
       'root[specify location of the root block]:root block location'
       'bs[specify block size]:block size:(512 1024 2048 4192)'
     )
+    _fs_devpts=(
+      "uid[set owner of newly created pty's]:user ID"
+      "gid[set group of newly created pty's]:group ID"
+      "mode[set mode of newly created pty's]:file permission bits"
+    )
     _fs_ext2=(
+      '(noacl)acl[support POSIX access control lists]'
+      '(acl)noacl[do not support POSIX access control lists]'
       '(minixdf)bsddf[select bsddf behavior]'
       '(bsddf)minixdf[select bsddf behavior]'
       '(nocheck)check[set checking level]::checking level:((normal\:check\ inode\ and\ block\ bitmaps\ on\ mount strict\:check\ on block\ deallocation none\:no\ checking))'
@@ -349,10 +363,15 @@ if (( ! $+_fs_any )); then
       '(grpid nogrpid sysvgroups)bsdgroups[new file gets group ID of directory]'
       '(grpid bsdgroups sysvgroups)nogrpid[new file gets fsgid of current process]'
       '(grpid bsdgroups nogrpid)sysvgroups[new file gets fsgid of current process]'
+      'nobh[do not attach buffer_heads to file pagecache]'
+      'nouid32[disable 32-bit UIDs and GIDs]'
+      '(orlov)oldalloc[use old allocator for new inodes]'
+      '(oldalloc)orlov[use orlov allocator for new inodes]'
       'resgid[specify access to reserved space (group ID)]:group ID'
       'resuid[specify access to reserved space (user ID)]:user ID'
       'sb[specify super block number]:super block number'
-      'nouid32[disable 32-bit UIDs and GIDs]'
+      '(nouser_xattr)user_xattr[support user extended attributes]'
+      '(user_xattr)nouser_xattr[do not support user extended attributes]'
     )
     _fs_fat=(
       'blocksize[specify block size]:block size:(512 1024 2048)'
@@ -377,6 +396,7 @@ if (( ! $+_fs_any )); then
       'journal[update fs journal]:update or inode number:(update)'
       'noload[do not load journal]'
       'data[specify mode for data]:journalling mode:(journal ordered writeback)'
+      'commit[specify commit sync interval for data and metadata]:seconds'
     )
     _fs_msdos=( "$_fs_fat[@]" )
     _fs_umsdos=( "$_fs_fat[@]" )
@@ -387,6 +407,16 @@ if (( ! $+_fs_any )); then
       '(uni_xlate)utf8[mount the filesystem in UTF8 mode]'
       'shortname[specify handling of 8.3 filenames]:mode:(lower win95 winnt mixed)'
     )
+    _fs_hfs=(
+      'creator[specify creator value]:creator'
+      'type[specify type value]:type'
+      'umask[specify umask]:umask value (octal)'
+      'dir_umask[specify umask for directories only]:umask value (octal)'
+      'file_umask[specify umask for files only]:umask value (octal)'
+      'session[specify CDROM session to mount]:session'
+      'part[specify partition number from device to use]:part'
+      'quiet[do not complain about invalid mount options]'
+    )
     _fs_hpfs=(
       'uid[specify user ID of all files]:user ID'
       'gid[specify group ID of all files]:group ID'
@@ -411,6 +441,13 @@ if (( ! $+_fs_any )); then
       'iocharset[character set when converting from 8 bit to unicode (Joliet)]:character set'
       'utf8[mount the filesystem in UTF8 mode (Joliet)]'
     )
+    _fs_jfs=(
+      'iocharset[character set when converting from unicode to ascii]:character set'
+      'resize[resize volume to specified number of blocks]:blocks'
+      '(integrity)nointegrity[do not write to the journal]'
+      '(nointegrity)integrity[commit metadata changes to the journal]'
+      'errors[specify behavior on error]:error behavior:((continue\:ignore\ errors remount-ro\:remount\ file\ system\ read-only panic\:panic\ and\ halt\ system))'
+    )
     _fs_ntfs=(
       'iocharset[character set to use when returning file names]:character set'
       '(uni_xlate)utf8[use UTF-8 for converting file names]'
@@ -419,7 +456,7 @@ if (( ! $+_fs_any )); then
       'uid[specify user ID of all files]:user ID'
       'gid[specify group ID of all files]:group ID'
       'umask[specify umask]:umask value (octal)'
-    )      
+    )
     _fs_reiserfs=(
       'conv[mount 3.5 fs using 3.6 format for new objects]'
       'hash[choose hash type]:hash function:(rupasov tea r5 detect)'
@@ -444,6 +481,7 @@ if (( ! $+_fs_any )); then
       'umask[specify umask]:umask value (octal)'
       'unhide[show hidden and associated files]'
       'undelete[show deleted files]'
+      'nostrict[unset strict conformance]'
       'bs[set the block size]:block size:2048'
       'novrs[skip volume sequence recognition]'
       'session[set the CDROM session]:session'
@@ -454,6 +492,17 @@ if (( ! $+_fs_any )); then
       'ufstype[set ufs type]:ufs type:(old 44bsd sun sunx86 nextstep nextstep-cd openstep)'
       'onerror[set behaviour on error]:behaviour on error:(panic lock umount repair)'
     )
+    _fs_usbfs=(
+      'devuid[set owner of device files]:user ID'
+      'devgid[set group of device files]:group ID'
+      'devmode[set mode of device files]:file permission bits'
+      'busuid[set owner of bus directories]:user ID'
+      'busgid[set group of bus directories]:group ID'
+      'busmode[set mode of bus directories]:file permission bits'
+      'listuid[set owner of file devices]:user ID'
+      'listgid[set group of file devices]:group ID'
+      'listmode[set mode of file devices]:file permission bits'
+    )
     _fs_xfs=(
       'biosize[specify preferred buffered I/O size]:base 2 logarithm:((13:8K 14:16K 15:32K 16:64K))'
       '(xdsm)dmapi[enable DMAPI event callouts]'
@@ -465,6 +514,7 @@ if (( ! $+_fs_any )); then
       'noalign[do not align data allocations at stripe unit boundaries]'
       'noatime[do not update atime on reads]'
       'norecovery[do not run log recovery]'
+      'nouuid[ignore the filesystem uuid]'
       'osyncisdsync[make O_SYNC behave as O_DSYNC]'
       '(usrquota uqnoenforce)quota[enable user quotas]'
       '(quota uqnoenforce)usrquota[enable user quotas]'
@@ -696,6 +746,7 @@ else
 	"(-V -h)-n[don't write /etc/mtab]"
 	'(-V -h)-r[remount read-only on failure]'
 	'(-V -h)-d[for loopback mount, free loop device]'
+        "(-V -h)-i[don't call /sbin/umount.<fs> helper]"
 	'(-V -h *)-a[unmount all file systems from /etc/mtab]'
 	'(-V -h)-t[specify file system type]:file system type:_file_systems'
 	'(-V -h *)-O[with -a, restrict filesystems by options]:file system option:->fsopt'
@@ -798,7 +849,7 @@ devordir)
   esac
   ;;
 udevordir)
-  local dev_tmp mp_tmp mline
+  local dev_tmp dpath_tmp mp_tmp mline
 
   case "$OSTYPE" in
   linux*|irix*)
@@ -814,8 +865,11 @@ udevordir)
     ;;
   esac
 
+  dpath_tmp=( "${(@M)dev_tmp:#/*}" )
+  dev_tmp=( "${(@)dev_tmp:#/*}" )
+
   _alternative \
-    'devices:device:compadd -a dev_tmp' \
+    'device-labels:device label:compadd -a dev_tmp' \
     'directories:mount point:compadd -a mp_tmp' && ret=0
   ;;
 esac