# Test that there is no interference of getopt()
# in getopts and unset.
# It's unclear what "correct" OPTIND values should be
# for "b" and "c" results from "-bc": 2? 3?
# What we focus on here is that all options are reported
# correct number of times and in correct sequence.

(

loop=99
while getopts "abc" var -a -bc -abc -def -a; do
    echo "var:$var" #OPTIND:$OPTIND
    # this may use getopt():
    unset -ff func
    test $((--loop)) = 0 && break  # BUG if this triggers
done
echo "End: var:$var OPTIND:$OPTIND"

) 2>&1 \
| sed   -e 's/ unrecognized option: / invalid option -- /' \
        -e 's/ illegal option -- / invalid option -- /' \