bin/123329: [patch] usage strings for fifolog_create(1) and fifolog_writer(1)

Jaakko Heinonen jh at saunalahti.fi
Fri May 2 14:10:01 UTC 2008


>Number:         123329
>Category:       bin
>Synopsis:       [patch] usage strings for fifolog_create(1) and fifolog_writer(1)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri May 02 14:10:00 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Jaakko Heinonen
>Release:        FreeBSD 8.0-CURRENT i386
>Organization:
>Environment:
System: FreeBSD x 8.0-CURRENT FreeBSD 8.0-CURRENT #0: Thu May 1 15:28:32 EEST 2008 x i386


	
>Description:
fifolog_create(1) and fifolog_writer(1) print empty usage strings if they
are invoked without parameters.
>How-To-Repeat:
$ fifolog_create
fifolog_create: Usage
$ fifolog_writer
fifolog_writer: Usage
$ fifolog_reader
>From    0 Thu Jan  1 02:00:00 1970
To      1209736020 Fri May  2 16:47:00 2008
fifolog_reader: Usage: fifolog_reader [options] fifolog


After applying the patch:

$ fifolog_create
Usage: fifolog_create [-l record-size] [-r record-count] [-s size] file
$ fifolog_writer
Usage: fifolog_writer [-w write-rate] [-s sync-rate] [-z compression] file
$ fifolog_reader
Usage: fiforead [options] fifofile
        -b <start time integer>
        -B <start time>
        -e <end time integer>
        -E <end time>
        -o <output file>
        -R <regexp> # match regexp
        -t # format timestamps as %Y%m%d%H%M%S
        -T <timestamp format>


>Fix:
This patch also changes them to return EX_USAGE when usage is displayed and
fifolog_reader doesn't display times when argv[0] == NULL.


--- fifolog-usage.diff begins here ---
Index: fifolog_create/fifolog_create.c
===================================================================
RCS file: /home/ncvs/src/usr.sbin/fifolog/fifolog_create/fifolog_create.c,v
retrieving revision 1.1
diff -p -u -r1.1 fifolog_create.c
--- fifolog_create/fifolog_create.c	9 Mar 2008 19:14:36 -0000	1.1
+++ fifolog_create/fifolog_create.c	2 May 2008 13:50:14 -0000
@@ -27,6 +27,8 @@
  */
 
 #include <stdio.h>
+#include <stdlib.h>
+#include <sysexits.h>
 #include <unistd.h>
 #include <err.h>
 #include <libutil.h>
@@ -36,6 +38,14 @@
 #define DEF_RECSIZE	512
 #define DEF_RECCNT	(24 * 60 * 60)
 
+static void
+usage(void)
+{
+	fprintf(stderr, "Usage: fifolog_create [-l record-size] "
+	    "[-r record-count] [-s size] file\n");
+	exit(EX_USAGE);
+}
+
 int
 main(int argc, char * const *argv)
 {
@@ -63,13 +73,13 @@ main(int argc, char * const *argv)
 				err(1, "Couldn't parse -s argument");
 			break;
 		default:
-			errx(1, "Usage");
+			usage();
 		}
 	}
 	argc -= optind;
 	argv += optind;
 	if (argc != 1) 
-		errx(1, "Usage");
+		usage();
 
 	if (size != 0 && reccnt != 0 && recsize != 0) {		/* N N N */
 		if (size !=  reccnt * recsize) 
Index: fifolog_reader/fifolog_reader.c
===================================================================
RCS file: /home/ncvs/src/usr.sbin/fifolog/fifolog_reader/fifolog_reader.c,v
retrieving revision 1.2
diff -p -u -r1.2 fifolog_reader.c
--- fifolog_reader/fifolog_reader.c	31 Mar 2008 13:56:15 -0000	1.2
+++ fifolog_reader/fifolog_reader.c	2 May 2008 13:50:14 -0000
@@ -33,6 +33,7 @@
 #include <time.h>
 #include <string.h>
 #include <stdlib.h>
+#include <sysexits.h>
 #include <regex.h>
 
 #include "libfifolog.h"
@@ -87,7 +88,7 @@ Usage(void)
 		"\t-t # format timestamps as %%Y%%m%%d%%H%%M%%S\n"
 		"\t-T <timestamp format>\n"
 	);
-	exit (2);
+	exit (EX_USAGE);
 }
 
 int
@@ -149,13 +150,14 @@ main(int argc, char * const *argv)
 		}
 	}
 
+	if (argv[0] == NULL)
+		Usage();
+
 	fprintf(stderr, "From\t%jd %s", (intmax_t)opt_B, ctime(&opt_B));
 	fprintf(stderr, "To\t%jd %s", (intmax_t)opt_E, ctime(&opt_E));
 	if (opt_B >= opt_E)
 		errx(1, "Begin time not before End time");
 
-	if (argv[0] == NULL)
-		errx(1, "Usage: %s [options] fifolog", progname);
 	fl = fifolog_reader_open(argv[0]);
 	
 	if (!strcmp(opt_o, "-"))
Index: fifolog_writer/fifolog_writer.c
===================================================================
RCS file: /home/ncvs/src/usr.sbin/fifolog/fifolog_writer/fifolog_writer.c,v
retrieving revision 1.1
diff -p -u -r1.1 fifolog_writer.c
--- fifolog_writer/fifolog_writer.c	9 Mar 2008 19:14:36 -0000	1.1
+++ fifolog_writer/fifolog_writer.c	2 May 2008 13:50:14 -0000
@@ -28,6 +28,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <sysexits.h>
 #include <err.h>
 #include <unistd.h>
 #include <ctype.h>
@@ -38,6 +39,14 @@
 
 #include "libfifolog.h"
 
+static void
+usage(void)
+{
+	fprintf(stderr, "Usage: fifolog_writer [-w write-rate] [-s sync-rate] "
+	    "[-z compression] file\n");
+	exit(EX_USAGE);
+}
+
 int
 main(int argc, char * const *argv)
 {
@@ -62,19 +71,19 @@ main(int argc, char * const *argv)
 			z_opt = strtoul(optarg, NULL, 0);
 			break;
 		default:
-			errx(1, "Usage");
+			usage();
 		}
 	}
 	argc -= optind;
 	argv += optind;
 	if (argc != 1) 
-		errx(1, "Usage");
+		usage();
 
 	if (z_opt > 9)
-		errx(1, "Usage");
+		usage();
 
 	if (w_opt > s_opt)
-		errx(1, "Usage");
+		usage();
 
 	f = fifolog_write_new();
 	assert(f != NULL);
--- fifolog-usage.diff ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list