Module Name:    src
Committed By:   christos
Date:           Sat Aug 15 20:02:28 UTC 2009

Modified Files:
        src/usr.bin/mktemp: mktemp.1 mktemp.c

Log Message:
add -p <tmpdir> option to override $TMPDIR from the command line like linux
has.


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/usr.bin/mktemp/mktemp.1
cvs rdiff -u -r1.10 -r1.11 src/usr.bin/mktemp/mktemp.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/mktemp/mktemp.1
diff -u src/usr.bin/mktemp/mktemp.1:1.17 src/usr.bin/mktemp/mktemp.1:1.18
--- src/usr.bin/mktemp/mktemp.1:1.17	Tue Sep 19 15:01:44 2006
+++ src/usr.bin/mktemp/mktemp.1	Sat Aug 15 16:02:28 2009
@@ -1,4 +1,4 @@
-.\" $NetBSD: mktemp.1,v 1.17 2006/09/19 19:01:44 wiz Exp $
+.\" $NetBSD: mktemp.1,v 1.18 2009/08/15 20:02:28 christos Exp $
 .\" From: $FreeBSD: src/usr.bin/mktemp/mktemp.1,v 1.5 1999/08/28 01:04:13 peter Exp $
 .\" From: $OpenBSD: mktemp.1,v 1.8 1998/03/19 06:13:37 millert Exp $
 .\"
@@ -31,7 +31,7 @@
 .\"
 .\" $FreeBSD: src/usr.bin/mktemp/mktemp.1,v 1.5 1999/08/28 01:04:13 peter Exp $
 .\"
-.Dd January 12, 2006
+.Dd August 15, 2009
 .Dt MKTEMP 1
 .Os
 .Sh NAME
@@ -40,6 +40,7 @@
 .Sh SYNOPSIS
 .Nm mktemp
 .Op Fl dqu
+.Op Fl p Ar tmpdir
 .Bro
 .Fl t Ar prefix
 .No |
@@ -89,6 +90,9 @@
 .Ev TMPDIR
 is not set is
 .Pa /tmp .
+The default location of the temporary directory can be overriden with the
+.Fl p Ar tmpdir
+option.
 The template string created will consist of the
 .Ar prefix
 followed by a

Index: src/usr.bin/mktemp/mktemp.c
diff -u src/usr.bin/mktemp/mktemp.c:1.10 src/usr.bin/mktemp/mktemp.c:1.11
--- src/usr.bin/mktemp/mktemp.c:1.10	Sat Dec 15 14:44:52 2007
+++ src/usr.bin/mktemp/mktemp.c	Sat Aug 15 16:02:28 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: mktemp.c,v 1.10 2007/12/15 19:44:52 perry Exp $ */
+/* $NetBSD: mktemp.c,v 1.11 2009/08/15 20:02:28 christos Exp $ */
 
 /*-
  * Copyright (c) 1994, 1995, 1996, 1998 Peter Wemm <[email protected]>
@@ -50,7 +50,7 @@
 #include <unistd.h>
 
 #if defined(__RCSID) && !defined(__lint)
-__RCSID("$NetBSD: mktemp.c,v 1.10 2007/12/15 19:44:52 perry Exp $");
+__RCSID("$NetBSD: mktemp.c,v 1.11 2009/08/15 20:02:28 christos Exp $");
 #endif /* !__lint */
 
 static void usage(void) __dead;
@@ -66,15 +66,20 @@
 
 	setprogname(*argv);
 	ret = dflag = qflag = tflag = uflag = 0;
+	tmpdir = NULL;
 	prefix = "mktemp";
 	name = NULL;
 
-	while ((c = getopt(argc, argv, "dqt:u")) != -1)
+	while ((c = getopt(argc, argv, "dp:qt:u")) != -1)
 		switch (c) {
 		case 'd':
 			dflag++;
 			break;
 
+		case 'p':
+			tmpdir = optarg;
+			break;
+			
 		case 'q':
 			qflag++;
 			break;
@@ -96,7 +101,8 @@
 	argv += optind;
 
 	if (tflag) {
-		tmpdir = getenv("TMPDIR");
+		if (tmpdir == NULL)
+			tmpdir = getenv("TMPDIR");
 		if (tmpdir == NULL)
 			(void)asprintf(&name, "%s%s.XXXXXXXX", _PATH_TMP,
 			    prefix);
@@ -116,7 +122,11 @@
 	/* generate all requested files */
 	while (name != NULL || argc > 0) {
 		if (name == NULL) {
-			name = strdup(argv[0]);
+			if (tmpdir)
+				(void)asprintf(&name, "%s/%s",
+				    tmpdir, argv[0]);
+			else
+				name = strdup(argv[0]);
 			argv++;
 			argc--;
 		}
@@ -155,7 +165,7 @@
 usage(void)
 {
 	(void)fprintf(stderr,
-		"Usage: %s [-dqu] {-t prefix | template ...}\n",
-		getprogname());
+	    "Usage: %s [-dqu] [-p <tmpdir>] {-t prefix | template ...}\n",
+	    getprogname());
 	exit (1);
 }

Reply via email to