X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=rfc3676.c;h=b1a2e01608e5a65c654a0b7366981a6021a1a678;hp=805ff71f1986d0f2d165acb2e925772f9d4031b6;hb=b0a700a4558d9bb59395ddcf08565a5e709841e1;hpb=69bd7df1ce9e5c6a64b5128f85c1f91912d2f510 diff --git a/rfc3676.c b/rfc3676.c index 805ff71..b1a2e01 100644 --- a/rfc3676.c +++ b/rfc3676.c @@ -68,7 +68,7 @@ static void print_flowed_line (char *line, STATE * s, int ql) { } if (str_len (line) == 0) { - if (option (OPTQUOTEEMPTY)) { + if (!(s->flags & M_REPLYING) || option (OPTQUOTEEMPTY)) { if (s->prefix) state_puts(s->prefix,s); for (i=0;i',s); @@ -173,7 +173,7 @@ int rfc3676_handler (BODY * a, STATE * s) { * possibly a change in quoting level. But that's better than not * displaying it at all. */ - if ((t = strrchr (buf, '\n')) || (t = strrchr (buf, '\r'))) { + if ((t = strrchr (buf, '\r')) || (t = strrchr (buf, '\n'))) { *t = '\0'; buf_len = t - buf; } @@ -192,6 +192,15 @@ int rfc3676_handler (BODY * a, STATE * s) { if (delsp && buf_len >= 1 && buf[buf_len-1] == ' ') buf[--buf_len] = '\0'; + /* we're here when last space removed 'cause of DelSp was + * the last space and there isn't more -> done */ + if ((buf_len - buf_off) < 0) { + print_flowed_line (curline, s, quotelevel); + *curline = '\0'; + curline_len = 1; + continue; + } + /* signature separator also flushes the previous paragraph */ if (strcmp(buf + buf_off, "-- ") == 0 && curline && *curline) { print_flowed_line (curline, s, quotelevel); @@ -256,7 +265,8 @@ void rfc3676_space_stuff (HEADER* hdr) { fputs (buf, out); } fclose (in); - unlink (hdr->content->filename); fclose (out); + mutt_set_mtime (hdr->content->filename, tmpfile); + unlink (hdr->content->filename); str_replace (&hdr->content->filename, tmpfile); }