diff --git a/app/src/main/java/eu/faircode/email/HtmlHelper.java b/app/src/main/java/eu/faircode/email/HtmlHelper.java index 5f6b60ba1b..f4c077034a 100644 --- a/app/src/main/java/eu/faircode/email/HtmlHelper.java +++ b/app/src/main/java/eu/faircode/email/HtmlHelper.java @@ -1891,7 +1891,7 @@ public class HtmlHelper { } // https://tools.ietf.org/html/rfc3676 - static String flow(String text) { + static String flow(String text, boolean delsp) { boolean continuation = false; StringBuilder flowed = new StringBuilder(); String[] lines = text.split("\\r?\\n"); @@ -1899,6 +1899,9 @@ public class HtmlHelper { String line = lines[l]; lines[l] = null; + if (delsp && line.length() > 0) + line = line.substring(0, line.length() - 1); + if (continuation) while (line.startsWith(">")) { line = line.substring(1); diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java index 3780d73bf0..fd0e025a6a 100644 --- a/app/src/main/java/eu/faircode/email/MessageHelper.java +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -2917,8 +2917,10 @@ public class MessageHelper { } else if (StandardCharsets.UTF_8.equals(cs)) result = CharsetHelper.utf8toW1252(result); + // https://datatracker.ietf.org/doc/html/rfc3676 if ("flowed".equalsIgnoreCase(h.contentType.getParameter("format"))) - result = HtmlHelper.flow(result); + result = HtmlHelper.flow(result, + "yes".equalsIgnoreCase(h.contentType.getParameter("delsp"))); // https://www.w3.org/QA/2002/04/valid-dtd-list.html if (result.length() > DOCTYPE.length()) {