--- trunk/mkinitrd-magellan/busybox/debianutils/mktemp.c 2010/08/18 21:11:40 1122 +++ trunk/mkinitrd-magellan/busybox/debianutils/mktemp.c 2010/08/18 21:56:57 1123 @@ -39,23 +39,21 @@ { 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); - chp = argv[optind] ? argv[optind] : xstrdup("tmp.XXXXXX"); + opts = getopt32(argv, "dqtp:", &path); - 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 = argv[optind] ? argv[optind] : xstrdup("tmp.XXXXXX"); + if (chp[0] != '/' || (opts & 8)) chp = concat_path_file(path, chp); - } - if (opt & 1) { /* -d */ + if (opts & 1) { /* -d */ if (mkdtemp(chp) == NULL) return EXIT_FAILURE; } else {