changeset 1682:abe691083cfe draft

Shameless meddling.
author Rob Landley <rob@landley.net>
date Sat, 07 Feb 2015 19:45:23 -0600
parents 4bcfe4cf3e50
children f5414b91e639
files toys/lsb/mktemp.c
diffstat 1 files changed, 15 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/toys/lsb/mktemp.c	Sat Feb 07 19:27:59 2015 -0600
+++ b/toys/lsb/mktemp.c	Sat Feb 07 19:45:23 2015 -0600
@@ -12,44 +12,39 @@
   help
     usage: mktemp [-dq] [-p DIR] [TEMPLATE]
 
-    Safely create a new file and print its name. The default TEMPLATE is
-    tmp.XXXXXX. The default DIR is $TMPDIR, or /tmp if $TMPDIR is not set.
+    Safely create a new file "DIR/TEMPLATE" and print its name.
 
-    -d, --directory        Create directory instead of file
-    -p DIR, --tmpdir=DIR   Put new file in DIR
-    -q                     Quiet
+    -d	Create directory instead of file (--directory)
+    -p	Put new file in DIR (--tmpdir)
+    -q	Quiet, no error messages
+
+    Each X in TEMPLATE is replaced with a random printable character. The
+    default TEMPLATE is tmp.XXXXXX, and the default DIR is $TMPDIR if set,
+    else "/tmp".
 */
 
 #define FOR_mktemp
 #include "toys.h"
 
 GLOBALS(
-  char * tmpdir;
+  char *tmpdir;
 )
 
 void mktemp_main(void)
 {
   int d_flag = toys.optflags & FLAG_d;
   char *template = *toys.optargs;
-  int success;
 
-  if (!template) {
-    template = "tmp.XXXXXX";
-  }
+  if (!template) template = "tmp.XXXXXX";
 
   if (!TT.tmpdir) TT.tmpdir = getenv("TMPDIR");
   if (!TT.tmpdir) TT.tmpdir = "/tmp";
 
   snprintf(toybuf, sizeof(toybuf), "%s/%s", TT.tmpdir, template);
 
-  if (d_flag ? mkdtemp(toybuf) == NULL : mkstemp(toybuf) == -1) {
-    if (toys.optflags & FLAG_q) {
-      toys.exitval = 1;
-    } else {
-      perror_exit("Failed to create temporary %s with template %s/%s",
-        d_flag ? "directory" : "file", TT.tmpdir, template);
-    }
-  }
-
-  xputs(toybuf);
+  if (d_flag ? !mkdtemp(toybuf) : mkstemp(toybuf) == -1) {
+    if (toys.optflags & FLAG_q) toys.exitval = 1;
+    else perror_exit("Failed to create %s %s/%s",
+                     d_flag ? "directory" : "file", TT.tmpdir, template);
+  } else xputs(toybuf);
 }