[git commit master 1/1] mktemp: be more compatible: bare "mktemp" creates tempfile in /tmp, not cwd
Denys Vlasenko
vda.linux at googlemail.com
Fri Jun 18 01:16:27 UTC 2010
commit: http://git.busybox.net/busybox/commit/?id=9b814ca6335806a6eb47e22805620ec81d5d849d
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master
function old new delta
mktemp_main 171 152 -19
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
debianutils/mktemp.c | 23 ++++++++++-------------
1 files changed, 10 insertions(+), 13 deletions(-)
diff --git a/debianutils/mktemp.c b/debianutils/mktemp.c
index 0dcb1e8..c402114 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);
- 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 = concat_path_file(path, chp);
- }
+ chp = argv[optind] ? argv[optind] : xstrdup("tmp.XXXXXX");
+ chp = concat_path_file(path, chp);
- if (opt & 1) { /* -d */
+ if (opts & 1) { /* -d */
if (mkdtemp(chp) == NULL)
return EXIT_FAILURE;
} else {
--
1.7.1
More information about the busybox-cvs
mailing list