summaryrefslogtreecommitdiff
path: root/lib/kernel/overlay.ml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kernel/overlay.ml')
-rw-r--r--lib/kernel/overlay.ml22
1 files changed, 3 insertions, 19 deletions
diff --git a/lib/kernel/overlay.ml b/lib/kernel/overlay.ml
index 58d8847..516379d 100644
--- a/lib/kernel/overlay.ml
+++ b/lib/kernel/overlay.ml
@@ -132,23 +132,6 @@ let fill_defaults ~id sexp =
actually reach a user into the vocabulary of the file they are looking at.
Anything unrecognised passes through verbatim rather than being reworded
into something possibly wrong. *)
-let humanise_error msg =
- let replace ~sub ~by s =
- let n = String.length sub and len = String.length s in
- let rec go i acc =
- if i > len - n then acc ^ String.sub s i (len - i)
- else if String.equal (String.sub s i n) sub then go (i + n) (acc ^ by)
- else go (i + 1) (acc ^ String.make 1 s.[i])
- in
- if n = 0 then s else go 0 ""
- in
- msg
- |> replace ~sub:"lib/kernel/celebration.ml.t_of_sexp" ~by:"celebration"
- |> replace ~sub:"lib/kernel/colour.ml.t_of_sexp" ~by:"colour"
- |> replace ~sub:"lib/kernel/subject.ml.t_of_sexp" ~by:"subject"
- |> replace ~sub:"lib/kernel/date_spec.ml.t_of_sexp" ~by:"date"
- |> replace ~sub:"lib/kernel/overlay.ml.directive_of_sexp" ~by:"directive"
-
let load rank_of_sexp path =
match Sexplib.Sexp.load_sexp path with
| exception Sys_error msg -> Error msg
@@ -157,7 +140,8 @@ let load rank_of_sexp path =
[Sexplib.Sexp.Parse_error], so a catch-all here -- placed last among the
exception branches -- is what actually keeps every parse failure inside
[Error] instead of escaping. *)
- | exception exn -> Error (Printf.sprintf "%s: %s" path (Printexc.to_string exn))
+ | exception exn ->
+ Error (Printf.sprintf "%s: %s" path (Sexp_error.humanise (Printexc.to_string exn)))
| sexp -> (
(* The overlay's own [id] is needed to default [layer], so read it off
the raw sexp first. If it is missing or malformed the derived parser
@@ -174,4 +158,4 @@ let load rank_of_sexp path =
match t_of_sexp rank_of_sexp (fill_defaults ~id sexp) with
| t -> Ok t
| exception exn ->
- Error (Printf.sprintf "%s: %s" path (humanise_error (Printexc.to_string exn))))
+ Error (Printf.sprintf "%s: %s" path (Sexp_error.humanise (Printexc.to_string exn))))