From 0b6079aabc6de3898dc0a081788ade98a8007bb4 Mon Sep 17 00:00:00 2001
From: Andre Maroneze <andre.maroneze@cea.fr>
Date: Mon, 16 Sep 2024 18:22:55 +0200
Subject: [PATCH] [pretty_utils] add pp_escaped

---
 src/libraries/utils/pretty_utils.ml  | 4 ++++
 src/libraries/utils/pretty_utils.mli | 4 ++++
 2 files changed, 8 insertions(+)

diff --git a/src/libraries/utils/pretty_utils.ml b/src/libraries/utils/pretty_utils.ml
index b4509110557..cf7bc17c9d7 100644
--- a/src/libraries/utils/pretty_utils.ml
+++ b/src/libraries/utils/pretty_utils.ml
@@ -132,6 +132,10 @@ let pp_pair
 
 let escape_underscores = Str.global_replace (Str.regexp_string "_") "__"
 
+let pp_escaped pp fmt e =
+  let s = Format.asprintf "%a" pp e in
+  Format.fprintf fmt "%s" (String.escaped s)
+
 let pp_flowlist ?(left=format_of_string "(") ?(sep=format_of_string ",") ?(right=format_of_string ")") f out =
   function
   | [] -> Format.fprintf out "%(%)%(%)" left right
diff --git a/src/libraries/utils/pretty_utils.mli b/src/libraries/utils/pretty_utils.mli
index 4e362218214..12c9d35b3ec 100644
--- a/src/libraries/utils/pretty_utils.mli
+++ b/src/libraries/utils/pretty_utils.mli
@@ -143,6 +143,10 @@ val pp_trail : 'a formatter -> 'a formatter
 (** pretty-prints its contents inside an '(** ... **)' horizontal block trailed
     with '*' *)
 
+val pp_escaped: 'a formatter -> 'a formatter
+(** [pp_escaped pp e] pretty-prints [e] with [String.escaped].
+    @since Frama-C+dev *)
+
 (* ********************************************************************** *)
 (** {2 Description Lists (margins)} *)
 (* ********************************************************************** *)
-- 
GitLab