usage (EXIT_FAILURE);
argp_help (&argp, stdout, ARGP_HELP_SEE, program_invocation_short_name);
main (argc, argv)     int argc;     char *argv[];{  const char *output_name;  const char *input_name;  FILE *input_file;  DB *db_file;  int do_help;  int do_version;  int to_lowercase;  int do_undo;  int be_quiet;  int status;  int opt;  /* Set locale via LC_ALL.  */  setlocale (LC_ALL, "");  /* Set the text message domain.  */  textdomain (_libc_intl_domainname);  /* Initialize local variables.  */  do_help = 0;  do_version = 0;  to_lowercase = 0;  do_undo = 0;  be_quiet = 0;  output_name = NULL;  while ((opt = getopt_long (argc, argv, "fho:uV", long_options, NULL)) != -1)    switch (opt)      {      case '\0':        /* Long option.  */        break;      case 'h':        do_help = 1;        break;      case 'f':	to_lowercase = 1;	break;      case 'o':        output_name = optarg;        break;      case 'q':	be_quiet = 1;	break;      case 'u':	do_undo = 1;	break;      case 'V':        do_version = 1;        break;      default:        usage (EXIT_FAILURE);      }  /* Version information is requested.  */  if (do_version)    {      printf ("makedb (GNU %s) %s\n", PACKAGE, VERSION);      printf (_("\Copyright (C) %s Free Software Foundation, Inc.\n\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\"), "1996, 1997");      printf (_("Written by %s.\n"), "Ulrich Drepper");      exit (EXIT_SUCCESS);    }  /* Help is requested.  */  if (do_help)    usage (EXIT_SUCCESS);  else if (do_version)    exit (EXIT_SUCCESS);  /* Determine file names.  */  if (do_undo || output_name != NULL)    {      if (optind + 1 != argc)	{	wrong_arguments:	  error (0, 0, gettext ("wrong number of arguments"));	  usage (EXIT_FAILURE);	}      input_name = argv[optind];    }  else    {      if (optind + 2 != argc)	goto wrong_arguments;      input_name = argv[optind++];      output_name = argv[optind];    }  /* Special handling if we are asked to print the database.  */  if (do_undo)    {      db_file = dbopen (input_name, O_RDONLY, 0666, DB_BTREE, NULL);      if (db_file == NULL)	error (EXIT_FAILURE, 0, gettext ("cannot open database file `%s': %s"),	       input_name,	       errno == EFTYPE ? gettext ("incorrectly formatted file")			       : strerror (errno));      status = print_database (db_file);      db_file->close (db_file);      return status;    }  /* Open input file.  */  if (strcmp (input_name, "-") == 0 || strcmp (input_name, "/dev/stdin") == 0)    input_file = stdin;  else    {      input_file = fopen (input_name, "r");      if (input_file == NULL)	error (EXIT_FAILURE, errno, gettext ("cannot open input file `%s'"),	       input_name);    }  /* Open output file.  This must not be standard output so we don't     handle "-" and "/dev/stdout" special.  */  db_file = dbopen (output_name, O_CREAT | O_RDWR | O_TRUNC, 0666,		    DB_BTREE, NULL);  if (db_file == NULL)    error (EXIT_FAILURE, errno, gettext ("cannot open output file `%s'"));  /* Start the real work.  */  status = process_input (input_file, input_name, db_file, to_lowercase,			  be_quiet);  /* Close files.  */  if (input_file != stdin)    fclose (input_file);  db_file->close (db_file);  return status;}