浏览代码

jfinal 4.9

James 5 年之前
父节点
当前提交
522b12d9b6
共有 1 个文件被更改,包括 9 次插入3 次删除
  1. 9 3
      src/main/java/com/jfinal/template/stat/Compressor.java

+ 9 - 3
src/main/java/com/jfinal/template/stat/Compressor.java

@@ -45,12 +45,18 @@ public class Compressor {
 	}
 	
 	public StringBuilder compress(StringBuilder content) {
-		StringBuilder result = null;
+		int len = content.length();
+		
+		// 仅包含一个字符 '\n',原样返回,否则会返回空字符串
+		// 测试用例: "#date()\n#date()" "#(1)\n#(2)"
+		if (len == 1 && content.charAt(0) == '\n') {
+			return content;
+		}
 		
 		int begin = 0;
 		int forward = 0;
 		int compressMode = 1;		// 1 表示第一行
-		int len = content.length();
+		StringBuilder result = null;
 		while (forward < len) {
 			if (content.charAt(forward) == '\n') {
 				if (result == null) {
@@ -90,7 +96,7 @@ public class Compressor {
 	protected void compressLine(StringBuilder content, int start, int end, int compressMode, StringBuilder result) {
 		// 第一行不压缩左侧空白
 		if (compressMode != 1) {
-			while (start < end && content.charAt(start) <= ' ') {
+			while (start <= end && content.charAt(start) <= ' ') {
 				start++;
 			}
 		}