ubuntu-buildroot/output/build/host-gcc-initial-11.4.0/gcc/testsuite/gnat.dg/opt28.adb

32 lines
841 B
Ada

with Opt28_Pkg; use Opt28_Pkg;
package body Opt28 is
function Full_Filename (Filename : String) return String is
Path : constant String := "PATH";
Posix_Path : constant Posix_String := To_Posix (Path);
begin
declare
M : constant Posix_String := Value_Of (Posix_Path);
N : constant Posix_String (1 .. M'Length) := M;
Var : constant String := To_String (Str => N);
Start_Pos : Natural := 1;
End_Pos : Natural := 1;
begin
while Start_Pos <= Var'Length loop
End_Pos := Position (Var (Start_Pos .. Var'Length));
if Is_File (To_Posix (Var (Start_Pos .. End_Pos - 1) & Filename)) then
return Var (Start_Pos .. End_Pos - 1) & Filename;
else
Start_Pos := End_Pos + 1;
end if;
end loop;
end;
return "";
end;
end Opt28;