Fun fact about bash: the below is valid and will only ever print 'a'!

  fn() {
    continue 2
  }

  for x in {1..5}; do
    for y in {a..e}; do
      echo "$y"
      fn
    done
  done

Signed-off-by: Dave Reisner <[email protected]>
---
 scripts/library/parseopts.sh | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/scripts/library/parseopts.sh b/scripts/library/parseopts.sh
index 11589ce..cf6aa6c 100644
--- a/scripts/library/parseopts.sh
+++ b/scripts/library/parseopts.sh
@@ -92,26 +92,22 @@ parseopts() {
                                                # --longopt
                                                else
                                                        OPTRET+=("--$opt")
-                                                       shift
-                                                       continue 2
                                                fi
                                                ;;
                                        1)
                                                # --longopt=optarg
                                                if [[ $optarg ]]; then
                                                        OPTRET+=("--$opt" 
"$optarg")
-                                                       shift
                                                # --longopt optarg
                                                elif [[ $2 ]]; then
                                                        OPTRET+=("--$opt" "$2" )
-                                                       shift 2
+                                                       shift
                                                # parse failure
                                                else
                                                        printf "@SCRIPTNAME@: 
$(gettext "option '%s' requires an argument")\n" "--$opt" >&2
                                                        OPTRET=(--)
                                                        return 1
                                                fi
-                                               continue 2
                                                ;;
                                        254)
                                                # ambiguous option -- error was 
reported for us by longoptmatch()
-- 
1.8.0.3


Reply via email to