if (!soft)
if (!soft || !actually_wrap)
static void text_plain_flowed_handler (BODY *a, STATE *s){  char line[LONG_STRING];  int  quoted = -1;  int  col = 0;  int  add = 0;  int  soft = 0;  int  max;  int  l;    int  flowed_max;    int bytes = a->length;    char *cont = NULL;  char *tail = NULL;  char *lc = NULL;  char *t;    if (s->prefix)    add = 1;  if ((flowed_max = FLOWED_MAX) > COLS)    flowed_max = COLS - 2;    while (bytes > 0 && fgets (line, sizeof (line), s->fpin))  {    bytes -= strlen (line);    tail = NULL;        if ((t = strrchr (line, '\r')) || (t = strrchr (line, '\n')))      *t = '\0';        for (quoted = 0; line[quoted] == '>'; quoted++)      ;    dprint (2, (debugfile, "line: `%s', quoted = %d\n", line, quoted));        cont = line + quoted;    if (*cont == ' ')      cont++;        do     {      if (tail)	cont = tail;            tail = NULL;      soft = 0;            /* try to find a point for word wrapping */    retry_wrap:      l = mutt_strlen (cont);      if (quoted + add + col + l > flowed_max)      {	if ((max = flowed_max - quoted - add - col)	    > l)	  max = l;	for (t = cont + max; t > cont; t--)	{	  if (*t == ' ' || *t == '\t')	  {	    tail = t;	    break;	  }	}	if (tail)	{	  *tail++ = '\0';	  soft = 2;	}      }      /* We might be desperate.  Just wrap. */      if (!tail && (quoted + add + col + mutt_strlen (cont) > flowed_max) && col)      {	state_putc ('\n', s);	col = 0;	goto retry_wrap;      }            if (!soft && ascii_strcmp (cont, "-- "))      {	lc = strrchr (cont, ' ');	if (lc && lc[1] == '\0')	  soft = 1;      }      if (!col)      {	flowed_quote (s, quoted);	flowed_stuff (s, cont, quoted + add);      }            state_puts (cont, s);      col += strlen (cont);            if (soft == 2)      {	state_putc (' ', s);	col++;      }            if (!soft)      {	state_putc ('\n', s);	col = 0;      }    }    while (tail);  }  if (col)    state_putc ('\n', s);  }