#autoload
local ret stateset fvals cvalsvar cvalind
typeset -a fvals opts
if [[ $1 = -O* ]]; then
opts+=$1
shift
fi
opts+=(-s , -S =)
cvalind=$argv[(I)-A*]
while (( cvalind )); do
if [[ ${(P)cvalind} = -A?* ]]; then
cvalsvar=${(P)cvalind[3,-1]}
argv[cvalind]=()
else
cvalsvar=$argv[cvalind+1]
argv[cvalind,cvalind+1]=()
fi
cvalind=$argv[(I)-A*]
done
fvals=(
'ro[mount filesystem read-only]'
'allow_other[allow access to other users]'
'allow_root[allow access to root]'
'nonempty[allow mounts over non-empty file/dir]'
'default_permissions[enable permission checking by kernel]'
'fsname[set filesystem name]:name'
'large_read[issue large read requests (linux v2.4 only)]'
'max_read[set maximum size of read requests]:size'
'hard_remove[immediate removal (do not hide files)]'
'use_ino[let filesystem set inode numbers]'
'readdir_ino[try to fill in d_ino in readdir]'
'direct_io[use direct I/O]'
'kernel_cache[cache files in kernel]'
'umask[set file permissions]:permission mask (octal)'
'uid[set file owner]:user id:'
'gid[set file group]:group id:'
'entry_timeout[cache timeout for names]:timeout (s)'
'negative_timeout[cache timeout for deleted names]:timeout (s)'
'attr_timeout[cache timeout for attributes]:timeout (s)'
)
[[ -n $cvalsvar ]] && set -- "$@" ${(P)cvalsvar}
if [[ $# -eq 0 ]]; then
set -- 'mount options' $fvals
else
set -- "$@" $fvals
fi
if [[ -n $state ]]; then
stateset=$state
state=
fi
_values $opts "$@" && ret=0
if [[ -n $state ]]; then
compstate[restore]=
elif [[ -n $stateset ]]; then
state=$stateset
else
unset state
fi
return $ret
Copyright 2K16 - 2K18 Indonesian Hacker Rulez