From f6cf3b758a8424c73f3aad9b3ea0f3004cdecc79 Mon Sep 17 00:00:00 2001 From: hns Date: Sat, 7 Feb 2004 12:30:18 +0000 Subject: [PATCH] Fixes and improvements for formatting, especially for paragraph formatting mode and when entering a "semiblock" (e.g. table) in normal mode. --- src/helma/util/HtmlEncoder.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/helma/util/HtmlEncoder.java b/src/helma/util/HtmlEncoder.java index 920edf32..e6d559d9 100644 --- a/src/helma/util/HtmlEncoder.java +++ b/src/helma/util/HtmlEncoder.java @@ -560,17 +560,20 @@ public final class HtmlEncoder { if (entering != INTERNAL && exiting != INTERNAL) { int swallowBreaks = 0; - if (paragraphs && (entering != BLOCK || exiting != BLOCK) && + if (paragraphs && + (entering != BLOCK || exiting != BLOCK) && (exiting < BLOCK) && - (entering >= SEMIBLOCK || linebreaks > 1) && + (linebreaks > 1) && paragraphStart < ret.length()) { ret.insert(paragraphStart, "

"); ret.append("

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

"); ret.append("

"); swallowBreaks = 2;