As pointed out by Sebastian Stark, calling the loop variable "opt"
in code which is supposed to be eval'd by the application may conflict
with another local variable of the same name defined in the function
which calls gsu_getopt().
This could lead to rather obscure bugs which are hard to detect.
The callers don't use this loop variable directly, so we are free
to call it whatever we want. Therefore this patch renames $opt to
something which is much less likely to cause a conflict.
exit 1
esac
done
- result="local opt"
+ result="local _gsu_getopts_opt"
for ((i=0; i < ${#1}; i++)); do
c1=${1:$i:1}
c2=${1:$(($i + 1)):1}
done
result+="
OPTIND=1
- while getopts $1 opt \"\$@\"; do
- case \"\$opt\" in
+ while getopts $1 _gsu_getopts_opt \"\$@\"; do
+ case \"\$_gsu_getopts_opt\" in
"
for ((i=0; i < ${#1}; i++)); do
c1=${1:$i:1}