[Ada] New parameter Quiet for procedure GNAT.Command_Line.Getopt
authorDmitriy Anisimkov <anisimko@adacore.com>
Mon, 12 Aug 2019 09:01:53 +0000 (09:01 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Mon, 12 Aug 2019 09:01:53 +0000 (09:01 +0000)
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

gcc/ada/ChangeLog
gcc/ada/libgnat/g-comlin.adb
gcc/ada/libgnat/g-comlin.ads

index c62e621b96d0e243eecefe340f06c02cce4ed2b0..8b8a944ef65d4af9c4261be647f749808922d518 100644 (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
index 29100afba116dfa925c6c3b419c17be034dc6172..f567ddb2481e9953226afc16ad1b3fcb5633398b 100644 (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;
 
index f1251b64228de6bb8fe877e6091d2b88dfc7a8f2..3708c37b842b04fbd1bfde88f429ea8a2851d68a 100644 (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:
    --