rem: chars_per_margin = (int) tmp_long;
add: chars_per_margin = tmp_long;
context: main (int argc, char **argv){  int c;  int accum = 0;  int n_files;  int old_options = FALSE;  int old_w = FALSE;  int old_s = FALSE;  char **file_names;  char const *short_options = (posix2_version () < 200112			       ? COMMON_SHORT_OPTIONS "S::"			       : COMMON_SHORT_OPTIONS "S:");  program_name = argv[0];  setlocale (LC_ALL, "");  bindtextdomain (PACKAGE, LOCALEDIR);  textdomain (PACKAGE);  atexit (close_stdout);  n_files = 0;  file_names = (argc > 1		? (char **) xmalloc ((argc - 1) * sizeof (char *))		: NULL);  while ((c = getopt_long (argc, argv, short_options, long_options, NULL))	 != -1)    {      if (ISDIGIT (c))	{	  accum = accum * 10 + c - '0';	  columns = accum;	  explicit_columns = TRUE;	  continue;	}      if (accum > 0)            /* reset for subsequent params */	accum = 0;      switch (c)	{	case 0:			/* getopt long option */	  break;	case 1:			/* Non-option argument. */	  if (*optarg == '+')	    {	      /* long option --page dominates old `+FIRST_PAGE ...' */	      if (first_page_number <= 0 && last_page_number <= 0)		first_last_page (optarg);	    }	  else	    file_names[n_files++] = optarg;	  break;	case PAGES_OPTION:	/* --pages=FIRST_PAGE[:LAST_PAGE] */	  {			/* dominates old opt +... */	    if (optarg)	      first_last_page (optarg);	    else	      error (EXIT_FAILURE, 0,		     _("`--pages=FIRST_PAGE[:LAST_PAGE]' missing argument"));	    break;	  }	case COLUMNS_OPTION:	/* --columns=COLUMN */	  {	    long int tmp_long;	    if (xstrtol (optarg, NULL, 10, &tmp_long, "") != LONGINT_OK		|| tmp_long <= 0 || tmp_long > INT_MAX)	      {		error (EXIT_FAILURE, 0,		       _("`--columns=COLUMN' invalid number of columns: `%s'"),		       optarg);	      }	    columns = (int) tmp_long;	    break;	  }	case 'a':	  print_across_flag = TRUE;	  storing_columns = FALSE;	  break;	case 'b':	  balance_columns = TRUE;	  break;	case 'c':	  use_cntrl_prefix = TRUE;	  break;	case 'd':	  double_space = TRUE;	  break;	case 'D':	  date_format = optarg;	  break;	case 'e':	  if (optarg)	    getoptarg (optarg, 'e', &input_tab_char,		       &chars_per_input_tab);	  /* Could check tab width > 0. */	  untabify_input = TRUE;	  break;	case 'f':	case 'F':	  use_form_feed = TRUE;	  break;	case 'h':	  custom_header = optarg;	  break;	case 'i':	  if (optarg)	    getoptarg (optarg, 'i', &output_tab_char,		       &chars_per_output_tab);	  /* Could check tab width > 0. */	  tabify_output = TRUE;	  break;	case 'J':	  join_lines = TRUE;	  break;	case 'l':	  {	    long int tmp_long;	    if (xstrtol (optarg, NULL, 10, &tmp_long, "") != LONGINT_OK		|| tmp_long <= 0 || tmp_long > INT_MAX)	      {		error (EXIT_FAILURE, 0,		       _("`-l PAGE_LENGTH' invalid number of lines: `%s'"),		       optarg);	      }	    lines_per_page = (int) tmp_long;	    break;	  }	case 'm':	  parallel_files = TRUE;	  storing_columns = FALSE;	  break;	case 'n':	  numbered_lines = TRUE;	  if (optarg)	    getoptarg (optarg, 'n', &number_separator,		       &chars_per_number);	  break;	case 'N':	  skip_count = FALSE;	  {	    long int tmp_long;	    if (xstrtol (optarg, NULL, 10, &tmp_long, "") != LONGINT_OK		|| tmp_long > INT_MAX)	      {		error (EXIT_FAILURE, 0,		       _("`-N NUMBER' invalid starting line number: `%s'"),		       optarg);	      }	    start_line_num = (int) tmp_long;	    break;	  }	case 'o':	  {	    long int tmp_long;	    if (xstrtol (optarg, NULL, 10, &tmp_long, "") != LONGINT_OK		|| tmp_long < 0 || tmp_long > INT_MAX)	      error (EXIT_FAILURE, 0,		     _("`-o MARGIN' invalid line offset: `%s'"), optarg);	    chars_per_margin = (int) tmp_long;	    break;	  }	case 'r':	  ignore_failed_opens = TRUE;	  break;	case 's':	  old_options = TRUE;	  old_s = TRUE;	  if (!use_col_separator && optarg)	    separator_string (optarg);	  break;	case 'S':	  old_s = FALSE;	  /* Reset an additional input of -s, -S dominates -s */	  col_sep_string = "";	  col_sep_length = 0;	  use_col_separator = TRUE;	  if (optarg)	    separator_string (optarg);	  break;	case 't':	  extremities = FALSE;	  keep_FF = TRUE;	  break;	case 'T':	  extremities = FALSE;	  keep_FF = FALSE;	  break;	case 'v':	  use_esc_sequence = TRUE;	  break;	case 'w':	  old_options = TRUE;	  old_w = TRUE;	  {	    long int tmp_long;	    if (xstrtol (optarg, NULL, 10, &tmp_long, "") != LONGINT_OK	        || tmp_long <= 0 || tmp_long > INT_MAX)	      error (EXIT_FAILURE, 0,	         _("`-w PAGE_WIDTH' invalid number of characters: `%s'"), optarg);	    if (!truncate_lines)  chars_per_line = (int) tmp_long;	    break;	  }	case 'W':	  old_w = FALSE;			/* dominates -w */	  truncate_lines = TRUE;	  {	    long int tmp_long;	    if (xstrtol (optarg, NULL, 10, &tmp_long, "") != LONGINT_OK		|| tmp_long <= 0 || tmp_long > INT_MAX)	      error (EXIT_FAILURE, 0,		 _("`-W PAGE_WIDTH' invalid number of characters: `%s'"), optarg);	    chars_per_line = (int) tmp_long;	    break;	  }	case_GETOPT_HELP_CHAR;	case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS);	default:	  usage (2);	  break;	}    }  if (! date_format)    date_format = (getenv ("POSIXLY_CORRECT")		   ? dcgettext (NULL, "%b %e %H:%M %Y", LC_TIME)		   : "%Y-%m-%d %H:%M");  /* Now we can set a reasonable initial value: */  if (first_page_number == 0)    first_page_number = 1;  if (parallel_files && explicit_columns)    error (EXIT_FAILURE, 0,	 _("Cannot specify number of columns when printing in parallel."));  if (parallel_files && print_across_flag)    error (EXIT_FAILURE, 0,       _("Cannot specify both printing across and printing in parallel."));/* Translate some old short options to new/long options.   To meet downward compatibility with other UNIX pr utilities   and some POSIX specifications. */  if (old_options)    {      if (old_w)        {          if (parallel_files || explicit_columns)	    {	      /* activate -W */	      truncate_lines = TRUE;	      if (old_s)	        /* adapt HP-UX and SunOS: -s = no separator;	           activate -S */	        use_col_separator = TRUE;	    }	  else	    /* old -w sets width with columns only	       activate -J */	    join_lines = TRUE;	}      else if (!use_col_separator)        {	  /* No -S option read */          if (old_s && (parallel_files || explicit_columns))	    {	      if (!truncate_lines)		{		  /* old -s (without -w and -W) annuls column alignment,		  uses fields, activate -J */		  join_lines = TRUE;		  if (col_sep_length > 0)		    /* activate -S */		    use_col_separator = TRUE;		}	      else		/* with -W */		/* adapt HP-UX and SunOS: -s = no separator;		   activate -S */		use_col_separator = TRUE;	    }	}    }  for (; optind < argc; optind++)    {      file_names[n_files++] = argv[optind];    }  if (n_files == 0)    {      /* No file arguments specified;  read from standard input.  */      print_files (0, NULL);    }  else    {      if (parallel_files)	print_files (n_files, file_names);      else	{	  int i;	  for (i = 0; i < n_files; i++)	    print_files (1, &file_names[i]);	}    }  cleanup ();  if (have_read_stdin && fclose (stdin) == EOF)    error (EXIT_FAILURE, errno, _("standard input"));  if (failed_opens > 0)    exit (EXIT_FAILURE);  exit (EXIT_SUCCESS);}