From b6b1220e381f37313983becedd054f288b95ba47 Mon Sep 17 00:00:00 2001 From: Igor Sobrado Date: Sat, 5 Jul 2008 20:59:43 +0000 Subject: each utility must have its own usage and its own set of options; b64encode and b64decode are equivalent to running uuencode and uudecode respectively with the -m flag specified, so this flag should not be available in these utilities; while here, fix synopsis. based on millert's diff for compress/gzip. ok millert@ --- usr.bin/uuencode/uuencode.1 | 6 ++++-- usr.bin/uuencode/uuencode.c | 46 +++++++++++++++++++++++++++++++-------------- 2 files changed, 36 insertions(+), 16 deletions(-) (limited to 'usr.bin/uuencode') diff --git a/usr.bin/uuencode/uuencode.1 b/usr.bin/uuencode/uuencode.1 index 4df67a76913..5ff4ca04efd 100644 --- a/usr.bin/uuencode/uuencode.1 +++ b/usr.bin/uuencode/uuencode.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: uuencode.1,v 1.18 2007/05/31 19:20:19 jmc Exp $ +.\" $OpenBSD: uuencode.1,v 1.19 2008/07/05 20:59:42 sobrado Exp $ .\" $FreeBSD: uuencode.1,v 1.26 2003/03/18 14:24:47 fanf Exp $ .\" .\" Copyright (c) 1980, 1990, 1993 @@ -31,7 +31,7 @@ .\" @(#)uuencode.1 8.1 (Berkeley) 6/6/93 .\" $FreeBSD$ .\" -.Dd $Mdocdate: May 31 2007 $ +.Dd $Mdocdate: July 5 2008 $ .Dt UUENCODE 1 .Os .Sh NAME @@ -52,6 +52,8 @@ .Nm uudecode .Op Fl i .Fl o Ar output_file +.Op Ar file +.Pp .Nm b64encode .Op Fl o Ar output_file .Op Ar file diff --git a/usr.bin/uuencode/uuencode.c b/usr.bin/uuencode/uuencode.c index 4bedc535796..414c9dbf43d 100644 --- a/usr.bin/uuencode/uuencode.c +++ b/usr.bin/uuencode/uuencode.c @@ -1,4 +1,4 @@ -/* $OpenBSD: uuencode.c,v 1.7 2004/04/09 22:54:02 millert Exp $ */ +/* $OpenBSD: uuencode.c,v 1.8 2008/07/05 20:59:42 sobrado Exp $ */ /* $FreeBSD: uuencode.c,v 1.18 2004/01/22 07:23:35 grehan Exp $ */ /*- @@ -40,7 +40,7 @@ static const char copyright[] = #if 0 static const char sccsid[] = "@(#)uuencode.c 8.2 (Berkeley) 4/2/94"; #endif -static const char rcsid[] = "$OpenBSD: uuencode.c,v 1.7 2004/04/09 22:54:02 millert Exp $"; +static const char rcsid[] = "$OpenBSD: uuencode.c,v 1.8 2008/07/05 20:59:42 sobrado Exp $"; #endif /* not lint */ /* @@ -63,29 +63,40 @@ static const char rcsid[] = "$OpenBSD: uuencode.c,v 1.7 2004/04/09 22:54:02 mill void encode(void); void base64_encode(void); -static void usage(void); +static void usage(int); FILE *output; int mode; char **av; +/* + * program modes + */ +#define MODE_ENCODE 0 +#define MODE_B64ENCODE 1 + int main(int argc, char *argv[]) { struct stat sb; - int base64; - int ch; + int base64, ch, mode; char *outfile; extern char *__progname; + static const char *optstr[2] = { + "mo:", + "o:" + }; - base64 = 0; + base64 = mode = 0; outfile = NULL; - if (strcmp(__progname, "b64encode") == 0) + if (strcmp(__progname, "b64encode") == 0) { base64 = 1; + mode = MODE_B64ENCODE; + } setlocale(LC_ALL, ""); - while ((ch = getopt(argc, argv, "mo:")) != -1) { + while ((ch = getopt(argc, argv, optstr[mode])) != -1) { switch (ch) { case 'm': base64 = 1; @@ -95,7 +106,7 @@ main(int argc, char *argv[]) break; case '?': default: - usage(); + usage(mode); } } argv += optind; @@ -115,7 +126,7 @@ main(int argc, char *argv[]) break; case 0: default: - usage(); + usage(mode); } av = argv; @@ -216,10 +227,17 @@ encode(void) } static void -usage(void) +usage(int mode) { - (void)fprintf(stderr, - "usage: uuencode [-m] [-o outfile] [infile] remotefile\n" - " b64encode [-o outfile] [infile] remotefile\n"); + switch (mode) { + case MODE_ENCODE: + (void)fprintf(stderr, + "usage: uuencode [-m] [-o output_file] [file] name\n"); + break; + case MODE_B64ENCODE: + (void)fprintf(stderr, + "usage: b64encode [-o output_file] [file] name\n"); + break; + } exit(1); } -- cgit v1.2.3