tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
authorVincent Celier <celier@adacore.com>
Fri, 31 Aug 2007 10:24:29 +0000 (12:24 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 31 Aug 2007 10:24:29 +0000 (12:24 +0200)
2007-08-31  Vincent Celier  <celier@adacore.com>

* tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR

From-SVN: r127982

gcc/ada/tempdir.adb

index 7044271..cc13a4c 100644 (file)
 
 with GNAT.Directory_Operations; use GNAT.Directory_Operations;
 
-with Opt;    use Opt;
-with Output; use Output;
+with Hostparm; use Hostparm;
+with Opt;      use Opt;
+with Output;   use Output;
 
 package body Tempdir is
 
    Tmpdir_Needs_To_Be_Displayed : Boolean := True;
 
-   Tmpdir   : constant String := "TMPDIR";
-   No_Dir   : aliased String  := "";
-   Temp_Dir : String_Access   := No_Dir'Access;
+   Tmpdir    : constant String := "TMPDIR";
+   Gnutmpdir : constant String := "GNUTMPDIR";
+   No_Dir    : aliased String  := "";
+   Temp_Dir  : String_Access   := No_Dir'Access;
 
    ----------------------
    -- Create_Temp_File --
@@ -114,9 +116,24 @@ package body Tempdir is
 
 begin
    declare
-      Dir : String_Access := Getenv (Tmpdir);
+      Dir : String_Access;
 
    begin
+      --  On VMS, if GNUTMPDIR is defined, use it
+
+      if OpenVMS then
+         Dir := Getenv (Gnutmpdir);
+
+         --  Otherwise, if GNUTMPDIR is not defined, try TMPDIR
+
+         if Dir'Length = 0 then
+            Dir := Getenv (Tmpdir);
+         end if;
+
+      else
+         Dir := Getenv (Tmpdir);
+      end if;
+
       if Dir'Length > 0 and then
         Is_Absolute_Path (Dir.all) and then
         Is_Directory (Dir.all)