" FOR A PARTICULAR PURPOSE.";
end Gnat_Free_Software;
- Version_String : String (1 .. Ver_Len_Max);
+ type char_array is array (Natural range <>) of aliased Character;
+ Version_String : char_array (0 .. Ver_Len_Max - 1);
-- Import the C string defined in the (language-independent) source file
- -- version.c.
+ -- version.c using the zero-based convention of the C language.
-- The size is not the real one, which does not matter since we will
-- check for the nul character in Gnat_Version_String.
pragma Import (C, Version_String, "version_string");
-------------------------
function Gnat_Version_String return String is
- NUL_Pos : Positive := 1;
+ S : String (1 .. Ver_Len_Max);
+ Pos : Natural := 0;
begin
loop
- exit when Version_String (NUL_Pos) = ASCII.NUL;
+ exit when Version_String (Pos) = ASCII.NUL;
- NUL_Pos := NUL_Pos + 1;
+ S (Pos + 1) := Version_String (Pos);
+ Pos := Pos + 1;
end loop;
- return Version_String (1 .. NUL_Pos - 1);
+ return S (1 .. Pos);
end Gnat_Version_String;
end Gnatvsn;