The sentence which explains how $o_X is set for both types of options
was rather confusing. The new text should be better.
While we're at it,
* mention that getopts is a bash builtin
* switch to "modern" ((expr)) arithmetic evaluation in example
* use '' to quote constants in example
-# Wrapper for bash's getopts.
+# Wrapper for the bash getopts builtin.
#
# Aborts on programming errors such as missing or invalid option string. On
# success $result contains shell code that can be eval'ed. For each defined
# option x, the local variable o_x will be created when calling eval "$result".
#
# Aborts on programming errors such as missing or invalid option string. On
# success $result contains shell code that can be eval'ed. For each defined
# option x, the local variable o_x will be created when calling eval "$result".
-# o_x contains true/false for options without an argument or the emtpy string/the
-# given argument, depending on whether this option was contained in the "$@"
-# array.
+# o_x contains true/false for options without argument and either the emtpy
+# string or the given argument for options that take an argument.
#
# Example:
# gsu_getopts abc:x:y
# eval "$result"
#
# Example:
# gsu_getopts abc:x:y
# eval "$result"
-# [[ $ret -lt 0 ]] && return
+# (($ret < 0)) && return
-# [[ "$o_a" = "true ]] && echo "The -a flag was given"
+# [[ "$o_a" = 'true' ]] && echo 'The -a flag was given'
# [[ -n "$o_c" ]] && echo "The -c option was given with arg $o_c"
gsu_getopts()
{
# [[ -n "$o_c" ]] && echo "The -c option was given with arg $o_c"
gsu_getopts()
{