diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2010-08-14 00:45:15 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2010-08-14 00:45:15 +0000 |
commit | 63991ba875e46f40324352a5317d144465567833 (patch) | |
tree | d33580ca49e3f28b03fc6b93bcab0336ea64f471 /package/uci | |
parent | 6616951c15bef73a09da4cbbe2eb956e74e8b164 (diff) | |
download | upstream-63991ba875e46f40324352a5317d144465567833.tar.gz upstream-63991ba875e46f40324352a5317d144465567833.tar.bz2 upstream-63991ba875e46f40324352a5317d144465567833.zip |
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
Diffstat (limited to 'package/uci')
-rw-r--r-- | package/uci/Makefile | 2 | ||||
-rw-r--r-- | package/uci/files/lib/config/uci.sh | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/package/uci/Makefile b/package/uci/Makefile index 925e42fd08..3c88dae37e 100644 --- a/package/uci/Makefile +++ b/package/uci/Makefile @@ -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)) diff --git a/package/uci/files/lib/config/uci.sh b/package/uci/files/lib/config/uci.sh index d759615bd5..8dcb92b9f8 100644 --- a/package/uci/files/lib/config/uci.sh +++ b/package/uci/files/lib/config/uci.sh @@ -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= |