You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by dd...@apache.org on 2016/01/01 21:34:41 UTC
incubator-freemarker-docgen git commit: Fixed normalizeEOL method.
Repository: incubator-freemarker-docgen
Updated Branches:
refs/heads/master d03201fa6 -> 99cfc0423
Fixed normalizeEOL method.
Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker-docgen/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker-docgen/commit/99cfc042
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker-docgen/tree/99cfc042
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker-docgen/diff/99cfc042
Branch: refs/heads/master
Commit: 99cfc042346a90c163d2d4d559e4d84e2c78213a
Parents: d03201f
Author: ddekany <dd...@apache.org>
Authored: Fri Jan 1 21:34:32 2016 +0100
Committer: ddekany <dd...@apache.org>
Committed: Fri Jan 1 21:34:32 2016 +0100
----------------------------------------------------------------------
src/main/org/freemarker/docgen/TextUtil.java | 44 +++++++++++++++++++----
1 file changed, 37 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-freemarker-docgen/blob/99cfc042/src/main/org/freemarker/docgen/TextUtil.java
----------------------------------------------------------------------
diff --git a/src/main/org/freemarker/docgen/TextUtil.java b/src/main/org/freemarker/docgen/TextUtil.java
index 5e6f8ae..d49f722 100644
--- a/src/main/org/freemarker/docgen/TextUtil.java
+++ b/src/main/org/freemarker/docgen/TextUtil.java
@@ -18,11 +18,6 @@
*/
package org.freemarker.docgen;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import freemarker.template.utility.StringUtil;
-
final class TextUtil {
// Can't be instantiated
@@ -298,8 +293,43 @@ final class TextUtil {
}
}
- public static String normalizeEOL(final String s, String eol) throws FileNotFoundException, IOException {
- return StringUtil.replace(s, "\r\n", eol).replace("\n", eol).replace("\r", eol);
+ public static String normalizeEOL(final String s, String eol) {
+ int ln = s.length();
+ int i = 0;
+ while (i < ln) {
+ char c = s.charAt(i);
+ if (c == '\r' || c == '\n') {
+ break;
+ }
+ i++;
+ }
+ if (i == ln) {
+ return s;
+ }
+
+ StringBuilder sb = new StringBuilder(ln + ln / 10);
+ int nextToAppend = 0;
+ while (i < ln) {
+ char c = s.charAt(i);
+ if (c == '\r' || c == '\n') {
+ sb.append(s, nextToAppend, i);
+ sb.append(eol);
+ if (c == '\r' && i + 1 < ln && s.charAt(i + 1) == '\n') {
+ i++;
+ }
+ nextToAppend = i + 1;
+ }
+ i++;
+ }
+ sb.append(s, nextToAppend, ln);
+ return sb.toString();
+ }
+
+ public static void main(String[] args) {
+ System.out.println(normalizeEOL("", "|"));
+ System.out.println(normalizeEOL("abc", "|"));
+ System.out.println(normalizeEOL("a\nb\nc\r\nd", "|"));
+ System.out.println(normalizeEOL("\n\n\r\r\r\n", "|"));
}
}