This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Ada] fix handling of absolute files under vxworks


Manually tested under i586-vxworks
Tested on i686-linux, committed on trunk

The problem was that a path such as "host:/dir/file" was considered as a
relative path. Hence, when this path was normalized, the run time system
tried to add its location to make its absolute, having as a result an
unvalid location: "host:/dir/host:/dir/file". The fix simply recognizes
these patterns as absolute path names so they are not modified when they
are normalized.

The following example should create and delete a directory under vxworks
without problems, and hence display "OK" as result:

with Ada.Directories; use Ada.Directories;
with Ada.Text_IO;     use Ada.Text_IO;

procedure Test_Dir is
begin
   Create_Directory ("toto");
   Delete_Tree ("toto");

   Put_Line ("OK");
exception
   when others =>
      Put_Line ("Test failed");
end Test_Dir;

2007-08-14  Jose Ruiz  <ruiz@adacore.com>

	* adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
	dir/file, device:/dir/file, and device:drive_letter:/dir/file as
	representing absolute path names.
	__gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.

	* cstreams.c (__gnat_full_name for VxWorks): Use
	__gnat_is_absolute_path to detect whether we need to add the current
	directory to normalize the path.

Attachment: difs
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]