r2484 - trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian

Simon Horman horms@costa.debian.org
Mon, 14 Feb 2005 07:42:04 +0100


Author: horms
Date: 2005-02-14 07:42:03 +0100 (Mon, 14 Feb 2005)
New Revision: 2484

Modified:
   trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/apply
Log:
Fix sorting

Modified: trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/apply
===================================================================
--- trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/apply	2005-02-14 05:36:09 UTC (rev 2483)
+++ trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/apply	2005-02-14 06:42:03 UTC (rev 2484)
@@ -105,6 +105,8 @@
 
 bubble_sort ()
 {
+	DIR=$1
+	shift
 	SORTED=$@
 
 	SWAPED=1
@@ -120,7 +122,7 @@
 			fi
 			B="$i"
 		
-			if dpkg --compare-versions $A "lt" $B; then
+			if dpkg --compare-versions "$A" "$DIR" "$B"; then
 				SWAPED=1
 				NEW="$NEW $B"
 			else
@@ -136,6 +138,16 @@
 	echo $SORTED
 }
 
+bubble_sort_fwd ()
+{
+	bubble_sort "lt" $@
+}
+
+bubble_sort_rev ()
+{
+	bubble_sort "gt" $@
+}
+
 if ! [ -d Documentation ] || ! [ -d kernel ]; then
 	die 'Not in kernel top level directory.  Exiting'
 	exit 1
@@ -192,7 +204,7 @@
 		exit 0
 	fi
 
-	for sver in $(bubble_sort $(ls -d $home/series/*) ); do
+	for sver in $(bubble_sort_fwd $(ls -d $home/series/*) ); do
 		base=$(basename "$sver")
 		srev=${base#*-}
 		if [ -n "$srev" ]; then
@@ -205,7 +217,7 @@
 	done
 elif dpkg --compare-versions "$current_rev" eq "$upstream" ||
 		dpkg --compare-versions "$target_rev" gt "$current_rev"; then
-	for sver in $home/series/*; do
+	for sver in $(bubble_sort_rev $(ls -d $home/series/*) ); do
 		base=$(basename "$sver")
 		srev=${base#*-}
 		if [ -n "$srev" ]; then
@@ -221,7 +233,7 @@
 	echo "Nothing to do, exiting."
 	exit 0
 elif dpkg --compare-versions "$target_rev" lt "$current_rev"; then
-	for sver in $(bubble_sort $(ls -d $home/series/*) ); do
+	for sver in $(bubble_sort_fwd $(ls -d $home/series/*) ); do
 		base=$(basename "$sver")
 		srev=${base#*-}
 		if [ -n "$srev" ]; then