rem: if (next_tab_column - column <= pending)
add: if (pending)
context: unexpand (void){  FILE *fp;			/* Input stream. */  int c;			/* Each input character. */  /* Index in `tab_list' of next tabstop: */  int tab_index = 0;		/* For calculating width of pending tabs. */  int print_tab_index = 0;	/* For printing as many tabs as possible. */  unsigned int column = 0;	/* Column on screen of next char. */  int next_tab_column; 		/* Column the next tab stop is on. */  int convert = 1;		/* If nonzero, perform translations. */  unsigned int pending = 0;	/* Pending columns of blanks. */  fp = next_file ((FILE *) NULL);  if (fp == NULL)    return;  /* Binary I/O will preserve the original EOL style (DOS/Unix) of files.  */  SET_BINARY2 (fileno (fp), STDOUT_FILENO);  for (;;)    {      c = getc (fp);      if (c == ' ' && convert && column < TAB_STOP_SENTINEL)	{	  ++pending;	  ++column;	}      else if (c == '\t' && convert)	{	  if (tab_size == 0)	    {	      /* Do not let tab_index == first_free_tab;		 stop when it is 1 less. */	      while (tab_index < first_free_tab - 1		     && column >= tab_list[tab_index])		tab_index++;	      next_tab_column = tab_list[tab_index];	      if (tab_index < first_free_tab - 1)		tab_index++;	      if (column >= next_tab_column)		{		  convert = 0;	/* Ran out of tab stops. */		  goto flush_pend;		}	    }	  else	    {	      next_tab_column = column + tab_size - column % tab_size;	    }	  pending += next_tab_column - column;	  column = next_tab_column;	}      else	{	flush_pend:	  /* Flush pending spaces.  Print as many tabs as possible,	     then print the rest as spaces. */	  if (pending == 1)	    {	      putchar (' ');	      pending = 0;	    }	  column -= pending;	  while (pending > 0)	    {	      if (tab_size == 0)		{		  /* Do not let print_tab_index == first_free_tab;		     stop when it is 1 less. */		  while (print_tab_index < first_free_tab - 1			 && column >= tab_list[print_tab_index])		    print_tab_index++;		  next_tab_column = tab_list[print_tab_index];		  if (print_tab_index < first_free_tab - 1)		    print_tab_index++;		}	      else		{		  next_tab_column = column + tab_size - column % tab_size;		}	      if (next_tab_column - column <= pending)		{		  putchar ('\t');		  pending -= next_tab_column - column;		  column = next_tab_column;		}	      else		{		  --print_tab_index;		  column += pending;		  while (pending != 0)		    {		      putchar (' ');		      pending--;		    }		}	    }	  if (c == EOF)	    {	      fp = next_file (fp);	      if (fp == NULL)		break;		/* No more files. */	      else		{		  SET_BINARY2 (fileno (fp), STDOUT_FILENO);		  continue;		}	    }	  if (convert)	    {	      if (c == '\b')		{		  if (column > 0)		    --column;		}	      else		{		  ++column;		  if (convert_entire_line == 0)		    convert = 0;		}	    }	  putchar (c);	  if (c == '\n')	    {	      tab_index = print_tab_index = 0;	      column = pending = 0;	      convert = 1;	    }	}    }}