}
export -f gsu_is_a_number
+# Check number of arguments.
+#
# Usage: gsu_check_arg_count <num_given> <num1> [<num2>]
#
-# If only <num1> ist given, then <num_given> must equal <num1>.
-# Otherwise, <num1>..<num2> is treated as a range and it is checked
-# that <num_given> lies between <num1> and <num2> inclusively.
+# Check that <num_given> is between <num1> and <num2> inclusively.
+# If only <num1> ist given, num2 is assumed to be infinity.
+#
+# Examples:
+# 0 0 no argument allowed
+# 1 1 exactly one argument required
+# 0 2 at most two arguments admissible
+# 2 at least two arguments reqired
+#
gsu_check_arg_count()
{
ret=-$E_GSU_BAD_ARG_COUNT
if [[ $# -eq 2 ]]; then # only num1 is given
- result="exactly $2 args needed, $1 given"
- [[ $1 -ne $2 ]] && return
+ result="at least $2 args required, $1 given"
+ [[ $1 -lt $2 ]] && return
ret=$GSU_SUCCESS
return
fi