From 681fb07feca33c4dce396a8cc6ff92527ddd2d6d Mon Sep 17 00:00:00 2001 From: Jorge Bucaran Date: Thu, 12 Feb 2015 00:20:56 +0900 Subject: [PATCH] fix getopts: handle -h --help bug fish-shell#746 --- plugins/getopts/getopts.fish | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/getopts/getopts.fish b/plugins/getopts/getopts.fish index c8021ce..9bd3761 100644 --- a/plugins/getopts/getopts.fish +++ b/plugins/getopts/getopts.fish @@ -201,7 +201,7 @@ function getopts case --\* # Skip! case -\* # Split each token into single characters with `.` - for char in (printf $token | cut -c2- | grep --only-matching .) + for char in (printf "%s" $token | cut -c2- | grep --only-matching .) # Do not split short option characters if this option can # take optional required arguments. if [ -z "$suspend_break" ] @@ -269,7 +269,7 @@ function getopts and set -l is_long_option # Trim leading dashes and prepare to match with valid options. - set option (printf $option | sed 's/^-*//g') + set option (printf "%s" $option | sed 's/^-*//g') for substring in $__getopts_optstr # Split up by token separator `:`. The resulting list contains @@ -288,7 +288,7 @@ function getopts if [ $last_token = \^ ] if set -q is_long_option - set -l option_value (printf $option | tr = \n) + set -l option_value (printf "%s" $option | tr = \n) if set -q option_value[2] # Check if it is a valid option match. @@ -350,7 +350,7 @@ function getopts # Check if next argument exists. if set -q argv[$__getopts_index] # Sanitize the option-argument. - set -l value (printf $argv[$__getopts_index]) + set -l value (printf "%s" $argv[$__getopts_index]) if [ -z "$value" ] # Print any non-empty list character. printf "\n"