summaryrefslogtreecommitdiffstats
path: root/src/main/java/com/gitblit/utils/StringUtils.java
diff options
context:
space:
mode:
authorFlorian Zschocke <f.zschocke+git@gmail.com>2022-08-02 22:10:58 +0200
committerFlorian Zschocke <f.zschocke+git@gmail.com>2022-08-02 22:10:58 +0200
commitf0dce60949ad38a78289253f5889651e0d803c04 (patch)
treedbd86a8516f60e0afa81da69a766a08de464a17d /src/main/java/com/gitblit/utils/StringUtils.java
parentd6f6ac3d3f214ff648aa92e4c5c6d8500db6b244 (diff)
parent9667d5ee6116d5a5041bf53eeb6c8bc62327ee61 (diff)
downloadgitblit-f0dce60949ad38a78289253f5889651e0d803c04.tar.gz
gitblit-f0dce60949ad38a78289253f5889651e0d803c04.zip
Merge branch 'QuentinC-fix-tab-escape' into master
The contribution branch was rebased to current master. This should close #1065 as merged.
Diffstat (limited to 'src/main/java/com/gitblit/utils/StringUtils.java')
-rw-r--r--src/main/java/com/gitblit/utils/StringUtils.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/main/java/com/gitblit/utils/StringUtils.java b/src/main/java/com/gitblit/utils/StringUtils.java
index 442acbbf..0e23d637 100644
--- a/src/main/java/com/gitblit/utils/StringUtils.java
+++ b/src/main/java/com/gitblit/utils/StringUtils.java
@@ -105,6 +105,8 @@ public class StringUtils {
public static String escapeForHtml(String inStr, boolean changeSpace, int tabLength) {
StringBuilder retStr = new StringBuilder();
int i = 0;
+ int l = 0;
+
while (i < inStr.length()) {
if (inStr.charAt(i) == '&') {
retStr.append("&amp;");
@@ -117,12 +119,18 @@ public class StringUtils {
} else if (changeSpace && inStr.charAt(i) == ' ') {
retStr.append("&nbsp;");
} else if (changeSpace && inStr.charAt(i) == '\t') {
- for (int j = 0; j < tabLength; j++) {
+ for (int j = 0; j < tabLength - l; j++) {
retStr.append("&nbsp;");
}
+ l = -1;
} else {
retStr.append(inStr.charAt(i));
}
+
+ l = (l + 1) % tabLength;
+ if (inStr.charAt(i) == '\n') {
+ l = 0;
+ }
i++;
}
return retStr.toString();