From faaf0ecf180c3e0357c593a300e5c44e69a67183 Mon Sep 17 00:00:00 2001 From: Martin Trojer Date: Thu, 28 Jan 2021 06:00:13 -0800 Subject: [PATCH] Normalize TV paths to avoid render errors Reviewed By: jvillard Differential Revision: D26046174 fbshipit-source-id: c57273045 --- infer/src/base/Utils.ml | 2 ++ infer/src/base/Utils.mli | 3 +++ 2 files changed, 5 insertions(+) diff --git a/infer/src/base/Utils.ml b/infer/src/base/Utils.ml index d60036fea..26bfd7e84 100644 --- a/infer/src/base/Utils.ml +++ b/infer/src/base/Utils.ml @@ -135,6 +135,8 @@ let normalize_path_from ~root fname = (filename_of_rev_parts rev_result, filename_of_rev_parts rev_root) +let normalize_path fname = fname |> normalize_path_from ~root:"." |> fst + (** Convert a filename to an absolute one if it is relative, and normalize "." and ".." *) let filename_to_absolute ~root fname = let abs_fname = if Filename.is_absolute fname then fname else root ^/ fname in diff --git a/infer/src/base/Utils.mli b/infer/src/base/Utils.mli index e8a42c690..f3c532268 100644 --- a/infer/src/base/Utils.mli +++ b/infer/src/base/Utils.mli @@ -26,6 +26,9 @@ val normalize_path_from : root:string -> string -> string * string the result is [("../foo/bar", ".")] (in particular "r/a/../../../foo/./bar" and "./../foo/bar" represent the same file) *) +val normalize_path : string -> string +(** Normalize a path without a root *) + val filename_to_absolute : root:string -> string -> string (** Convert a filename to an absolute one if it is relative, and normalize "." and ".." *)