[git commit] mktemp: add --tmpdir option

Denys Vlasenko vda.linux at googlemail.com
Fri Oct 8 19:02:56 UTC 2021


commit: https://git.busybox.net/busybox/commit/?id=ecac9853f29dcb2e5e0d70c0effaae2cabeefabf
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

Make mktemp more compatible with coreutils.
- add "--tmpdir" option
- add long variants for "d,q,u" options

Note: Upstream ca-certificate update script started using this option.

function                                             old     new   delta
.rodata                                           104179  104219     +40
mktemp_main                                          186     194      +8
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 48/0)               Total: 48 bytes

Signed-off-by: Andrej Valek <andrej.valek at siemens.com>
Signed-off-by: Peter Marko <peter.marko at siemens.com>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 coreutils/mktemp.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/coreutils/mktemp.c b/coreutils/mktemp.c
index 5393320a5..33e2720de 100644
--- a/coreutils/mktemp.c
+++ b/coreutils/mktemp.c
@@ -72,13 +72,27 @@ int mktemp_main(int argc UNUSED_PARAM, char **argv)
 		OPT_t = 1 << 2,
 		OPT_p = 1 << 3,
 		OPT_u = 1 << 4,
+		OPT_tmpdir = (1 << 5) * ENABLE_LONG_OPTS,
 	};
 
 	path = getenv("TMPDIR");
 	if (!path || path[0] == '\0')
 		path = "/tmp";
 
+#if ENABLE_LONG_OPTS
+	opts = getopt32long(argv, "^"
+		"dqtp:u"
+		"\0"
+		"?1" /* 1 arg max */,
+		"directory\0" No_argument       "d"
+		"quiet\0"     No_argument       "q"
+		"dry-run\0"   No_argument       "u"
+		"tmpdir\0"    Optional_argument "\xff"
+		, &path, &path
+	);
+#else
 	opts = getopt32(argv, "^" "dqtp:u" "\0" "?1"/*1 arg max*/, &path);
+#endif
 
 	chp = argv[optind];
 	if (!chp) {
@@ -95,7 +109,7 @@ int mktemp_main(int argc UNUSED_PARAM, char **argv)
 		goto error;
 	}
 #endif
-	if (opts & (OPT_t|OPT_p))
+	if (opts & (OPT_t|OPT_p|OPT_tmpdir))
 		chp = concat_path_file(path, chp);
 
 	if (opts & OPT_u) {


More information about the busybox-cvs mailing list