You should have received a copy of the GNU Library General Public
License along with libiberty; see the file COPYING.LIB. If not,
-write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
+write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
+Boston, MA 02110-1301, USA. */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "libiberty.h"
-extern int mkstemps PARAMS ((char *, int));
+extern int mkstemps (char *, int);
/* '/' works just fine on MS-DOS based systems. */
#ifndef DIR_SEPARATOR
If success, DIR is returned.
Otherwise NULL is returned. */
-static inline const char *try PARAMS ((const char *, const char *));
+static inline const char *try_dir (const char *, const char *);
static inline const char *
-try (dir, base)
- const char *dir, *base;
+try_dir (const char *dir, const char *base)
{
if (base != 0)
return base;
static char *memoized_tmpdir;
+/*
+
+@deftypefn Replacement char* choose_tmpdir ()
+
+Returns a pointer to a directory path suitable for creating temporary
+files in.
+
+@end deftypefn
+
+*/
+
char *
-choose_tmpdir ()
+choose_tmpdir (void)
{
const char *base = 0;
char *tmpdir;
if (memoized_tmpdir)
return memoized_tmpdir;
- base = try (getenv ("TMPDIR"), base);
- base = try (getenv ("TMP"), base);
- base = try (getenv ("TEMP"), base);
+ base = try_dir (getenv ("TMPDIR"), base);
+ base = try_dir (getenv ("TMP"), base);
+ base = try_dir (getenv ("TEMP"), base);
#ifdef P_tmpdir
- base = try (P_tmpdir, base);
+ base = try_dir (P_tmpdir, base);
#endif
/* Try /var/tmp, /usr/tmp, then /tmp. */
- base = try (vartmp, base);
- base = try (usrtmp, base);
- base = try (tmp, base);
+ base = try_dir (vartmp, base);
+ base = try_dir (usrtmp, base);
+ base = try_dir (tmp, base);
/* If all else fails, use the current directory! */
if (base == 0)
/* Append DIR_SEPARATOR to the directory we've chosen
and return it. */
len = strlen (base);
- tmpdir = xmalloc (len + 2);
+ tmpdir = XNEWVEC (char, len + 2);
strcpy (tmpdir, base);
tmpdir[len] = DIR_SEPARATOR;
tmpdir[len+1] = '\0';
return tmpdir;
}
-/* Return a temporary file name (as a string) or NULL if unable to create
- one. SUFFIX is a suffix to append to the file name. The string is
- malloced, and the temporary file has been created. */
+/*
+
+@deftypefn Replacement char* make_temp_file (const char *@var{suffix})
+
+Return a temporary file name (as a string) or @code{NULL} if unable to
+create one. @var{suffix} is a suffix to append to the file name. The
+string is @code{malloc}ed, and the temporary file has been created.
+
+@end deftypefn
+
+*/
char *
-make_temp_file (suffix)
- const char *suffix;
+make_temp_file (const char *suffix)
{
const char *base = choose_tmpdir ();
char *temp_filename;
base_len = strlen (base);
suffix_len = strlen (suffix);
- temp_filename = xmalloc (base_len
+ temp_filename = XNEWVEC (char, base_len
+ TEMP_FILE_LEN
+ suffix_len + 1);
strcpy (temp_filename, base);