rem: error (EXIT_FAILURE, 0, _("incorrect password"));
add: error (EXIT_FAIL, 0, _("incorrect password"));
context: main (int argc, char **argv){  int optc;  const char *new_user = DEFAULT_USER;  char *command = 0;  char **additional_args = 0;  char *shell = 0;  struct passwd *pw;  struct passwd pw_copy;  program_name = argv[0];  setlocale (LC_ALL, "");  bindtextdomain (PACKAGE, LOCALEDIR);  textdomain (PACKAGE);  fast_startup = 0;  simulate_login = 0;  change_environment = 1;  while ((optc = getopt_long (argc, argv, "c:flmps:", longopts, NULL)) != -1)    {      switch (optc)	{	case 0:	  break;	case 'c':	  command = optarg;	  break;	case 'f':	  fast_startup = 1;	  break;	case 'l':	  simulate_login = 1;	  break;	case 'm':	case 'p':	  change_environment = 0;	  break;	case 's':	  shell = optarg;	  break;	case_GETOPT_HELP_CHAR;	case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS);	default:	  usage (EXIT_FAILURE);	}    }  if (optind < argc && !strcmp (argv[optind], "-"))    {      simulate_login = 1;      ++optind;    }  if (optind < argc)    new_user = argv[optind++];  if (optind < argc)    additional_args = argv + optind;  pw = getpwnam (new_user);  if (pw == 0)    error (EXIT_FAILURE, 0, _("user %s does not exist"), new_user);  endpwent ();  /* Make sure pw->pw_shell is non-NULL.  It may be NULL when NEW_USER     is a username that is retrieved via NIS (YP), but that doesn't have     a default shell listed.  */  if (pw->pw_shell == NULL || pw->pw_shell[0] == '\0')    pw->pw_shell = (char *) DEFAULT_SHELL;  /* Make a copy of the password information and point pw at the local     copy instead.  Otherwise, some systems (e.g. Linux) would clobber     the static data through the getlogin call from log_su.  */  pw_copy = *pw;  pw = &pw_copy;  pw->pw_name = xstrdup (pw->pw_name);  pw->pw_dir = xstrdup (pw->pw_dir);  pw->pw_shell = xstrdup (pw->pw_shell);  if (!correct_password (pw))    {#ifdef SYSLOG_FAILURE      log_su (pw, 0);#endif      error (EXIT_FAILURE, 0, _("incorrect password"));    }#ifdef SYSLOG_SUCCESS  else    {      log_su (pw, 1);    }#endif  if (shell == 0 && change_environment == 0)    shell = getenv ("SHELL");  if (shell != 0 && getuid () && restricted_shell (pw->pw_shell))    {      /* The user being su'd to has a nonstandard shell, and so is	 probably a uucp account or has restricted access.  Don't	 compromise the account by allowing access with a standard	 shell.  */      error (0, 0, _("using restricted shell %s"), pw->pw_shell);      shell = 0;    }  if (shell == 0)    {      shell = xstrdup (pw->pw_shell);    }  modify_environment (pw, shell);  change_identity (pw);  if (simulate_login && chdir (pw->pw_dir))    error (0, errno, _("warning: cannot change directory to %s"), pw->pw_dir);  run_shell (shell, command, additional_args);}