keep uci_set from saving things that have not changed
[openwrt/svn-archive/archive.git] / package / base-files / files / lib / config / uci.sh
index a76300fa0caa910929a0c33af1a7e581ea405751..e0293363b3a6e7abef55850b3fb4e00a3597b83d 100644 (file)
@@ -76,8 +76,11 @@ uci_set() {
 
        ( # spawn a subshell so you don't mess up the current environment
                uci_load "$PACKAGE"
 
        ( # spawn a subshell so you don't mess up the current environment
                uci_load "$PACKAGE"
-               config_get type "$CONFIG" TYPE
-               [ -z "$type" ]
+               config_get OLDVAL "$CONFIG" "$OPTION"
+               if [ "$OLDVAL" != "$VALUE" ]; then
+                       config_get type "$CONFIG" TYPE
+                       [ -z "$type" ]
+               fi
        ) || uci_add_update "$PACKAGE" "config_set '$CONFIG' '$OPTION' '$VALUE'"
 }
 
        ) || uci_add_update "$PACKAGE" "config_set '$CONFIG' '$OPTION' '$VALUE'"
 }