TMPDIR, TMP and TEMP, in that order, to determinate where the temp
files shall be created. Before trying to use the temp dir where the
environment variable points to check that the dir really exists. If
not default to the cwd as temp dir. Copyright timestamp adjusted.
/* Subprocesses with pipes.
/* Subprocesses with pipes.
- Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
void
init_subpipe(void)
{
void
init_subpipe(void)
{
- strcpy(tmp_file_name[0], "/dev/env/TMPDIR/bnXXXXXX");
+ tmpdir = getenv("TMPDIR");
+ if (tmpdir == NULL)
+ tmpdir = getenv("TMP");
+ if (tmpdir == NULL)
+ tmpdir = getenv("TEMP");
+ if (access(tmpdir, D_OK))
+ tmpdir = ".";
+
+ strcpy(tmp_file_name[0], tmpdir);
+ strcat(tmp_file_name[0], "/bnXXXXXX");
fd = mkstemp(tmp_file_name[0]);
if (fd < 0)
error(EXIT_FAILURE, 0, _("creation of a temporary file failed"));
close (fd);
fd = mkstemp(tmp_file_name[0]);
if (fd < 0)
error(EXIT_FAILURE, 0, _("creation of a temporary file failed"));
close (fd);
- strcpy(tmp_file_name[1], "/dev/env/TMPDIR/bnXXXXXX");
+ strcpy(tmp_file_name[1], tmpdir);
+ strcat(tmp_file_name[1], "/bnXXXXXX");
fd = mkstemp(tmp_file_name[1]);
if (fd < 0)
error(EXIT_FAILURE, 0, _("creation of a temporary file failed"));
fd = mkstemp(tmp_file_name[1]);
if (fd < 0)
error(EXIT_FAILURE, 0, _("creation of a temporary file failed"));