base-files, uci: properly revert list state on config_load This fixes a bug where lists end up with duplicate values if config_load was invoked multiple times.
SVN-Revision: 22629
This commit is contained in:
		@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 | 
				
			|||||||
include $(INCLUDE_DIR)/kernel.mk
 | 
					include $(INCLUDE_DIR)/kernel.mk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PKG_NAME:=base-files
 | 
					PKG_NAME:=base-files
 | 
				
			||||||
PKG_RELEASE:=51
 | 
					PKG_RELEASE:=52
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
 | 
					PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -97,6 +97,7 @@ list() {
 | 
				
			|||||||
	local len
 | 
						local len
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	config_get len "$CONFIG_SECTION" "${varname}_LENGTH" 0
 | 
						config_get len "$CONFIG_SECTION" "${varname}_LENGTH" 0
 | 
				
			||||||
 | 
						[ $len = 0 ] && append CONFIG_LIST_STATE "${CONFIG_SECTION}_${varname}"
 | 
				
			||||||
	len=$(($len + 1))
 | 
						len=$(($len + 1))
 | 
				
			||||||
	config_set "$CONFIG_SECTION" "${varname}_ITEM$len" "$value"
 | 
						config_set "$CONFIG_SECTION" "${varname}_ITEM$len" "$value"
 | 
				
			||||||
	config_set "$CONFIG_SECTION" "${varname}_LENGTH" "$len"
 | 
						config_set "$CONFIG_SECTION" "${varname}_LENGTH" "$len"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,7 +8,7 @@
 | 
				
			|||||||
include $(TOPDIR)/rules.mk
 | 
					include $(TOPDIR)/rules.mk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
UCI_VERSION=12012009
 | 
					UCI_VERSION=12012009
 | 
				
			||||||
UCI_RELEASE=5
 | 
					UCI_RELEASE=6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PKG_NAME:=uci
 | 
					PKG_NAME:=uci
 | 
				
			||||||
PKG_VERSION:=$(UCI_VERSION)$(if $(UCI_RELEASE),.$(UCI_RELEASE))
 | 
					PKG_VERSION:=$(UCI_VERSION)$(if $(UCI_RELEASE),.$(UCI_RELEASE))
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,9 +23,15 @@ uci_load() {
 | 
				
			|||||||
	local PACKAGE="$1"
 | 
						local PACKAGE="$1"
 | 
				
			||||||
	local DATA
 | 
						local DATA
 | 
				
			||||||
	local RET
 | 
						local RET
 | 
				
			||||||
 | 
						local VAR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	_C=0
 | 
						_C=0
 | 
				
			||||||
	if [ -z "$CONFIG_APPEND" ]; then
 | 
						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_SECTIONS=
 | 
				
			||||||
		export ${NO_EXPORT:+-n} CONFIG_NUM_SECTIONS=0
 | 
							export ${NO_EXPORT:+-n} CONFIG_NUM_SECTIONS=0
 | 
				
			||||||
		export ${NO_EXPORT:+-n} CONFIG_SECTION=
 | 
							export ${NO_EXPORT:+-n} CONFIG_SECTION=
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user