method insert_string ?emph (wl : string GList.clist) s =
      let rec iter acc = function
          [] -> acc
        | [""when acc > 0 ->
            (* on ne met pas la dernière ligne vide après le dernier retour charriot *)
            acc
        | s :: q ->
            ignore (wl#append [s]) ;
            (
             match emph with
               None -> ()
             | Some f ->
                 ignore
                   (wl#set_row
                      ~foreground: (`NAME (f colors))
                      (wl#rows - 1)
                   )
            );
            iter (acc + 1) q
      in
      iter 0 (Str.split_delim (Str.regexp_string "\n") s)