Fixes and improvements for formatting, especially for paragraph formatting mode

and when entering a "semiblock" (e.g. table) in normal mode.
This commit is contained in:
hns 2004-02-07 12:30:18 +00:00
parent 67f3ccea47
commit f6cf3b758a

View file

@ -560,17 +560,20 @@ public final class HtmlEncoder {
if (entering != INTERNAL && exiting != INTERNAL) { if (entering != INTERNAL && exiting != INTERNAL) {
int swallowBreaks = 0; int swallowBreaks = 0;
if (paragraphs && (entering != BLOCK || exiting != BLOCK) && if (paragraphs &&
(entering != BLOCK || exiting != BLOCK) &&
(exiting < BLOCK) && (exiting < BLOCK) &&
(entering >= SEMIBLOCK || linebreaks > 1) && (linebreaks > 1) &&
paragraphStart < ret.length()) { paragraphStart < ret.length()) {
ret.insert(paragraphStart, "<p>"); ret.insert(paragraphStart, "<p>");
ret.append("</p>"); ret.append("</p>");
swallowBreaks = 2; swallowBreaks = 2;
} }
// treat entering a SEMIBLOCK as entering a TEXT
int _entering = entering == SEMIBLOCK ? TEXT : entering;
for (int k = linebreaks-1; k>=0; k--) { for (int k = linebreaks-1; k>=0; k--) {
if (k >= swallowBreaks && k >= entering && k >= exiting) { if (k >= swallowBreaks && k >= _entering && k >= exiting) {
ret.append("<br />"); ret.append("<br />");
} }
ret.append(newLine); ret.append(newLine);
@ -786,7 +789,7 @@ public final class HtmlEncoder {
// add remaining newlines we may have collected // add remaining newlines we may have collected
int swallowBreaks = 0; int swallowBreaks = 0;
if (paragraphs && exiting < BLOCK) { if (paragraphs && entering < BLOCK) {
ret.insert(paragraphStart, "<p>"); ret.insert(paragraphStart, "<p>");
ret.append("</p>"); ret.append("</p>");
swallowBreaks = 2; swallowBreaks = 2;