mktemp: be more compatible: bare "mktemp" creates tempfile in /tmp, not cwd
function old new delta mktemp_main 171 152 -19 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
4ebdae3777
commit
9b814ca633
@ -39,23 +39,20 @@ int mktemp_main(int argc UNUSED_PARAM, char **argv)
|
||||
{
|
||||
const char *path;
|
||||
char *chp;
|
||||
unsigned opt;
|
||||
unsigned opts;
|
||||
|
||||
path = getenv("TMPDIR");
|
||||
if (!path || path[0] == '\0')
|
||||
path = "/tmp";
|
||||
|
||||
/* -q and -t are ignored */
|
||||
opt_complementary = "?1"; /* 1 argument max */
|
||||
opt = getopt32(argv, "dqtp:", &path);
|
||||
opts = getopt32(argv, "dqtp:", &path);
|
||||
|
||||
chp = argv[optind] ? argv[optind] : xstrdup("tmp.XXXXXX");
|
||||
chp = concat_path_file(path, chp);
|
||||
|
||||
if (opt & (4|8)) { /* -t and/or -p */
|
||||
const char *dir = getenv("TMPDIR");
|
||||
if (dir && *dir != '\0')
|
||||
path = dir;
|
||||
else if (!(opt & 8)) /* no -p */
|
||||
path = "/tmp/";
|
||||
/* else path comes from -p DIR */
|
||||
chp = concat_path_file(path, chp);
|
||||
}
|
||||
|
||||
if (opt & 1) { /* -d */
|
||||
if (opts & 1) { /* -d */
|
||||
if (mkdtemp(chp) == NULL)
|
||||
return EXIT_FAILURE;
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user