if (load_db ())
if (load_db () != NSS_STATUS_SUCCESS)
main (int argc, char *argv[]){  const char *input_name;  FILE *input_file;  NSS_DB *db_file;  int status;  int remaining;  int mode = 0666;  /* Set locale via LC_ALL.  */  setlocale (LC_ALL, "");  /* Set the text message domain.  */  textdomain (_libc_intl_domainname);  /* Initialize local variables.  */  input_name = NULL;  /* Parse and process arguments.  */  argp_parse (&argp, argc, argv, 0, &remaining, NULL);  /* Determine file names.  */  if (do_undo || output_name != NULL)    {      if (remaining + 1 != argc)	{	wrong_arguments:	  error (0, 0, gettext ("wrong number of arguments"));	  argp_help (&argp, stdout, ARGP_HELP_SEE,		     program_invocation_short_name);	  exit (1);	}      input_name = argv[remaining];    }  else    {      if (remaining + 2 != argc)	goto wrong_arguments;      input_name = argv[remaining++];      output_name = argv[remaining];    }  /* First load the shared object to initialize version dependend     variables.  */  if (load_db ())    error (EXIT_FAILURE, 0, gettext ("No usable database library found."));  /* Special handling if we are asked to print the database.  */  if (do_undo)    {      dbopen (input_name, db_rdonly, 0666, &db_file);      if (db_file == NULL)	error (EXIT_FAILURE, 0, gettext ("cannot open database file `%s': %s"),	       input_name,	       (errno == EINVAL ? gettext ("incorrectly formatted file")		: strerror (errno)));      status = print_database (db_file);      db_file->close (db_file->db, 0);      return status;    }  /* Open input file.  */  if (strcmp (input_name, "-") == 0 || strcmp (input_name, "/dev/stdin") == 0)    input_file = stdin;  else    {      struct stat st;      input_file = fopen (input_name, "r");      if (input_file == NULL)	error (EXIT_FAILURE, errno, gettext ("cannot open input file `%s'"),	       input_name);      /* Get the access rights from the source file.  The output file should	 have the same.  */      if (fstat (fileno (input_file), &st) >= 0)	mode = st.st_mode & ACCESSPERMS;    }  /* Open output file.  This must not be standard output so we don't     handle "-" and "/dev/stdout" special.  */  dbopen (output_name, DB_CREATE | db_truncate, mode, &db_file);  if (db_file == NULL)    error (EXIT_FAILURE, errno, gettext ("cannot open output file `%s'"),	   output_name);  /* 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->db, 0);  return status;}