[Ada] New parameter Quiet for procedure GNAT.Command_Line.Getopt

Getopt procedure is parsing the command line or set of strings. If the
command line contains unknown switch than the Getopt prints error
message to the console and raises the exception Invalid_Switch. The
printing can be inappropriate in some cases. The new parameter Quiet
allows avoiding console output.

2019-08-12  Dmitriy Anisimkov  <anisimko@adacore.com>

gcc/ada/

	* libgnat/g-comlin.ads, libgnat/g-comlin.adb (Getopt): Add
	parameter Quiet. Need to do not output error messages to
	console. Invalid_Switch exception generation surrounded by an
	error message.

From-SVN: r274307
This commit is contained in:
Dmitriy Anisimkov 2019-08-12 09:01:53 +00:00 committed by Pierre-Marie de Rodat
parent 68e4cc9854
commit 4a2e9be1ac
3 changed files with 24 additions and 10 deletions

View File

@ -1,3 +1,10 @@
2019-08-12 Dmitriy Anisimkov <anisimko@adacore.com>
* libgnat/g-comlin.ads, libgnat/g-comlin.adb (Getopt): Add
parameter Quiet. Need to do not output error messages to
console. Invalid_Switch exception generation surrounded by an
error message.
2019-08-12 Ed Schonberg <schonberg@adacore.com>
* exp_ch6.adb (Expand_Actuals. Add_Call_By_Copy_Code): Add code

View File

@ -753,7 +753,8 @@ package body GNAT.Command_Line is
Parser.Current_Index := End_Index + 1;
raise Invalid_Switch;
raise Invalid_Switch with
"Unrecognized option " & Full_Switch (Parser);
end if;
End_Index := Parser.Current_Index + Max_Length - 1;
@ -883,7 +884,8 @@ package body GNAT.Command_Line is
Last => Arg'Last,
Extra => Parser.Switch_Character);
Parser.Current_Index := Arg'Last + 1;
raise Invalid_Switch;
raise Invalid_Switch with
"Unrecognized option " & Full_Switch (Parser);
end if;
end case;
@ -3365,7 +3367,8 @@ package body GNAT.Command_Line is
(Config : Command_Line_Configuration;
Callback : Switch_Handler := null;
Parser : Opt_Parser := Command_Line_Parser;
Concatenate : Boolean := True)
Concatenate : Boolean := True;
Quiet : Boolean := False)
is
Local_Config : Command_Line_Configuration := Config;
Getopt_Switches : String_Access;
@ -3575,12 +3578,14 @@ package body GNAT.Command_Line is
-- Message inspired by "ls" on Unix
Put_Line (Standard_Error,
Base_Name (Ada.Command_Line.Command_Name)
& ": unrecognized option '"
& Full_Switch (Parser)
& "'");
Try_Help;
if not Quiet then
Put_Line (Standard_Error,
Base_Name (Ada.Command_Line.Command_Name)
& ": unrecognized option '"
& Full_Switch (Parser)
& "'");
Try_Help;
end if;
raise;

View File

@ -738,7 +738,8 @@ package GNAT.Command_Line is
(Config : Command_Line_Configuration;
Callback : Switch_Handler := null;
Parser : Opt_Parser := Command_Line_Parser;
Concatenate : Boolean := True);
Concatenate : Boolean := True;
Quiet : Boolean := False);
-- Similar to the standard Getopt function. For each switch found on the
-- command line, this calls Callback, if the switch is not handled
-- automatically.
@ -756,6 +757,7 @@ package GNAT.Command_Line is
-- to display the help message and raises Exit_From_Command_Line.
-- If an invalid switch is specified on the command line, this procedure
-- will display an error message and raises Invalid_Switch again.
-- If the Quiet parameter is True then the error message is not displayed.
--
-- This function automatically expands switches:
--