rem: for (logical_end = offset_out - 1; logical_end >= 0; logical_end--) if (ISBLANK (line_out[logical_end])) break; if (logical_end >= 0)
add: if (found_blank)
context: fold_file (char *filename, int width){  FILE *istream;  register int c;  int column = 0;		/* Screen column where next char will go. */  int offset_out = 0;	/* Index in `line_out' for next char. */  static char *line_out = NULL;  static int allocated_out = 0;  if (STREQ (filename, "-"))    {      istream = stdin;      have_read_stdin = 1;    }  else    istream = fopen (filename, "r");  if (istream == NULL)    {      error (0, errno, "%s", filename);      return 1;    }  while ((c = getc (istream)) != EOF)    {      if (offset_out + 1 >= allocated_out)	{	  allocated_out += 1024;	  line_out = xrealloc (line_out, allocated_out);	}      if (c == '\n')	{	  line_out[offset_out++] = c;	  fwrite (line_out, sizeof (char), (size_t) offset_out, stdout);	  column = offset_out = 0;	  continue;	}    rescan:      column = adjust_column (column, c);      if (column > width)	{	  /* This character would make the line too long.	     Print the line plus a newline, and make this character	     start the next line. */	  if (break_spaces)	    {	      /* Look for the last blank. */	      int logical_end;	      for (logical_end = offset_out - 1; logical_end >= 0;		   logical_end--)		if (ISBLANK (line_out[logical_end]))		  break;	      if (logical_end >= 0)		{		  int i;		  /* Found a blank.  Don't output the part after it. */		  logical_end++;		  fwrite (line_out, sizeof (char), (size_t) logical_end,			  stdout);		  putchar ('\n');		  /* Move the remainder to the beginning of the next line.		     The areas being copied here might overlap. */		  memmove (line_out, line_out + logical_end,			   offset_out - logical_end);		  offset_out -= logical_end;		  for (column = i = 0; i < offset_out; i++)		    column = adjust_column (column, line_out[i]);		  goto rescan;		}	    }	  else	    {	      if (offset_out == 0)		{		  line_out[offset_out++] = c;		  continue;		}	    }	  line_out[offset_out++] = '\n';	  fwrite (line_out, sizeof (char), (size_t) offset_out, stdout);	  column = offset_out = 0;	  goto rescan;	}      line_out[offset_out++] = c;    }  if (offset_out)    fwrite (line_out, sizeof (char), (size_t) offset_out, stdout);  if (ferror (istream))    {      error (0, errno, "%s", filename);      if (!STREQ (filename, "-"))	fclose (istream);      return 1;    }  if (!STREQ (filename, "-") && fclose (istream) == EOF)    {      error (0, errno, "%s", filename);      return 1;    }  return 0;}