diff --git a/CHANGELOG.md b/CHANGELOG.md index 140d7789d88d85cbe3beea57e38a14d5fed091ad..57d762bc2feec602816ee0739750d89dc907335e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.1.1 +* Fix enumeration type to support values with spaces +* Improve join_by to support multi character separator + ## 2.1.0 * Improve the help display for big size values diff --git a/VERSION b/VERSION index ccbccc3dc62631f22ff358ac418e52401ec770b4..3e3c2f1e5edb083aab93646ac7b076daa38516dd 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.2.0 +2.1.1 diff --git a/bashopts.sh b/bashopts.sh index e1046124b535a5eac139e44b731000f26296e829..7ea6187959b71294dbfb9aeee276bc832ff070e5 100644 --- a/bashopts.sh +++ b/bashopts.sh @@ -19,7 +19,7 @@ set -e -BASHOPTS_VERSION=2.1.0 +BASHOPTS_VERSION=2.1.1 bashopts_exit_handle() { local err=$? @@ -256,7 +256,7 @@ bashopts_declare() { -l) options[long_opt]=$1; shift;; -d) options[description]=$1; shift;; -t) options[type]=$1; shift;; - -e) options_enum_values+=($1); shift;; + -e) options_enum_values+=("$1");shift;; -m) options[method]=$1; shift;; -k) options[check]=$1; shift;; -s) options[setting]="true";; @@ -280,7 +280,7 @@ bashopts_declare() { if [ ${#options_enum_values[@]} -lt 2 ]; then bashopts_log C "bashopts_declare: ${options[name]} enumeration need at least two elements (two '-e ' calls at least)" fi - options[enum_values]="$(IFS=$'\n'; echo "${options_enum_values[*]}")" + options[enum_values]="$(printf "%s\n" "${options_enum_values[@]}")" ;; s|str|string) options[type]="string" @@ -387,9 +387,12 @@ bashopts_math_min() { # join array element bashopts_join_by() { - local IFS="$1" - shift || bashopts_log C "Usage: bashopts_join_by [elt1 [elt2...]]" - echo "$*" + local sep="$1" + shift || bashopts_log C "Usage: bashopts_join_by [elt1 [elt2...]]" + printf "%s" "$1" + test $# -gt 1 || return 0 + shift + printf "$sep%s" "$@" } # dump an option value by its name