E_GSU_BAD_ARG_COUNT invalid number of arguments
E_GSU_EDITOR failed to execute editor
E_GSU_MKDIR failed to create directory
+E_GSU_GETOPTS getopts error
$gsu_errors
"
local a b i=0
}
export -f _gsu_check_options
+gsu_getopts()
+{
+ local i c tab=' ' cr='
+'
+
+ gsu_check_arg_count $# 1 1
+ [[ $ret -lt 0 ]] && return
+
+ ret=-$E_GSU_GETOPTS
+ result="invalid optstring $1"
+ [[ -z "$1" || "$1" =~ "::" ]] && return
+ for ((i=0; i < ${#1}; i++)); do
+ c=${1:$i:1}
+ case "$c" in
+ [a-zA-Z:]);;
+ *)
+ result="invalid character $c in optstring"
+ return
+ esac
+ done
+ result="local opt"
+ for ((i=0; i < ${#1}; i++)); do
+ c1=${1:$i:1}
+ c2=${1:$(($i + 1)):1}
+ result+=" o_$c1"
+ if [[ "$c2" = ":" ]]; then
+ let i++
+ else
+ result+="=false"
+ fi
+ done
+ result+="
+ OPTIND=1
+ while getopts $1 opt \"\$@\"; do
+ case \"\$opt\" in
+"
+ for ((i=0; i < ${#1}; i++)); do
+ c1=${1:$i:1}
+ c2=${1:$(($i + 1)):1}
+ result+="$tab$tab$c1) o_$c1="
+ if [[ "$c2" = ":" ]]; then
+ result+="\"\$OPTARG\""
+ let i++
+ else
+ result+="true"
+ fi
+ result+=";;$cr"
+ done
+ result+="
+ *)
+ ret=-\$E_GSU_GETOPTS
+ result=\"invalid option given\"
+ return
+ ;;
+ esac
+ done
+ shift \$((\$OPTIND - 1))
+"
+ ret=$GSU_SUCCESS
+}
+export -f gsu_getopts
+
gsu()
{
local i