2008-08-05 Vincent Celier <celier@adacore.com>
authorVincent Celier <celier@adacore.com>
Tue, 5 Aug 2008 13:42:08 +0000 (15:42 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 5 Aug 2008 13:42:08 +0000 (15:42 +0200)
* s-wchwts.adb:
(Wide_String_To_String): Returns a String with the same 'First as its
parameter S.
(Wide_Wide_String_To_String): Ditto

* s-wchwts.ads:
(Wide_String_To_String): Document that the lowest index of the returned
String is equal to S'First.

From-SVN: r138708

gcc/ada/s-wchwts.adb
gcc/ada/s-wchwts.ads

index ed660fe..1dc2fce 100644 (file)
@@ -88,16 +88,16 @@ package body System.WCh_WtS is
      (S  : Wide_String;
       EM : WC_Encoding_Method) return String
    is
-      R  : String (1 .. 5 * S'Length); -- worst case length!
+      R  : String (S'First .. S'First + 5 * S'Length); -- worst case length!
       RP : Natural;
 
    begin
-      RP := 0;
+      RP := R'First - 1;
       for SP in S'Range loop
          Store_UTF_32_Character (Wide_Character'Pos (S (SP)), R, RP, EM);
       end loop;
 
-      return R (1 .. RP);
+      return R (R'First .. RP);
    end Wide_String_To_String;
 
    --------------------------------
@@ -108,17 +108,17 @@ package body System.WCh_WtS is
      (S  : Wide_Wide_String;
       EM : WC_Encoding_Method) return String
    is
-      R  : String (1 .. 7 * S'Length); -- worst case length!
+      R  : String (S'First .. S'First + 7 * S'Length); -- worst case length!
       RP : Natural;
 
    begin
-      RP := 0;
+      RP := R'First - 1;
 
       for SP in S'Range loop
          Store_UTF_32_Character (Wide_Wide_Character'Pos (S (SP)), R, RP, EM);
       end loop;
 
-      return R (1 .. RP);
+      return R (R'First .. RP);
    end Wide_Wide_String_To_String;
 
 end System.WCh_WtS;
index 691a322..4f8bfcf 100644 (file)
@@ -54,7 +54,8 @@ package System.WCh_WtS is
    --  that normal (non-wide character) mode holds at the start and end of
    --  the result string. EM indicates the wide character encoding method.
    --  Note: in the WCEM_Brackets case, we only use the brackets encoding
-   --  for characters greater than 16#FF#.
+   --  for characters greater than 16#FF#. The lowest index of the returned
+   --  String is equal to S'First.
 
    function Wide_Wide_String_To_String
      (S  : Wide_Wide_String;