summaryrefslogtreecommitdiff
path: root/src/config_tree.ml
diff options
context:
space:
mode:
Diffstat (limited to 'src/config_tree.ml')
-rw-r--r--src/config_tree.ml8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/config_tree.ml b/src/config_tree.ml
index cd2eafd..b70a8bb 100644
--- a/src/config_tree.ml
+++ b/src/config_tree.ml
@@ -36,9 +36,11 @@ let set_value node path value behaviour =
| AddValue -> add_value node path value
| ReplaceValue -> replace_value node path value
-let set node path value position behaviour =
- if Vytree.exists node path then set_value node path value behaviour
- else Vytree.insert ~position:position node path {default_data with values=[value]}
+let set node path value behaviour =
+ if Vytree.exists node path then set_value node path value behaviour else
+ let path_existing = Vytree.get_existent_path node path in
+ let path_remaining = Vylist.complement path path_existing in
+ Vytree.insert_multi_level default_data node path_existing path_remaining {default_data with values=[value]}
let get_values node path =
let node' = Vytree.get node path in