-- dC Output debugging information on check suppression
-- dD Delete elaboration checks in inner level routines
-- dE Apply elaboration checks to predefined units
- -- dF
+ -- dF Alternative display for messages over multiple lines
-- dG Generate all warnings including those normally suppressed
-- dH Hold (kill) call to gigi
-- dI Inhibit internal name numbering in gnatG listing
E := First_Error_Msg;
while E /= No_Error_Msg loop
if not Errors.Table (E).Deleted and then not Debug_Flag_KK then
- if Full_Path_Name_For_Brief_Errors then
- Write_Name (Full_Ref_Name (Errors.Table (E).Sfile));
- else
- Write_Name (Reference_Name (Errors.Table (E).Sfile));
+
+ -- If -gnatdF is used, separate main messages from previous
+ -- messages with a newline and make continuation messages
+ -- follow the main message with only an indentation of two
+ -- space characters, without repeating file:line:col: prefix.
+
+ if Debug_Flag_FF then
+ if Errors.Table (E).Msg_Cont then
+ Write_Str (" ");
+ else
+ Write_Eol;
+ end if;
end if;
- Write_Char (':');
- Write_Int (Int (Physical_To_Logical
- (Errors.Table (E).Line,
- Errors.Table (E).Sfile)));
- Write_Char (':');
+ if not (Debug_Flag_FF and then Errors.Table (E).Msg_Cont) then
+ if Full_Path_Name_For_Brief_Errors then
+ Write_Name (Full_Ref_Name (Errors.Table (E).Sfile));
+ else
+ Write_Name (Reference_Name (Errors.Table (E).Sfile));
+ end if;
+
+ Write_Char (':');
+ Write_Int (Int (Physical_To_Logical
+ (Errors.Table (E).Line,
+ Errors.Table (E).Sfile)));
+ Write_Char (':');
+
+ if Errors.Table (E).Col < 10 then
+ Write_Char ('0');
+ end if;
- if Errors.Table (E).Col < 10 then
- Write_Char ('0');
+ Write_Int (Int (Errors.Table (E).Col));
+ Write_Str (": ");
end if;
- Write_Int (Int (Errors.Table (E).Col));
- Write_Str (": ");
Output_Msg_Text (E);
Write_Eol;
end if;
Txt := Text;
end if;
+ -- If -gnatdF is used, continuation messages follow the main message
+ -- with only an indentation of two space characters, without repeating
+ -- any prefix.
+
+ if Debug_Flag_FF and then E_Msg.Msg_Cont then
+ null;
+
-- For info messages, prefix message with "info: "
- if E_Msg.Info then
+ elsif E_Msg.Info then
Txt := new String'("info: " & Txt.all);
-- Warning treated as error