X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fada%2Fa-strfix.adb;h=0f3395899b309b9621fc15473721176adc31f3c2;hb=4c97a37dc04bd1838ea3d099bebf2900e10322dd;hp=3385baac86877a019e9e510a6f9932ac6c51cfee;hpb=3817baeb247b3239c00beb407e03e32cb06900c2;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ada/a-strfix.adb b/gcc/ada/a-strfix.adb index 3385baac868..0f3395899b3 100644 --- a/gcc/ada/a-strfix.adb +++ b/gcc/ada/a-strfix.adb @@ -6,25 +6,23 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2010, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- --- ware Foundation; either version 2, or (at your option) any later ver- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- -- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- --- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -- --- for more details. You should have received a copy of the GNU General -- --- Public License distributed with GNAT; see file COPYING. If not, write -- --- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, -- --- Boston, MA 02110-1301, USA. -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- -- -- --- As a special exception, if other files instantiate generics from this -- --- unit, or you link this unit with other files to produce an executable, -- --- this unit does not by itself cause the resulting executable to be -- --- covered by the GNU General Public License. This exception does not -- --- however invalidate any other reasons why the executable file might be -- --- covered by the GNU Public License. -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- . -- -- -- -- GNAT was originally developed by the GNAT team at New York University. -- -- Extensive contributions were provided by Ada Core Technologies Inc. -- @@ -36,7 +34,7 @@ -- of Is_In, so that we are not dependent on inlining. Note that the search -- function implementations are to be found in the auxiliary package -- Ada.Strings.Search. Also the Move procedure is directly incorporated (ADAR --- used a subunit for this procedure). number of errors having to do with +-- used a subunit for this procedure). The number of errors having to do with -- bounds of function return results were also fixed, and use of & removed for -- efficiency reasons. @@ -125,6 +123,15 @@ package body Ada.Strings.Fixed is procedure Find_Token (Source : String; Set : Maps.Character_Set; + From : Positive; + Test : Membership; + First : out Positive; + Last : out Natural) + renames Ada.Strings.Search.Find_Token; + + procedure Find_Token + (Source : String; + Set : Maps.Character_Set; Test : Membership; First : out Positive; Last : out Natural) @@ -468,7 +475,7 @@ package body Ada.Strings.Fixed is By : String) return String is begin - if Low > Source'Last + 1 or High < Source'First - 1 then + if Low > Source'Last + 1 or else High < Source'First - 1 then raise Index_Error; end if; @@ -478,8 +485,8 @@ package body Ada.Strings.Fixed is Integer'Max (0, Low - Source'First); -- Length of prefix of Source copied to result - Back_Len : constant Integer := - Integer'Max (0, Source'Last - High); + Back_Len : constant Integer := + Integer'Max (0, Source'Last - High); -- Length of suffix of Source copied to result Result_Length : constant Integer := @@ -489,13 +496,10 @@ package body Ada.Strings.Fixed is Result : String (1 .. Result_Length); begin - Result (1 .. Front_Len) := - Source (Source'First .. Low - 1); - Result (Front_Len + 1 .. Front_Len + By'Length) := - By; + Result (1 .. Front_Len) := Source (Source'First .. Low - 1); + Result (Front_Len + 1 .. Front_Len + By'Length) := By; Result (Front_Len + By'Length + 1 .. Result'Length) := Source (High + 1 .. Source'Last); - return Result; end;