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
}