From 681fb07feca33c4dce396a8cc6ff92527ddd2d6d Mon Sep 17 00:00:00 2001
From: Jorge Bucaran <jbucaran@me.com>
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"
-- 
GitLab