diff --git a/src/main/java/org/codelibs/fess/taglib/FessFunctions.java b/src/main/java/org/codelibs/fess/taglib/FessFunctions.java index dcf2e82c6..6688527f2 100644 --- a/src/main/java/org/codelibs/fess/taglib/FessFunctions.java +++ b/src/main/java/org/codelibs/fess/taglib/FessFunctions.java @@ -383,12 +383,20 @@ public class FessFunctions { list.add(line); } } + if (lineNum == 0 || list.isEmpty()) { + return "
" + input + "
"; + } + int lastIndex = list.size(); if (list.get(list.size() - 1).endsWith("...")) { - list.remove(list.size() - 1); + lastIndex--; } - if (lineNum == 0) { - return "
" + list.stream().collect(Collectors.joining("\n")) + "
"; + if (lastIndex <= 0) { + lastIndex = 1; } - return "
" + list.stream().collect(Collectors.joining("\n")) + "
"; + final String content = list.subList(0, lastIndex).stream().collect(Collectors.joining("\n")); + if (StringUtil.isBlank(content)) { + return "
" + input.replaceAll("L[0-9]+:", StringUtil.EMPTY).trim() + "
"; + } + return "
" + content + "
"; } } diff --git a/src/test/java/org/codelibs/fess/taglib/FessFunctionsTest.java b/src/test/java/org/codelibs/fess/taglib/FessFunctionsTest.java index 0b0ed11e7..be5a45afd 100644 --- a/src/test/java/org/codelibs/fess/taglib/FessFunctionsTest.java +++ b/src/test/java/org/codelibs/fess/taglib/FessFunctionsTest.java @@ -100,5 +100,21 @@ public class FessFunctionsTest extends UnitFessTestCase { value = FessFunctions.formatCode("L", "prettyprint", "text/plain", code); assertEquals("
aaa\nbbb
", value); + code = "aaa\nL11:bbb\nL12:ccc..."; + value = FessFunctions.formatCode("L", "prettyprint", "text/plain", code); + assertEquals("
bbb
", value); + + code = "aaa\nL10:"; + value = FessFunctions.formatCode("L", "prettyprint", "text/plain", code); + assertEquals("
aaa
", value); + + code = "aaa\nL10:\nL11:ccc..."; + value = FessFunctions.formatCode("L", "prettyprint", "text/plain", code); + assertEquals("
aaa\n\nccc...
", value); + + code = "aaa\nL10:\nL11:ccc"; + value = FessFunctions.formatCode("L", "prettyprint", "text/plain", code); + assertEquals("
\nccc
", value); + } }