if (warning_cntr == 0 || force_output != 0)
if (error_message_count == 0 || force_output != 0)
main(int argc, char *argv[]){  int optchar;  int cannot_write;  int do_help = 0;  int do_version = 0;  /* Set initial values for global varaibles.  */  charmap_file = NULL;  force_output = 0;  input_file = 0;  posix_conformance = getenv ("POSIXLY_CORRECT") != NULL;  verbose = 0;  /* Set locale.  Do not set LC_ALL because the other categories must     not be affected (acccording to POSIX.2).  */  setlocale (LC_MESSAGES, "");  setlocale (LC_CTYPE, "");  /* Initialize the message catalog.  */  textdomain (PACKAGE);  while ((optchar = getopt_long (argc, argv, "cdf:hi:vV", long_options, NULL))	 != EOF)    switch (optchar)      {      case '\0':	break;      case 'c':	force_output = 1;	break;      case 'f':	if (charmap_file != NULL)	  error (0, 0, gettext ("\"%s %s\" overwrites old option \"%s\""),		 "-f", optarg, charmap_file);	charmap_file = optarg;	break;      case 'h':	do_help = 1;	break;      case 'i':	if (input_file != NULL)	  error (0, 0, gettext ("\"%s %s\" overwrites old option \"%s\""),		 "-i", optarg, input_file);	input_file = optarg;	break;      case 'v':	verbose = 1;	break;      case 'V':	do_version = 1;	break;      default:	usage (4);	break;      }  /* POSIX.2 requires to be verbose about missing characters in the     character map.  */  verbose |= posix_conformance;  /* Version information is requested.  */  if (do_version)    {      fprintf (stderr, "GNU %s %s\n", PACKAGE, VERSION);      exit (EXIT_SUCCESS);    }  /* Help is requested.  */  if (do_help)    usage (0);  if (argc - optind != 1)    /* We need exactly one non-option parameter.  */    usage (4);  /* The parameter describes the output path of the constructed files.     If the files cannot be written return a non-zero value.  */  cannot_write = construct_output_path (argv[optind]);  /* Now that the parameters are processed we have to reset the local     ctype locale.  (POSIX.2 4.35.5.2)  */  setlocale (LC_CTYPE, "POSIX");  /* Look whether the system really allows locale definitions.  */  if (sysconf (_SC_2_LOCALEDEF) < 0)    error (3, 0,	   gettext ("warning: system does not define `_POSIX2_LOCALEDEF'"));  /* Process charmap file.  */  charmap_read (charmap_file);  /* Now read the locale file.  */  locfile_read (input_file);  /* Check all categories for consistency.  */  categories_check ();  /* We are now able to write the data files.  If warning were given we     do it only if it is explicitly requested (--force).  */  if (warning_cntr == 0 || force_output != 0)    if (cannot_write != 0)      error (0, 0, gettext ("cannot write output file `%s': %s"),	     output_path, strerror (cannot_write));    else      categories_write ();  else    error (0, 0,	   gettext ("no output file produced because warning were issued"));  exit (EXIT_SUCCESS);}