base-files, uci: properly revert list state on config_load This fixes a bug where...
authorJo-Philipp Wich <jow@openwrt.org>
Sat, 14 Aug 2010 00:45:15 +0000 (00:45 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Sat, 14 Aug 2010 00:45:15 +0000 (00:45 +0000)
SVN-Revision: 22629

package/base-files/Makefile
package/base-files/files/etc/functions.sh
package/uci/Makefile
package/uci/files/lib/config/uci.sh

index 137eb62a2fcd76f4768dfab70dafd5520c3aa442..039326069bd237e466996314a4a8e0d814935fe0 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=base-files
-PKG_RELEASE:=51
+PKG_RELEASE:=52
 
 PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
 
index fa0ba0427bea8b5ebd9c0d59907c58722a640515..d5ffc13535df8318100857242ec406dea301af62 100755 (executable)
@@ -97,6 +97,7 @@ list() {
        local len
 
        config_get len "$CONFIG_SECTION" "${varname}_LENGTH" 0
+       [ $len = 0 ] && append CONFIG_LIST_STATE "${CONFIG_SECTION}_${varname}"
        len=$(($len + 1))
        config_set "$CONFIG_SECTION" "${varname}_ITEM$len" "$value"
        config_set "$CONFIG_SECTION" "${varname}_LENGTH" "$len"
index 925e42fd08625c6ab32940d4abd64bfc7794dda0..3c88dae37eb4ea25dc8731cec4903718798473f9 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 UCI_VERSION=12012009
-UCI_RELEASE=5
+UCI_RELEASE=6
 
 PKG_NAME:=uci
 PKG_VERSION:=$(UCI_VERSION)$(if $(UCI_RELEASE),.$(UCI_RELEASE))
index d759615bd5f0376bbc2c5043aa85a667e1be71ce..8dcb92b9f87d2febb75efb01d36e7260cb3dc159 100644 (file)
@@ -23,9 +23,15 @@ uci_load() {
        local PACKAGE="$1"
        local DATA
        local RET
+       local VAR
 
        _C=0
        if [ -z "$CONFIG_APPEND" ]; then
+               for VAR in $CONFIG_LIST_STATE; do
+                       export ${NO_EXPORT:+-n} CONFIG_${VAR}=
+                       export ${NO_EXPORT:+-n} CONFIG_${VAR}_LENGTH=
+               done
+               export ${NO_EXPORT:+-n} CONFIG_LIST_STATE=
                export ${NO_EXPORT:+-n} CONFIG_SECTIONS=
                export ${NO_EXPORT:+-n} CONFIG_NUM_SECTIONS=0
                export ${NO_EXPORT:+-n} CONFIG_SECTION=