diff --git a/ivette/src/frama-c/richtext.tsx b/ivette/src/frama-c/richtext.tsx index 3ce352526b6c67f6ae1bad8eb14bff4e097a734e..813737c792e21cc1aaa3f5e59314bddbe0d0041d 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();