rem: exit (errors);
add: exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
context: main (int argc, char **argv){  uid_t uid = (uid_t) -1;	/* New uid; -1 if not to be changed. */  gid_t gid = (uid_t) -1;	/* New gid; -1 if not to be changed. */  uid_t old_uid = (uid_t) -1;	/* Old uid; -1 if unrestricted. */  gid_t old_gid = (uid_t) -1;	/* Old gid; -1 if unrestricted. */  struct Chown_option chopt;  int errors = 0;  int optc;  program_name = argv[0];  setlocale (LC_ALL, "");  bindtextdomain (PACKAGE, LOCALEDIR);  textdomain (PACKAGE);  atexit (close_stdout);  chopt_init (&chopt);  while ((optc = getopt_long (argc, argv, "Rcfhv", long_options, NULL)) != -1)    {      switch (optc)	{	case 0:	  break;	case REFERENCE_FILE_OPTION:	  reference_file = optarg;	  break;	case DEREFERENCE_OPTION:	  chopt.dereference = DEREF_ALWAYS;	  break;	case FROM_OPTION:	  {	    char *u_dummy, *g_dummy;	    const char *e = parse_user_spec (optarg,					     &old_uid, &old_gid,					     &u_dummy, &g_dummy);	    if (e)	      error (EXIT_FAILURE, 0, "%s: %s", quote (optarg), e);	    break;	  }	case 'R':	  chopt.recurse = 1;	  break;	case 'c':	  chopt.verbosity = V_changes_only;	  break;	case 'f':	  chopt.force_silent = 1;	  break;	case 'h':	  chopt.dereference = DEREF_NEVER;	  break;	case 'v':	  chopt.verbosity = V_high;	  break;	case_GETOPT_HELP_CHAR;	case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS);	default:	  usage (EXIT_FAILURE);	}    }  if (argc - optind + (reference_file ? 1 : 0) <= 1)    {      error (0, 0, _("too few arguments"));      usage (EXIT_FAILURE);    }  if (reference_file)    {      struct stat ref_stats;      if (stat (reference_file, &ref_stats))	error (EXIT_FAILURE, errno, _("failed to get attributes of %s"),	       quote (reference_file));      uid = ref_stats.st_uid;      gid = ref_stats.st_gid;      chopt.user_name = uid_to_name (ref_stats.st_uid);      chopt.group_name = gid_to_name (ref_stats.st_gid);    }  else    {      const char *e = parse_user_spec (argv[optind], &uid, &gid,				       &chopt.user_name, &chopt.group_name);      if (e)        error (EXIT_FAILURE, 0, "%s: %s", quote (argv[optind]), e);      /* FIXME: set it to the empty string?  */      if (chopt.user_name == NULL)        chopt.user_name = "";      optind++;    }  for (; optind < argc; ++optind)    errors |= change_file_owner (1, argv[optind], uid, gid,				 old_uid, old_gid, &chopt);  chopt_free (&chopt);  exit (errors);}