[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