[pacman-dev] [PATCH] parseopts: remove superfluous continue/shift statements
Dave Reisner
dreisner at archlinux.org
Tue Jan 1 22:43:20 EST 2013
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 <dreisner at archlinux.org>
---
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
More information about the pacman-dev
mailing list