From daa59b7513eb66b7c184474ea188fda4dd4a4aee Mon Sep 17 00:00:00 2001
From: nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Wed, 9 Dec 2009 15:15:25 +0000
Subject: [PATCH] do not start multiple subshells for applying
 /etc/uci-defaults. use sh -x for hush compatibility

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18717 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 package/base-files/files/etc/functions.sh | 4 ++--
 package/base-files/files/etc/init.d/boot  | 7 +++----
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/package/base-files/files/etc/functions.sh b/package/base-files/files/etc/functions.sh
index a788c4cc4..61c04953d 100755
--- a/package/base-files/files/etc/functions.sh
+++ b/package/base-files/files/etc/functions.sh
@@ -263,7 +263,7 @@ jffs2_mark_erase() {
 	echo -e "\xde\xad\xc0\xde" | mtd -qq write - "$1"
 }
 
-uci_apply_defaults() {(
+uci_apply_defaults() {
 	cd /etc/uci-defaults || return 0
 	files="$(ls)"
 	[ -z "$files" ] && return 0
@@ -272,6 +272,6 @@ uci_apply_defaults() {(
 		( . "./$(basename $file)" ) && rm -f "$file"
 	done
 	uci commit
-)}
+}
 
 [ -z "$IPKG_INSTROOT" -a -f /lib/config/uci.sh ] && . /lib/config/uci.sh
diff --git a/package/base-files/files/etc/init.d/boot b/package/base-files/files/etc/init.d/boot
index aa9e96778..2ed4c5061 100755
--- a/package/base-files/files/etc/init.d/boot
+++ b/package/base-files/files/etc/init.d/boot
@@ -35,10 +35,9 @@ system_config() {
 	[ -x /sbin/klogd ] && klogd ${klogconloglevel:+-c $klogconloglevel}
 }
 
-apply_uci_config() {(
-	include /lib/config
-	uci_apply_defaults
-)}
+apply_uci_config() {
+	sh -c '. /etc/functions.sh; include /lib/config; uci_apply_defaults'
+}
 
 start() {
 	[ -f /proc/mounts ] || /sbin/mount_root
-- 
2.20.1