[PATCH 2/3] Use a posix equivalent solution instead of the pattern substitution bashism.

Cristian Ionescu-Idbohrn cristian.ionescu-idbohrn at axis.com
Sun Feb 24 01:48:04 PST 2013


Signed-off-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn at axis.com>
---
 scripts/get-version |   10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/scripts/get-version b/scripts/get-version
index 4427ca0..8fcb6b2 100755
--- a/scripts/get-version
+++ b/scripts/get-version
@@ -5,7 +5,7 @@
 #      (see below)
 
 set -eu
-set -x
+#set -x
 
 croak() {
 	echo "$0: $*" >&2
@@ -32,7 +32,9 @@ case $os in
 	darwin|win)
 		# just the dots in the version string - this way we can
 		# count them
-		dots="${v0//[^.]}"
+		IFS=.
+		set -- $v0		# split $v0 using $IFS separator
+		dots=$(($# - 1))	# use positional argument count
 		# split version string using a '-' separator
 		IFS='-'
 		set -- $v0
@@ -40,7 +42,7 @@ case $os in
 		# do we need to add another digit?
 		# We know there are 1 or 2 dots in $v, so if it's just one
 		# or we are trying to get to 4, add one digit
-		if [ ${#dots} -eq 1 ] || [ $os = win ]; then
+		if [ $dots -eq 1 ] || [ $os = win ]; then
 			if [ $# -gt 1 ]; then
 				v=$v.$2
 			else
@@ -48,7 +50,7 @@ case $os in
 			fi
 		fi
 		# and if it was just one dot and we want 4, at another 0
-		if [ ${#dots} -eq 1 ] && [ $os = win ]; then
+		if [ $dots -eq 1 ] && [ $os = win ]; then
 			v=$v.0
 		fi
 		;;
-- 
1.7.10.4



More information about the subsurface mailing list