Make umask work on OS X

https://github.com/fish-shell/fish-shell/issues/515
This commit is contained in:
ridiculousfish 2013-01-12 15:35:40 -08:00
parent 1163961927
commit acbb6fb8e2
2 changed files with 20 additions and 20 deletions

View file

@ -5,23 +5,15 @@ function type --description "Print the type of a command"
set -l res 1
set -l mode normal
set -l selection all
set -l new_getopt
if not getopt -T > /dev/null
set new_getopt 1
else
set new_getopt ''
end
#
# Get options
#
set -l options
set -l shortopt tpPafh
set -l longopt
if test $new_getopt
if not getopt -T > /dev/null
# GNU getopt
set longopt type,path,force-path,all,no-functions,help
set -l longopt type,path,force-path,all,no-functions,help
set options -o $shortopt -l $longopt --
# Verify options
if not getopt -n type $options $argv >/dev/null

View file

@ -138,19 +138,27 @@ function umask --description "Set default file permission mask"
set -l as_command 0
set -l symbolic 0
set -l shortopt -o pSh
set -l longopt
set -l options
set -l shortopt pSh
if not getopt -T >/dev/null
# GNU getopt
set longopt -l as-command,symbolic,help
set options -o $shortopt -l $longopt --
# Verify options
if not getopt -n umask $options $argv >/dev/null
return 1
end
else
# Old getopt, used on OS X
set options $shortopt
# Verify options
if not getopt $options $argv >/dev/null
return 1
end
end
if not getopt -n umask -Q $shortopt $longopt -- $argv >/dev/null
return 1
end
set -l tmp (getopt $shortopt $longopt -- $argv)
set -l tmp (getopt $options $argv)
eval set opt $tmp
while count $opt >/dev/null