Summary: | md5(1) does not use getopt(3) | ||||||
---|---|---|---|---|---|---|---|
Product: | Base System | Reporter: | mph <mph> | ||||
Component: | bin | Assignee: | Steve Price <steve> | ||||
Status: | Closed FIXED | ||||||
Severity: | Affects Only Me | ||||||
Priority: | Normal | ||||||
Version: | 2.2.5-STABLE | ||||||
Hardware: | Any | ||||||
OS: | Any | ||||||
Attachments: |
|
Description
mph
1997-12-28 07:00:01 UTC
Matthew Hunt <mph@pobox.com> writes: > +static void > +usage(void) > +{ > + (void)fprintf(stderr, > + "usage: md5 [-p] [-t] [-x] [-s string] [filename(s)]\n"); "usage: md5 [-ptx] [-s string] [file ...]\n"); See style(9) or as an example the cat(1) manpage. Wolfram On Sun, Dec 28, 1997 at 12:48:33PM +0100, Wolfram Schneider wrote:
> See style(9) or as an example the cat(1) manpage.
Mea culpa. Attached is a new diff that should be conformant. I have
likewise changed the man page to appear more like the others.
diff -Nru /usr/src/sbin/md5/md5.1 md5/md5.1
--- /usr/src/sbin/md5/md5.1 Sat Sep 6 12:25:42 1997
+++ md5/md5.1 Sun Dec 28 19:00:56 1997
@@ -6,11 +6,9 @@
.Nd calculate a message-digest fingerprint (checksum) for a file
.Sh SYNOPSIS
.Nm
-.Op Fl p
-.Op Fl t
-.Op Fl x
-.Op Fl s Ns Ar string
-.Op Ar filename Ns Pq s
+.Op Fl ptx
+.Op Fl s Ar string
+.Op Ar file ...
.Sh DESCRIPTION
.Nm
takes as input a message of arbitrary length and produces
@@ -29,12 +27,12 @@
key under a public-key cryptosystem such as
.Em RSA .
.Pp
-The following four options may be used in any combination, except
-that
-.Ar filename Ns Pq s
-must be the last objects on the command line.
+The following four options may be used in any combination and must
+precede any files named on the command line. The MD5
+sum of each file listed on the command line is printed after the options
+are processed.
.Bl -tag -width Fl
-.It Fl s Ns Ar string
+.It Fl s Ar string
prints a checksum of the given
.Dq string .
.It Fl p
@@ -43,10 +41,6 @@
runs a built-in time trial.
.It Fl x
runs a built-in test script.
-.It Ar filename Ns Pq s
-prints a checksum
-.Pq s
-for each of the files.
.El
.Sh SEE ALSO
.Xr cksum 1
diff -Nru /usr/src/sbin/md5/md5.c md5/md5.c
--- /usr/src/sbin/md5/md5.c Sat Sep 6 12:25:42 1997
+++ md5/md5.c Sun Dec 28 18:53:10 1997
@@ -40,6 +40,7 @@
static void MDTimeTrial PROTO_LIST((void));
static void MDTestSuite PROTO_LIST((void));
static void MDFilter PROTO_LIST((int));
+static void usage PROTO_LIST((void));
/* Main driver.
@@ -58,25 +59,38 @@
int i;
char *p;
char buf[33];
+ extern char *optarg;
+ extern int optind;
- if (argc > 1)
- for (i = 1; i < argc; i++)
- if (argv[i][0] == '-' && argv[i][1] == 's')
- MDString(argv[i] + 2);
- else if (strcmp(argv[i], "-t") == 0)
+ if (argc > 1) {
+ while ((i = getopt(argc, argv, "s:tpx")) != EOF) {
+ switch(i) {
+ case 's':
+ MDString(optarg);
+ break;
+ case 't':
MDTimeTrial();
- else if (strcmp(argv[i], "-p") == 0)
+ break;
+ case 'p':
MDFilter(1);
- else if (strcmp(argv[i], "-x") == 0)
+ break;
+ case 'x':
MDTestSuite();
- else {
- p = MD5File(argv[i],buf);
- if (!p)
- perror(argv[i]);
- else
- printf("MD5 (%s) = %s\n", argv[i], p);
+ break;
+ default:
+ usage();
}
- else
+ }
+
+ while (optind < argc) {
+ p = MD5File(argv[optind],buf);
+ if (!p)
+ perror(argv[optind]);
+ else
+ printf("MD5 (%s) = %s\n", argv[optind], p);
+ optind++;
+ }
+ } else
MDFilter(0);
return (0);
@@ -174,4 +188,16 @@
MD5Update(&context, buffer, len);
}
printf("%s\n", MD5End(&context,buf));
+}
+
+/*
+ * Displays a usage summary.
+ */
+
+static void
+usage(void)
+{
+ (void)fprintf(stderr,
+ "usage: md5 [-ptx] [-s string] [file ...]\n");
+ exit(1);
}
State Changed From-To: open->closed Slightly modified patch applied to revision 1.5 of md5.1 and revision 1.10 of md5.c. Thanks. |