From 366c49c77d23769c3ac7dbbb496203cae321267e Mon Sep 17 00:00:00 2001 From: Michael Offner Date: Mon, 20 Aug 2018 20:14:31 +0200 Subject: [PATCH] solved https://luceeserver.atlassian.net/browse/LDEV-1957 --- .../runtime/functions/string/NewLine.java | 25 ++++++++++++++++--- core/src/main/java/resource/fld/core-cfml.fld | 7 ++++++ loader/build.xml | 2 +- loader/pom.xml | 2 +- 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/lucee/runtime/functions/string/NewLine.java b/core/src/main/java/lucee/runtime/functions/string/NewLine.java index 45ca2e041e..ee73d661a2 100644 --- a/core/src/main/java/lucee/runtime/functions/string/NewLine.java +++ b/core/src/main/java/lucee/runtime/functions/string/NewLine.java @@ -22,10 +22,29 @@ package lucee.runtime.functions.string; import lucee.runtime.PageContext; -import lucee.runtime.ext.function.Function; +import lucee.runtime.exp.FunctionException; +import lucee.runtime.exp.PageException; +import lucee.runtime.ext.function.BIF; +import lucee.runtime.op.Caster; + +public final class NewLine extends BIF { + + private static final long serialVersionUID = -5537738458169706L; + private static final String NL=System.getProperty("line.separator"); -public final class NewLine implements Function { public static String call(PageContext pc) { - return "\n"; + return call(pc,true); + } + + public static String call(PageContext pc, boolean includeCROnWindows) { + return includeCROnWindows?NL:"\n"; + } + + @Override + public Object invoke(PageContext pc, Object[] args) throws PageException { + if(args.length==0) return call(pc,true); + if(args.length==1) return call(pc, Caster.toBooleanValue(args[0])); + + throw new FunctionException(pc, "NewLine", 0, 1, args.length); } } \ No newline at end of file diff --git a/core/src/main/java/resource/fld/core-cfml.fld b/core/src/main/java/resource/fld/core-cfml.fld index 459bc3c281..30f9ba767b 100755 --- a/core/src/main/java/resource/fld/core-cfml.fld +++ b/core/src/main/java/resource/fld/core-cfml.fld @@ -1531,6 +1531,13 @@ You can find a list of all available timezones in the Lucee administrator (Setti newLine lucee.runtime.functions.string.NewLine returns a new line + + includeCROnWindows + boolean + No + true + On windows computer include Carriage Return. + string diff --git a/loader/build.xml b/loader/build.xml index 68810534fe..6a132dc63b 100644 --- a/loader/build.xml +++ b/loader/build.xml @@ -1,7 +1,7 @@ - + org.lucee lucee - 5.3.1.42-SNAPSHOT + 5.3.1.43-SNAPSHOT jar Lucee Loader Build