aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--library/libnames.ml4
-rw-r--r--library/libnames.mli1
2 files changed, 5 insertions, 0 deletions
diff --git a/library/libnames.ml b/library/libnames.ml
index b7ec0c223..d4cc60719 100644
--- a/library/libnames.ml
+++ b/library/libnames.ml
@@ -78,6 +78,10 @@ let dirpath_prefix p = match repr_dirpath p with
let is_dirpath_prefix_of d1 d2 =
list_prefix_of (List.rev (repr_dirpath d1)) (List.rev (repr_dirpath d2))
+let chop_dirpath n d =
+ let d1,d2 = list_chop n (List.rev (repr_dirpath d)) in
+ make_dirpath (List.rev d1), make_dirpath (List.rev d2)
+
(* To know how qualified a name should be to be understood in the current env*)
let add_dirpath_prefix id d = make_dirpath (repr_dirpath d @ [id])
diff --git a/library/libnames.mli b/library/libnames.mli
index a9051623f..22cdd3a09 100644
--- a/library/libnames.mli
+++ b/library/libnames.mli
@@ -53,6 +53,7 @@ val split_dirpath : dir_path -> dir_path * identifier
val extend_dirpath : dir_path -> module_ident -> dir_path
val add_dirpath_prefix : module_ident -> dir_path -> dir_path
+val chop_dirpath : int -> dir_path -> dir_path * dir_path
val extract_dirpath_prefix : int -> dir_path -> dir_path
val is_dirpath_prefix_of : dir_path -> dir_path -> bool