rem: exit (problems != 0);
add: exit (ok ? EXIT_SUCCESS : EXIT_FAILURE);
context: main (int argc, char **argv){  int optc;  /* If nonzero, output the list of all group IDs. -G */  int just_group_list = 0;  /* If nonzero, output only the group ID(s). -g */  int just_group = 0;  /* If nonzero, output real UID/GID instead of default effective UID/GID. -r */  int use_real = 0;  /* If nonzero, output only the user ID(s). -u */  int just_user = 0;  program_name = argv[0];  setlocale (LC_ALL, "");  bindtextdomain (PACKAGE, LOCALEDIR);  textdomain (PACKAGE);  atexit (close_stdout);  while ((optc = getopt_long (argc, argv, "agnruG", longopts, NULL)) != -1)    {      switch (optc)	{	case 0:	  break;	case 'a':	  /* Ignore -a, for compatibility with SVR4.  */	  break;	case 'g':	  just_group = 1;	  break;	case 'n':	  use_name = 1;	  break;	case 'r':	  use_real = 1;	  break;	case 'u':	  just_user = 1;	  break;	case 'G':	  just_group_list = 1;	  break;	case_GETOPT_HELP_CHAR;	case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS);	default:	  usage (EXIT_FAILURE);	}    }  if (just_user + just_group + just_group_list > 1)    error (EXIT_FAILURE, 0, _("cannot print only user and only group"));  if (just_user + just_group + just_group_list == 0 && (use_real || use_name))    error (EXIT_FAILURE, 0,	   _("cannot print only names or real IDs in default format"));  if (argc - optind > 1)    usage (EXIT_FAILURE);  if (argc - optind == 1)    {      struct passwd *pwd = getpwnam (argv[optind]);      if (pwd == NULL)	error (EXIT_FAILURE, 0, _("%s: No such user"), argv[optind]);      ruid = euid = pwd->pw_uid;      rgid = egid = pwd->pw_gid;    }  else    {      euid = geteuid ();      ruid = getuid ();      egid = getegid ();      rgid = getgid ();    }  if (just_user)    print_user (use_real ? ruid : euid);  else if (just_group)    print_group (use_real ? rgid : egid);  else if (just_group_list)    print_group_list (argv[optind]);  else    print_full_info (argv[optind]);  putchar ('\n');  exit (problems != 0);}