From a2a8c73cc68095f8dd4eb2e203f90014ad7e68eb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr>
Date: Mon, 14 Mar 2022 11:59:41 +0100
Subject: [PATCH] [ivette/richtext] fix richtext buffer self-destruction

---
 ivette/src/frama-c/richtext.tsx | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/ivette/src/frama-c/richtext.tsx b/ivette/src/frama-c/richtext.tsx
index 3ce352526b6..813737c792e 100644
--- a/ivette/src/frama-c/richtext.tsx
+++ b/ivette/src/frama-c/richtext.tsx
@@ -54,16 +54,14 @@ export function printTextWithTags(
 ): void {
   if (Array.isArray(text)) {
     let marker = false;
-    const tag = text.shift();
-    if (tag) {
-      if (Array.isArray(tag)) {
-        text.unshift(tag);
-      } else {
-        buffer.openTextMarker({ id: tag, ...options ?? {} });
-        marker = true;
-      }
+    const tag = text[0];
+    if (typeof (tag) === 'string') {
+      buffer.openTextMarker({ id: tag, ...options ?? {} });
+      marker = true;
+    }
+    for (let k = marker ? 1 : 0; k < text.length; k++) {
+      printTextWithTags(buffer, text[k], options);
     }
-    text.forEach((txt) => printTextWithTags(buffer, txt, options));
     if (marker) {
       marker = false;
       buffer.closeTextMarker();
-- 
GitLab