From acbb6fb8e2a12c9071b9729e4033cdb2a3d39c07 Mon Sep 17 00:00:00 2001 From: ridiculousfish Date: Sat, 12 Jan 2013 15:35:40 -0800 Subject: [PATCH] Make umask work on OS X https://github.com/fish-shell/fish-shell/issues/515 --- share/functions/type.fish | 14 +++----------- share/functions/umask.fish | 26 +++++++++++++++++--------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/share/functions/type.fish b/share/functions/type.fish index 881bac049..94c77efa7 100644 --- a/share/functions/type.fish +++ b/share/functions/type.fish @@ -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 diff --git a/share/functions/umask.fish b/share/functions/umask.fish index 44a0ca109..380dc1994 100644 --- a/share/functions/umask.fish +++ b/share/functions/umask.fish @@ -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