diff --git a/src/libraries/utils/filepath.ml b/src/libraries/utils/filepath.ml index 20ea5cc48868ffe20489e1c40760f98aed23f723..76e2b68749813ef6c12eef46361b6ffc06559084 100644 --- a/src/libraries/utils/filepath.ml +++ b/src/libraries/utils/filepath.ml @@ -267,10 +267,17 @@ module Normalized = struct if case_sensitive then String.compare s1 s2 else Extlib.compare_ignore_case s1 s2 - let pretty fmt p = Format.fprintf fmt "%s" (pretty p) - let pp_abs fmt p = Format.fprintf fmt "%s" p let unknown = normalize "" let is_unknown fp = equal fp unknown + let special_stdout = normalize "-" + let is_special_stdout fp = equal fp special_stdout + + let pretty fmt p = + if is_special_stdout p then + Format.fprintf fmt "<stdout>" + else + Format.fprintf fmt "%s" (pretty p) + let pp_abs fmt p = Format.fprintf fmt "%s" p let is_file fp = try (Unix.stat (fp :> string)).Unix.st_kind = Unix.S_REG diff --git a/src/libraries/utils/filepath.mli b/src/libraries/utils/filepath.mli index e2958f5edda2dce7e56495f8640aab70854b9657..79a3d7fad11104bb79b5c4b5acc3909fcdb26e27 100644 --- a/src/libraries/utils/filepath.mli +++ b/src/libraries/utils/filepath.mli @@ -156,6 +156,11 @@ module Normalized: sig (** @since 20.0-Calcium *) val is_unknown: t -> bool + (** [is_special_stdout f] returns [true] iff [f] is '-' (a single dash), + which is a special notation for 'stdout'. + @since Frama-C+dev *) + val is_special_stdout: t -> bool + (** [is_file f] returns [true] iff [f] points to a regular file (or a symbolic link pointing to a file). Returns [false] if any errors happen when [stat]'ing the file.