OSDN Git Service

2007-08-14 Emmanuel Briot <briot@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Aug 2007 08:47:56 +0000 (08:47 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 14 Aug 2007 08:47:56 +0000 (08:47 +0000)
* g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
switches.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127451 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/g-comlin.adb

index 52a1555..9abd4b0 100644 (file)
@@ -581,6 +581,17 @@ package body GNAT.Command_Line is
                      --  If Concatenate is False and the full argument is not
                      --  recognized as a switch, this is an invalid switch.
 
+                     if Switches (Switches'First) = '*' then
+                        Set_Parameter
+                           (The_Switch,
+                            Arg_Num => Current_Argument,
+                            First   => 1,
+                            Last    => CL.Argument (Current_Argument)'Last);
+                        Is_Switch (Current_Argument) := True;
+                        Dummy := Goto_Next_Argument_In_Section;
+                        return '*';
+                     end if;
+
                      Set_Parameter (The_Switch,
                                     Arg_Num => Current_Argument,
                                     First   => Current_Index,
@@ -597,6 +608,17 @@ package body GNAT.Command_Line is
             --  If Concatenate is False and the full argument is not
             --  recognized as a switch, this is an invalid switch.
 
+            if Switches (Switches'First) = '*' then
+               Set_Parameter
+                  (The_Switch,
+                   Arg_Num => Current_Argument,
+                   First   => 1,
+                   Last    => CL.Argument (Current_Argument)'Last);
+               Is_Switch (Current_Argument) := True;
+               Dummy := Goto_Next_Argument_In_Section;
+               return '*';
+            end if;
+
             Set_Parameter (The_Switch,
                            Arg_Num => Current_Argument,
                            First   => Current_Index,