|
@@ -1,6 +1,9 @@
|
|
|
/* Generate a file containing some preset patterns.
|
|
|
- Copyright © 1995, 1996, 1997 Free Software Foundation, Inc.
|
|
|
- François Pinard <pinard@iro.umontreal.ca>, 1995.
|
|
|
+
|
|
|
+ Copyright (C) 1995, 1996, 1997, 2001, 2003 Free Software
|
|
|
+ Foundation, Inc.
|
|
|
+
|
|
|
+ François Pinard <pinard@iro.umontreal.ca>, 1995.
|
|
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
|
it under the terms of the GNU General Public License as published by
|
|
@@ -19,6 +22,7 @@
|
|
|
|
|
|
#include "system.h"
|
|
|
|
|
|
+#include <argmatch.h>
|
|
|
#include <getopt.h>
|
|
|
|
|
|
#ifndef EXIT_SUCCESS
|
|
@@ -30,8 +34,8 @@
|
|
|
|
|
|
enum pattern
|
|
|
{
|
|
|
- DEFAULT,
|
|
|
- ZEROS
|
|
|
+ DEFAULT_PATTERN,
|
|
|
+ ZEROS_PATTERN
|
|
|
};
|
|
|
|
|
|
/* The name this program was run with. */
|
|
@@ -47,12 +51,9 @@ static int show_version = 0;
|
|
|
static int file_length = 0;
|
|
|
|
|
|
/* Pattern to generate. */
|
|
|
-static enum pattern pattern = DEFAULT;
|
|
|
-
|
|
|
-/*-----------------------------------------------.
|
|
|
-| Explain how to use the program, then get out. |
|
|
|
-`-----------------------------------------------*/
|
|
|
+static enum pattern pattern = DEFAULT_PATTERN;
|
|
|
|
|
|
+/* Explain how to use the program, then get out. */
|
|
|
void
|
|
|
usage (int status)
|
|
|
{
|
|
@@ -78,10 +79,8 @@ for the equivalent short option also.\n\
|
|
|
exit (status);
|
|
|
}
|
|
|
|
|
|
-/*----------------------------------------------------------------------.
|
|
|
-| Main program. Decode ARGC arguments passed through the ARGV array of |
|
|
|
-| strings, then launch execution. |
|
|
|
-`----------------------------------------------------------------------*/
|
|
|
+/* Main program. Decode ARGC arguments passed through the ARGV array
|
|
|
+ of strings, then launch execution. */
|
|
|
|
|
|
/* Long options equivalences. */
|
|
|
static const struct option long_options[] =
|
|
@@ -93,13 +92,8 @@ static const struct option long_options[] =
|
|
|
{0, 0, 0, 0},
|
|
|
};
|
|
|
|
|
|
-
|
|
|
-const char *pattern_strings[] =
|
|
|
-{
|
|
|
- "default", /* 0 */
|
|
|
- "zeros", /* 1 */
|
|
|
- NULL
|
|
|
-};
|
|
|
+static char const * const pattern_args[] = { "default", "zeros", 0 };
|
|
|
+static enum pattern const pattern_types[] = {DEFAULT_PATTERN, ZEROS_PATTERN};
|
|
|
|
|
|
int
|
|
|
main (int argc, char *const *argv)
|
|
@@ -127,25 +121,8 @@ main (int argc, char *const *argv)
|
|
|
break;
|
|
|
|
|
|
case 'p':
|
|
|
- switch (argmatch (optarg, pattern_strings))
|
|
|
- {
|
|
|
-
|
|
|
- case -2:
|
|
|
- error (0, 0, _("Ambiguous pattern `%s'"), optarg);
|
|
|
- usage (EXIT_FAILURE);
|
|
|
-
|
|
|
- case -1:
|
|
|
- error (0, 0, _("Unknown pattern `%s'"), optarg);
|
|
|
- usage (EXIT_FAILURE);
|
|
|
-
|
|
|
- case 0:
|
|
|
- pattern = DEFAULT;
|
|
|
- break;
|
|
|
-
|
|
|
- case 1:
|
|
|
- pattern = ZEROS;
|
|
|
- break;
|
|
|
- }
|
|
|
+ pattern = XARGMATCH ("--pattern", optarg,
|
|
|
+ pattern_args, pattern_types);
|
|
|
break;
|
|
|
}
|
|
|
|
|
@@ -154,18 +131,17 @@ main (int argc, char *const *argv)
|
|
|
if (show_version)
|
|
|
{
|
|
|
printf ("genfile (GNU %s) %s\n", PACKAGE, VERSION);
|
|
|
- fputs (_("\
|
|
|
-\n\
|
|
|
-Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.\n"),
|
|
|
- stdout);
|
|
|
- fputs (_("\
|
|
|
-This is free software; see the source for copying conditions. There is NO\n\
|
|
|
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"),
|
|
|
- stdout);
|
|
|
- fputs (_("\
|
|
|
-\n\
|
|
|
-Written by François Pinard <pinard@iro.umontreal.ca>.\n"),
|
|
|
- stdout);
|
|
|
+ printf (_("Copyright (C) %d Free Software Foundation, Inc.\n"), 2003);
|
|
|
+ puts (_("\
|
|
|
+This program comes with NO WARRANTY, to the extent permitted by law.\n\
|
|
|
+You may redistribute it under the terms of the GNU General Public License;\n\
|
|
|
+see the file named COPYING for details."));
|
|
|
+
|
|
|
+ /* Note to translator: Please translate "F. Pinard" to "François
|
|
|
+ Pinard" if "ç" (c-with-cedilla) is available in the
|
|
|
+ translation's character set and encoding. */
|
|
|
+ puts (_("Written by F. Pinard."));
|
|
|
+
|
|
|
exit (EXIT_SUCCESS);
|
|
|
}
|
|
|
|
|
@@ -179,12 +155,12 @@ Written by Fran
|
|
|
|
|
|
switch (pattern)
|
|
|
{
|
|
|
- case DEFAULT:
|
|
|
+ case DEFAULT_PATTERN:
|
|
|
for (counter = 0; counter < file_length; counter++)
|
|
|
putchar (counter & 255);
|
|
|
break;
|
|
|
|
|
|
- case ZEROS:
|
|
|
+ case ZEROS_PATTERN:
|
|
|
for (counter = 0; counter < file_length; counter++)
|
|
|
putchar (0);
|
|
|
break;
|