rem: int invalid = 1;
add: bool valid = false;
context: decode_field_spec (const char *s, int *file_index, int *field_index){  int invalid = 1;  /* The first character must be 0, 1, or 2.  */  switch (s[0])    {    case '0':      if (s[1] == '\0')	{	  *file_index = 0;	  /* Give *field_index an invalid value.  */	  *field_index = -1;	  invalid = 0;	}      else        {	  /* `0' must be all alone -- no `.FIELD'.  */	  error (0, 0, _("invalid field specifier: `%s'"), s);	}      break;    case '1':    case '2':      if (s[1] == '.' && s[2] != '\0')        {	  strtol_error s_err;	  long int tmp_long;	  s_err = xstrtol (s + 2, NULL, 10, &tmp_long, "");	  if (s_err != LONGINT_OK || tmp_long <= 0 || tmp_long > INT_MAX)	    {	      error (0, 0, _("invalid field number: `%s'"), s + 2);	    }	  else	    {	      *file_index = s[0] - '0';	      /* Convert to a zero-based index.  */	      *field_index = (int) tmp_long - 1;	      invalid = 0;	    }	}      break;    default:      error (0, 0, _("invalid file number in field spec: `%s'"), s);      break;    }  return invalid;}