Index: src/natools-s_expressions-parsers.adb ================================================================== --- src/natools-s_expressions-parsers.adb +++ src/natools-s_expressions-parsers.adb @@ -289,12 +289,12 @@ | Encodings.CR | Encodings.LF => P.Internal.Escape.Data (1) := O; P.Internal.Escape.Length := 2; when others => - P.Buffer.Append - ((1 => P.Internal.Escape.Data (0), 2 => O)); + P.Buffer.Append (P.Internal.Escape.Data (0)); + P.Override.Append (O); P.Internal.Escape.Length := 0; end case; when 2 => if (P.Internal.Escape.Data (1) in Encodings.Digit_0 @@ -311,18 +311,18 @@ then P.Internal.Escape.Length := 0; if not ((O = Encodings.CR or O = Encodings.LF) and O /= P.Internal.Escape.Data (1)) then - P.Buffer.Append (O); + P.Override.Append (O); end if; else P.Buffer.Append ((P.Internal.Escape.Data (0), - P.Internal.Escape.Data (1), - O)); + P.Internal.Escape.Data (1))); + P.Override.Append (O); P.Internal.Escape.Length := 0; end if; when 3 => if P.Internal.Escape.Data (1) = Character'Pos ('x') then @@ -332,12 +332,12 @@ O)); else P.Buffer.Append ((P.Internal.Escape.Data (0), P.Internal.Escape.Data (1), - P.Internal.Escape.Data (2), - O)); + P.Internal.Escape.Data (2))); + P.Override.Append (O); end if; else pragma Assert (P.Internal.Escape.Data (1) in Encodings.Digit_0 .. Encodings.Digit_0 + 3); if O in Encodings.Digit_0 .. Encodings.Digit_0 + 7 then @@ -350,12 +350,12 @@ (O - Encodings.Digit_0)); else P.Buffer.Append ((P.Internal.Escape.Data (0), P.Internal.Escape.Data (1), - P.Internal.Escape.Data (2), - O)); + P.Internal.Escape.Data (2))); + P.Override.Append (O); end if; end if; P.Internal.Escape.Length := 0; when 4 =>