-- It is never an error to call Cancel_Special_Output. It has the same
-- effect as calling Set_Special_Output (null).
+ procedure Ignore_Output (S : String);
+ -- Does nothing. To disable output, pass Ignore_Output'Access to
+ -- Set_Special_Output.
+
procedure Set_Standard_Error;
-- Sets subsequent output to appear on the standard error file (whatever
-- that might mean for the host operating system, if anything) when
-- has been cancelled. Output to standard output is the default mode
-- before any call to either of the Set procedures.
+ procedure Indent;
+ -- Increases the current indentation level. Whenever a line is written
+ -- (triggered by Eol), an appropriate amount of whitespace is added to the
+ -- beginning of the line, wrapping around if it gets too long.
+
+ procedure Outdent;
+ -- Decreases the current indentation level
+
procedure Write_Char (C : Character);
- -- Write one character to the standard output file. Note that the
- -- character should not be LF or CR (use Write_Eol for end of line)
+ -- Write one character to the standard output file. If the character is LF,
+ -- this is equivalent to Write_Eol.
procedure Write_Erase_Char (C : Character);
-- If last character in buffer matches C, erase it, otherwise no effect
-- subprograms defined in this package, and cannot be directly modified or
-- accessed by a client.
- Buffer : String (1 .. Buffer_Max + 1);
+ Buffer : String (1 .. Buffer_Max + 1) := (others => '*');
for Buffer'Alignment use 4;
-- Buffer used to build output line. We do line buffering because it
-- is needed for the support of the debug-generated-code option (-gnatD).
-- Column about to be written
type Saved_Output_Buffer is record
- Buffer : String (1 .. Buffer_Max + 1);
- Next_Col : Positive;
+ Buffer : String (1 .. Buffer_Max + 1);
+ Next_Col : Positive;
+ Cur_Indentation : Natural;
end record;
end Output;