aboutsummaryrefslogtreecommitdiff
path: root/libiberty/choose-temp.c
diff options
context:
space:
mode:
Diffstat (limited to 'libiberty/choose-temp.c')
-rw-r--r--libiberty/choose-temp.c28
1 files changed, 19 insertions, 9 deletions
diff --git a/libiberty/choose-temp.c b/libiberty/choose-temp.c
index 798de4822a5..ea4f9ed5f32 100644
--- a/libiberty/choose-temp.c
+++ b/libiberty/choose-temp.c
@@ -1,5 +1,5 @@
/* Utility to pick a temporary filename prefix.
- Copyright (C) 1996 Free Software Foundation, Inc.
+ Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or
@@ -22,7 +22,21 @@ Boston, MA 02111-1307, USA. */
/* This file lives in at least two places: libiberty and gcc.
Don't change one without the other. */
-#ifndef NO_SYS_FILE_H
+#if defined (IN_GCC) || defined (HAVE_CONFIG_H)
+#include "config.h"
+#endif
+
+#ifdef IN_GCC
+#include "system.h"
+#else
+
+/* If we are in gcc, system.h has handled everything. When not in
+ gcc, if we have a config.h we assume that HAVE_SYS_FILE_H tells us
+ whether to include sys/file.h. However, libiberty does not have a
+ config.h, and instead arranges to define NO_SYS_FILE_H on the
+ command line when there is no sys/file.h. */
+
+#if defined (HAVE_CONFIG_H) ? defined (HAVE_SYS_FILE_H) : ! defined (NO_SYS_FILE_H)
#include <sys/types.h>
#include <sys/file.h> /* May get R_OK, etc. on some systems. */
#endif
@@ -34,9 +48,9 @@ Boston, MA 02111-1307, USA. */
#endif
#include <stdio.h> /* May get P_tmpdir. */
+#endif /* IN_GCC */
#ifdef IN_GCC
-#include "config.h"
#include "gansidecl.h"
extern char *xmalloc ();
#else
@@ -54,7 +68,7 @@ extern char *xmalloc ();
/* On MSDOS, write temp files in current dir
because there's no place else we can expect to use. */
/* ??? Although the current directory is tried as a last resort,
- this is left in so that on MSDOS it is prefered to /tmp on the
+ this is left in so that on MSDOS it is preferred to /tmp on the
off chance that someone requires this, since that was the previous
behaviour. */
#ifdef __MSDOS__
@@ -68,7 +82,7 @@ extern char *xmalloc ();
#define TEMP_FILE "ccXXXXXX"
/* Subroutine of choose_temp_base.
- If BASE is non-NULL, returh it.
+ If BASE is non-NULL, return it.
Otherwise it checks if DIR is a usable directory.
If success, DIR is returned.
Otherwise NULL is returned. */
@@ -114,11 +128,7 @@ choose_temp_base ()
/* If all else fails, use the current directory! */
if (base == 0)
-#ifdef VMS
- base = "[";
-#else
base = ".";
-#endif
#else /* MPW */
base = ":";