rem: unrecognized = 0;
add: unrecognized = false;
context: dc_parse_stream (FILE *fp, const char *filename){  size_t line_number = 0;  char *line = NULL;  size_t line_chars_allocated = 0;  int state;  char *term;  int err = 0;  /* State for the parser.  */  enum states { ST_TERMNO, ST_TERMYES, ST_TERMSURE, ST_GLOBAL };  state = ST_GLOBAL;  /* Get terminal type */  term = getenv ("TERM");  if (term == NULL || *term == '\0')    term = "none";  while (1)    {      int line_length;      char *keywd, *arg;      int unrecognized;      ++line_number;      if (fp)	{	  line_length = getline (&line, &line_chars_allocated, fp);	  if (line_length <= 0)	    {	      if (line)		free (line);	      break;	    }	}      else	{	  line = (char *) (G_line[line_number - 1]);	  line_length = G_line_length[line_number - 1];	  if (line_number > G_N_LINES)	    break;	}      parse_line ((unsigned char *) line, &keywd, &arg);      if (keywd == NULL)	continue;      if (arg == NULL)	{	  error (0, 0, _("%s:%lu: invalid line;  missing second token"),		 filename, (long unsigned) line_number);	  err = 1;	  free (keywd);	  continue;	}      unrecognized = 0;      if (strcasecmp (keywd, "TERM") == 0)	{	  if (STREQ (arg, term))	    state = ST_TERMSURE;	  else if (state != ST_TERMSURE)	    state = ST_TERMNO;	}      else	{	  if (state == ST_TERMSURE)	    state = ST_TERMYES; /* Another TERM can cancel */	  if (state != ST_TERMNO)	    {	      if (keywd[0] == '.')		{		  APPEND_CHAR ('*');		  append_quoted (keywd);		  APPEND_CHAR ('=');		  append_quoted (arg);		  APPEND_CHAR (':');		}	      else if (keywd[0] == '*')		{		  append_quoted (keywd);		  APPEND_CHAR ('=');		  append_quoted (arg);		  APPEND_CHAR (':');		}	      else if (strcasecmp (keywd, "OPTIONS") == 0		       || strcasecmp (keywd, "COLOR") == 0		       || strcasecmp (keywd, "EIGHTBIT") == 0)		{		  /* Ignore.  */		}	      else		{		  int i;		  for (i = 0; slack_codes[i] != NULL; ++i)		    if (strcasecmp (keywd, slack_codes[i]) == 0)		      break;		  if (slack_codes[i] != NULL)		    {		      APPEND_TWO_CHAR_STRING (ls_codes[i]);		      APPEND_CHAR ('=');		      append_quoted (arg);		      APPEND_CHAR (':');		    }		  else		    {		      unrecognized = 1;		    }		}	    }	  else	    {	      unrecognized = 1;	    }	}      if (unrecognized && (state == ST_TERMSURE || state == ST_TERMYES))	{	  error (0, 0, _("%s:%lu: unrecognized keyword %s"),		 (filename ? quote (filename) : _("<internal>")),		 (long unsigned) line_number, keywd);	  err = 1;	}      free (keywd);      if (arg)	free (arg);    }  return err;}