Subject: Re: mktemp(1) synopsis; calling it without arguments
To: Hubert Feyrer <hubert@feyrer.de>
From: Tilman Kranz <tilman.kranz@tk-sls.de>
List: tech-userlevel
Date: 09/17/2006 10:38:25
This is a cryptographically signed message in MIME format.

--------------ms000108050404060501050505
Content-Type: multipart/mixed;
 boundary="------------090303010908050807050105"

This is a multi-part message in MIME format.
--------------090303010908050807050105
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

Hubert Feyrer schrieb:
> On Fri, 15 Sep 2006, Tilman Kranz wrote:
>> The truth appears to be that one of either "-t prefix" or
>> "template ..." must be present. Am I correct?

> Yes, it seems you are.
> Can you suggest a patch for the manpage and the usage that
> reflects this properly?

I attached a unified diff against "mktemp.1" revision "1.13.2.1".

The synopsis section is modified to

     mktemp [-d] [-q] [-u] [-t prefix | template ...]

In the description section, the user is informed about argument
order requirements to ensure that options are not interleaved
with "template" arguments; clarification is added on how the
internal template, optional prefix values and templates apply;
that one of "-t prefix" or "template" must be given is stated.

In the options section, the case where both "-t prefix" and
"template" are present is clarified.



--------------090303010908050807050105
Content-Type: text/x-patch;
 name="mktemp.1.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="mktemp.1.diff"

--- mktemp.1	2006-06-19 06:17:07.000000000 +0200
+++ mktemp.1.new	2006-09-17 10:25:06.000000000 +0200
@@ -41,9 +41,13 @@
 .Nm mktemp
 .Op Fl d
 .Op Fl q
-.Op Fl t Ar prefix
 .Op Fl u
-.Op Ar template ...
+.Oo
+.Fl t Ar prefix
+.Sy |
+.Ar template
+.Li ...
+.Oc
 .Sh DESCRIPTION
 The
 .Nm
@@ -109,10 +113,18 @@
 be taken to ensure that it is appropriate to use an environment variable
 potentially supplied by the user.
 .Pp
-Any number of temporary files may be created in a single invocation,
-including one based on the internal template resulting from the
+Any number of temporary files may be created in a single invocation
+using multiple
+.Ar template
+arguments, also a single one based on the internal template with the
+.Fl t
+option value as filename prefix.
+.Pp
+At least one
+.Ar template
+argument or the
 .Fl t
-flag.
+option must be present.
 .Pp
 .Nm
 is provided to allow shell scripts to safely use temporary files.
@@ -131,7 +143,7 @@
 .Nm
 be used instead.
 .Sh OPTIONS
-The available options are as follows:
+All options must preceed all non-options. The available options are as follows:
 .Bl -tag -width indent
 .It Fl d
 Make a directory instead of a file.
@@ -144,7 +156,14 @@
 .Ar prefix
 and
 .Ev TMPDIR
-if set) to create a filename template.
+if set) to create a filename template. If
+.Fl t Ar prefix
+and
+.Ar template
+are both given,
+.Ar prefix
+will not apply to
+.Ar template.
 .It Fl u
 Operate in
 .Dq unsafe


--------------090303010908050807050105--

--------------ms000108050404060501050505
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIHhDCC
A74wggMnoAMCAQICAQMwDQYJKoZIhvcNAQEEBQAwgYwxCzAJBgNVBAYTAkRFMRAwDgYDVQQI
EwdHZXJtYW55MRIwEAYDVQQHEwlTcGVjaGJhY2gxEjAQBgNVBAoTCVRLLVNMUy5ERTELMAkG
A1UECxMCQ0ExFTATBgNVBAMTDFRpbG1hbiBLcmFuejEfMB0GCSqGSIb3DQEJARYQdGtyYW56
QHRrLXNscy5kZTAeFw0wNTExMjYyMDExMjVaFw0zMzA0MTMyMDExMjVaMIGYMQswCQYDVQQG
EwJERTEQMA4GA1UECBMHR2VybWFueTESMBAGA1UEBxMJU3BlY2hiYWNoMRIwEAYDVQQKEwlU
Sy1TTFMuREUxGDAWBgNVBAsTD1dvcmtzdGF0aW9uIFNMUzEUMBIGA1UEAxMLc2xzLnRoZWxh
aXIxHzAdBgkqhkiG9w0BCQEWEHRrcmFuekB0ay1zbHMuZGUwgZ8wDQYJKoZIhvcNAQEBBQAD
gY0AMIGJAoGBAL6UAV7dU/nSO+0vabwAy6PvQsapLJr2lbZQoznsaV0oe/Cng7MuPHCkV8eo
Uwk/DQ5bp8wECQTO6FRLulHlEUS597WzeKRExmDQ18vodwX+vahXXPw1dPeuZyEX4NegrioF
+qa2ibJZ8rMFJrpoavHcbvFV0JDr+6IuEoShnf1pAgMBAAGjggEgMIIBHDAJBgNVHRMEAjAA
MCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4E
FgQU1on5+dBff2+Ff2DBEHh0lRS6ztUwgcEGA1UdIwSBuTCBtoAUoi0btcwW3KEO+HcPvkby
sj8UeZOhgZKkgY8wgYwxCzAJBgNVBAYTAkRFMRAwDgYDVQQIEwdHZXJtYW55MRIwEAYDVQQH
EwlTcGVjaGJhY2gxEjAQBgNVBAoTCVRLLVNMUy5ERTELMAkGA1UECxMCQ0ExFTATBgNVBAMT
DFRpbG1hbiBLcmFuejEfMB0GCSqGSIb3DQEJARYQdGtyYW56QHRrLXNscy5kZYIJANHFK1sI
7xQRMA0GCSqGSIb3DQEBBAUAA4GBAHFhZlN2J+HRMmr99C3PU31433oI8R5KZVTK9UyDeLcX
BmOO1+YofV99OH5XGWMsNMQCAolBuy9+oU//IdOPeKM3214TpaHEtfZ6wQwmRbPhjCdaqtBD
E3B0AGL/4gRsNfLh4YRhAdVzTrySjmesvBk35VW/Ar8a23OtArgq/yzeMIIDvjCCAyegAwIB
AgIBAzANBgkqhkiG9w0BAQQFADCBjDELMAkGA1UEBhMCREUxEDAOBgNVBAgTB0dlcm1hbnkx
EjAQBgNVBAcTCVNwZWNoYmFjaDESMBAGA1UEChMJVEstU0xTLkRFMQswCQYDVQQLEwJDQTEV
MBMGA1UEAxMMVGlsbWFuIEtyYW56MR8wHQYJKoZIhvcNAQkBFhB0a3JhbnpAdGstc2xzLmRl
MB4XDTA1MTEyNjIwMTEyNVoXDTMzMDQxMzIwMTEyNVowgZgxCzAJBgNVBAYTAkRFMRAwDgYD
VQQIEwdHZXJtYW55MRIwEAYDVQQHEwlTcGVjaGJhY2gxEjAQBgNVBAoTCVRLLVNMUy5ERTEY
MBYGA1UECxMPV29ya3N0YXRpb24gU0xTMRQwEgYDVQQDEwtzbHMudGhlbGFpcjEfMB0GCSqG
SIb3DQEJARYQdGtyYW56QHRrLXNscy5kZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
vpQBXt1T+dI77S9pvADLo+9CxqksmvaVtlCjOexpXSh78KeDsy48cKRXx6hTCT8NDlunzAQJ
BM7oVEu6UeURRLn3tbN4pETGYNDXy+h3Bf69qFdc/DV0965nIRfg16CuKgX6praJslnyswUm
umhq8dxu8VXQkOv7oi4ShKGd/WkCAwEAAaOCASAwggEcMAkGA1UdEwQCMAAwLAYJYIZIAYb4
QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBTWifn50F9/
b4V/YMEQeHSVFLrO1TCBwQYDVR0jBIG5MIG2gBSiLRu1zBbcoQ74dw++RvKyPxR5k6GBkqSB
jzCBjDELMAkGA1UEBhMCREUxEDAOBgNVBAgTB0dlcm1hbnkxEjAQBgNVBAcTCVNwZWNoYmFj
aDESMBAGA1UEChMJVEstU0xTLkRFMQswCQYDVQQLEwJDQTEVMBMGA1UEAxMMVGlsbWFuIEty
YW56MR8wHQYJKoZIhvcNAQkBFhB0a3JhbnpAdGstc2xzLmRlggkA0cUrWwjvFBEwDQYJKoZI
hvcNAQEEBQADgYEAcWFmU3Yn4dEyav30Lc9TfXjfegjxHkplVMr1TIN4txcGY47X5ih9X304
flcZYyw0xAICiUG7L36hT/8h0494ozfbXhOlocS19nrBDCZFs+GMJ1qq0EMTcHQAYv/iBGw1
8uHhhGEB1XNOvJKOZ6y8GTflVb8Cvxrbc60CuCr/LN4xggM8MIIDOAIBATCBkjCBjDELMAkG
A1UEBhMCREUxEDAOBgNVBAgTB0dlcm1hbnkxEjAQBgNVBAcTCVNwZWNoYmFjaDESMBAGA1UE
ChMJVEstU0xTLkRFMQswCQYDVQQLEwJDQTEVMBMGA1UEAxMMVGlsbWFuIEtyYW56MR8wHQYJ
KoZIhvcNAQkBFhB0a3JhbnpAdGstc2xzLmRlAgEDMAkGBSsOAwIaBQCgggH/MBgGCSqGSIb3
DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTA2MDkxNzA4MzgyNVowIwYJKoZI
hvcNAQkEMRYEFE8wUNGVxjm5X5mIGVkeEs6zHm9tMFIGCSqGSIb3DQEJDzFFMEMwCgYIKoZI
hvcNAwcwDgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsOAwIHMA0GCCqGSIb3
DQMCAgEoMIGjBgkrBgEEAYI3EAQxgZUwgZIwgYwxCzAJBgNVBAYTAkRFMRAwDgYDVQQIEwdH
ZXJtYW55MRIwEAYDVQQHEwlTcGVjaGJhY2gxEjAQBgNVBAoTCVRLLVNMUy5ERTELMAkGA1UE
CxMCQ0ExFTATBgNVBAMTDFRpbG1hbiBLcmFuejEfMB0GCSqGSIb3DQEJARYQdGtyYW56QHRr
LXNscy5kZQIBAzCBpQYLKoZIhvcNAQkQAgsxgZWggZIwgYwxCzAJBgNVBAYTAkRFMRAwDgYD
VQQIEwdHZXJtYW55MRIwEAYDVQQHEwlTcGVjaGJhY2gxEjAQBgNVBAoTCVRLLVNMUy5ERTEL
MAkGA1UECxMCQ0ExFTATBgNVBAMTDFRpbG1hbiBLcmFuejEfMB0GCSqGSIb3DQEJARYQdGty
YW56QHRrLXNscy5kZQIBAzANBgkqhkiG9w0BAQEFAASBgDCjzAZo2siMb2zL4LNR/Q/yMh7A
OGgx5iUhXZzecFHCKN1m+sCxNn5wHY2/K4jUN4zfaNFvYmsic+uigSzNJKFrLeW5b6GJoaFq
KrU+Fm7N62Sgo04tZFgoj13leYA6XM8b0tCuNh4oDKpWT3Va9n3BtefK4V8hvZWSyrDT/qJG
AAAAAAAA
--------------ms000108050404060501050505--