From: Jerome Lambourg Date: Wed, 6 Aug 2008 08:52:44 +0000 (+0200) Subject: g-comlin.adb (Set_Command_Line): Now that aliases can contain parameters, always... X-Git-Tag: releases/gcc-4.4.0~3302 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=32b9901464b67e926bbc791a4c74fff1d2bab7ec;p=thirdparty%2Fgcc.git g-comlin.adb (Set_Command_Line): Now that aliases can contain parameters, always specify the expected separator. 2008-08-06 Jerome Lambourg * g-comlin.adb (Set_Command_Line): Now that aliases can contain parameters, always specify the expected separator. From-SVN: r138780 --- diff --git a/gcc/ada/g-comlin.adb b/gcc/ada/g-comlin.adb index 221b3a3c4e31..02a0f9a47a82 100644 --- a/gcc/ada/g-comlin.adb +++ b/gcc/ada/g-comlin.adb @@ -1295,13 +1295,19 @@ package body GNAT.Command_Line is -- Add it with no parameter, if that's the way the user -- wants it. + -- Specify the separator in all cases, as the switch might + -- need to be unaliased, and the alias might contain + -- switches with parameters. if Section = null then Add_Switch - (Cmd, Switch_Char & Full_Switch (Parser)); + (Cmd, Switch_Char & Full_Switch (Parser), + Separator => Separator (Parser)); else Add_Switch - (Cmd, Switch_Char & Full_Switch (Parser), Section.all); + (Cmd, Switch_Char & Full_Switch (Parser), + Separator => Separator (Parser), + Section => Section.all); end if; end; end loop; @@ -1439,9 +1445,17 @@ package body GNAT.Command_Line is if not Require_Parameter (Cmd.Config.Switches (S).all) or else Last >= Param then - if Idx = Group'First and then Last = Group'Last then + if Idx = Group'First + and then Last = Group'Last + and then Last < Param + then -- The group only concerns a single switch. Do not -- perform recursive call. + + -- Note that we still perform a recursive call if + -- a parameter is detected in the switch, as this + -- is a way to correctly identify such a parameter + -- in aliases. return False; end if;