Index: src/natools-s_expressions-printers-pretty.adb ================================================================== --- src/natools-s_expressions-printers-pretty.adb +++ src/natools-s_expressions-printers-pretty.adb @@ -564,10 +564,11 @@ Result : in out Atom; Pos : in Offset); Size : Count; Last_Non_NL : Offset := Data'Last; + Expected_Cursor : Screen_Offset := Output.Cursor; procedure Escape (Value : in Octet; Result : in out Atom; Pos : in Offset) is @@ -587,22 +588,18 @@ Result (Pos + 2), Result (Pos + 3)); end case; end Escape; begin - declare - Discarded_Cursor : Screen_Offset := Output.Cursor; - begin - Quoted_Lengths - (Data, - Output.Param.Char_Encoding, - Output.Param.Width, - Output.Param.Newline, - Single_Line, - Size, - Discarded_Cursor); - end; + Quoted_Lengths + (Data, + Output.Param.Char_Encoding, + Output.Param.Width, + Output.Param.Newline, + Single_Line, + Size, + Expected_Cursor); while Last_Non_NL in Data'Range and then (Data (Last_Non_NL) = Encodings.CR or Data (Last_Non_NL) = Encodings.LF) loop @@ -756,10 +753,12 @@ pragma Assert (O = Result'Last); Result (O) := Encodings.Quoted_Atom_End; Write_Raw (Printer'Class (Output), Result); end; + + pragma Assert (Output.Cursor = Expected_Cursor); end Write_Quoted; procedure Write_Verbatim (Output : in out Printer; Data : in Atom) is Length_Image : constant String := Count'Image (Data'Length);