From 4421b4f1bd052d1446188ce13c56ff58ff5c51b5 Mon Sep 17 00:00:00 2001
From: Mike Baker <mbm@openwrt.org>
Date: Sun, 20 Mar 2005 05:46:41 +0000
Subject: [PATCH] fix version checks

SVN-Revision: 403
---
 openwrt/target/default/target_skeleton/bin/ipkg | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/openwrt/target/default/target_skeleton/bin/ipkg b/openwrt/target/default/target_skeleton/bin/ipkg
index 6ceb9d4574..c9947c8fa0 100755
--- a/openwrt/target/default/target_skeleton/bin/ipkg
+++ b/openwrt/target/default/target_skeleton/bin/ipkg
@@ -20,16 +20,17 @@ set -e
 set -o noglob
 
 ipkg_is_upgrade () {
-  local A B a b
-  A=$(echo $1 | sed "s/[0-9]*/ & /g" | sed "s/[^ A-Za-z0-9]//g")
-  B=$(echo $2 | sed "s/[0-9]*/ & /g" | sed "s/[^ A-Za-z0-9]//g")
-  while [ \! -z "$A" ] && [ \! -z "$B" ]; do {
+  local A B a b     
+  A=$(echo $1 | sed -r "s/([0-9]+)[^A-Za-z]?/ \1 /g").
+  B=$(echo $2 | sed -r "s/([0-9]+)[^A-Za-z]?/ \1 /g").
+  while [ \! -z "$A" ] && [ \! -z "$B" ]; do {        
     set $A; a=$1; shift; A=$*
     set $B; b=$1; shift; B=$*
-    { [ "$a" -gt "$b" ] 2>&- || [ "$a" ">" "$b" ]; } && { return 0; }
-  }; done
-  return 1;
-}
+      [ "$a" -lt "$b" ] 2>&- && return 1
+    { [ "$a" -gt "$b" ] 2>&- || [ "$a" ">" "$b" ]; } && return
+  }; done                                                     
+  return 1
+}         
 
 ipkg_srcs() {
 	local srcre="$1"
-- 
GitLab