diff --git a/debianutils/mktemp.c b/debianutils/mktemp.c index 0dcb1e826..c40211476 100644 --- a/debianutils/mktemp.c +++ b/debianutils/mktemp.c @@ -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 {