summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/reference_tree.ml9
-rw-r--r--src/reference_tree.mli2
2 files changed, 11 insertions, 0 deletions
diff --git a/src/reference_tree.ml b/src/reference_tree.ml
index a465a84..e3b5019 100644
--- a/src/reference_tree.ml
+++ b/src/reference_tree.ml
@@ -687,6 +687,15 @@ let potential_leaf_value rtree cpath =
| [] -> false
| _ -> is_leaf rtree ref_drop_last
+let reference_path_exists rtree cpath =
+ if Util.is_empty cpath then false
+ else
+ if potential_leaf_value rtree cpath then true
+ else
+ let rpath = refpath rtree cpath in
+ if Util.is_empty rpath then false
+ else true
+
(* The 'edit' command can descend along a not-as-yet configured path,
assuming that it is
diff --git a/src/reference_tree.mli b/src/reference_tree.mli
index 2bfcb68..e45310e 100644
--- a/src/reference_tree.mli
+++ b/src/reference_tree.mli
@@ -118,6 +118,8 @@ val set_leaf_data : t -> Config_tree.t -> string list -> Config_tree.t
[@@alert exn "Vytree.Empty_path"]
[@@alert exn "Vytree.Nonexistent_path"]
+val reference_path_exists : t -> string list -> bool
+
val allowed_edit_level : t -> string list -> (unit, string) result
val get_ceil_data : (ref_node_data -> string option) -> t -> string list -> string option