rem: uintmax_t n; s_err = xstrtoumax (optarg, NULL, 10, &n, "bkm");
add: s_err = xstrtoumax (optarg, NULL, 10, n_units, "bkm");
context: parse_options (int argc, char **argv,	       off_t *n_units, enum header_mode *header_mode,	       double *sleep_interval){  int c;  count_lines = 1;  forever = from_start = print_headers = 0;  while ((c = getopt_long (argc, argv, "c:n:fFqs:v", long_options, NULL))	 != -1)    {      switch (c)	{	case 0:	  break;	case 'F':	  forever = 1;	  follow_mode = Follow_name;	  reopen_inaccessible_files = 1;	  break;	case 'c':	case 'n':	  count_lines = (c == 'n');	  if (*optarg == '+')	    from_start = 1;	  else if (*optarg == '-')	    ++optarg;	  {	    strtol_error s_err;	    uintmax_t n;	    s_err = xstrtoumax (optarg, NULL, 10, &n, "bkm");	    if (s_err != LONGINT_OK)	      {		error (EXIT_FAILURE, 0, "%s: %s", optarg,		       (c == 'n'			? _("invalid number of lines")			: _("invalid number of bytes")));	      }	    if (OFF_T_MAX < n)	      error (EXIT_FAILURE, 0,		   _("%s is larger than the maximum file size on this system"),		     optarg);	    *n_units = (off_t) n;	  }	  break;	case 'f':	case LONG_FOLLOW_OPTION:	  forever = 1;	  if (optarg == NULL)	    follow_mode = DEFAULT_FOLLOW_MODE;	  else	    follow_mode = XARGMATCH ("--follow", optarg,				     follow_mode_string, follow_mode_map);	  break;	case RETRY_OPTION:	  reopen_inaccessible_files = 1;	  break;	case MAX_UNCHANGED_STATS_OPTION:	  /* --max-unchanged-stats=N */	  if (xstrtoul (optarg, NULL, 10,			&max_n_unchanged_stats_between_opens, "") != LONGINT_OK)	    {	      error (EXIT_FAILURE, 0,	       _("%s: invalid maximum number of unchanged stats between opens"),		     optarg);	    }	  break;	case MAX_CONSECUTIVE_SIZE_CHANGES_OPTION:  	  /* --max-consecutive-size-changes=N */	  if (xstrtoul (optarg, NULL, 10,			&max_n_consecutive_size_changes_between_opens, "")	      != LONGINT_OK)	    {	      error (EXIT_FAILURE, 0,		   _("%s: invalid maximum number of consecutive size changes"),		     optarg);	    }	  break;	case PID_OPTION:	  {	    strtol_error s_err;	    unsigned long int tmp_ulong;	    s_err = xstrtoul (optarg, NULL, 10, &tmp_ulong, "");	    if (s_err != LONGINT_OK || tmp_ulong > PID_T_MAX)	      {		error (EXIT_FAILURE, 0, _("%s: invalid PID"), optarg);	      }	    pid = tmp_ulong;	  }	  break;	case 'q':	  *header_mode = never;	  break;	case 's':	  {	    double s;	    if (xstrtod (optarg, NULL, &s) || ! (0 <= s))	      error (EXIT_FAILURE, 0,		     _("%s: invalid number of seconds"), optarg);	    *sleep_interval = s;	  }	  break;	case 'v':	  *header_mode = always;	  break;	case_GETOPT_HELP_CHAR;	case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS);	default:	  usage (EXIT_FAILURE);	}    }  if (reopen_inaccessible_files && follow_mode != Follow_name)    error (0, 0, _("warning: --retry is useful only when following by name"));  if (pid && !forever)    error (0, 0,	   _("warning: PID ignored; --pid=PID is useful only when following"));  else if (pid && kill (pid, 0) != 0 && errno == ENOSYS)    {      error (0, 0, _("warning: --pid=PID is not supported on this system"));      pid = 0;    }}