r1603 - in trunk/utils/initrd-tools: . debian

Martin Michlmayr tbm@haydn.debian.org
Fri, 17 Sep 2004 13:10:37 -0600


Author: tbm
Date: 2004-09-17 13:10:26 -0600 (Fri, 17 Sep 2004)
New Revision: 1603

Modified:
   trunk/utils/initrd-tools/debian/changelog
   trunk/utils/initrd-tools/init
Log:
Apply a patch from Colin Watson to deal with . (old) and ! (new) as the
mangling character for / in /sys names (closes: #272139, #271899).


Modified: trunk/utils/initrd-tools/debian/changelog
===================================================================
--- trunk/utils/initrd-tools/debian/changelog	2004-09-17 07:22:04 UTC (rev 1602)
+++ trunk/utils/initrd-tools/debian/changelog	2004-09-17 19:10:26 UTC (rev 1603)
@@ -3,6 +3,10 @@
   * Joshua Kwan
     - Educate mkinitrd about different arches, allowing us to internally
       disambiguate all the different esp drivers.
+  * Martin Michlmayr
+    - Apply a patch from Colin Watson to deal with . (old) and ! (new)
+      as the mangling character for / in /sys names (closes: #272139,
+      #271899).
 
  -- Joshua Kwan <joshk@triplehelix.org>  Fri, 27 Aug 2004 11:42:14 -0700
 

Modified: trunk/utils/initrd-tools/init
===================================================================
--- trunk/utils/initrd-tools/init	2004-09-17 07:22:04 UTC (rev 1602)
+++ trunk/utils/initrd-tools/init	2004-09-17 19:10:26 UTC (rev 1603)
@@ -84,29 +84,34 @@
 		;;
 	esac
 
-	IFS=/
-	set -f
-	set +f ${root#/dev/}
-	IFS=.
-	root=$*
-	unset IFS
-	try_name "$root" && return
+	origroot="$root"
 
-	part=${root##*[!0-9]}
-	root=${root%$part}
-	if [ -z "$root" ]; then
-		return
-	fi
-	try_name "$root" $part && return
+	for separator in . !; do
+		IFS=/
+		set -f
+		set +f ${origroot#/dev/}
+		IFS="$separator"
+		root=$*
+		unset IFS
+		try_name "$root" && return
 
-	case $root in
-	*[0-9]p)
-		;;
-	*)
-		return 0
-		;;
-	esac
-	try_name "${root%p}" $part
+		part=${root##*[!0-9]}
+		root=${root%$part}
+		if [ -z "$root" ]; then
+			return
+		fi
+		try_name "$root" $part && return
+
+		case $root in
+		*[0-9]p)
+			;;
+		*)
+			return 0
+			;;
+		esac
+		try_name "${root%p}" $part && return
+	done
+
 	return 0
 }