From f426f8ba7f57546331c4003f7b8ed64a2e5f8ea0 Mon Sep 17 00:00:00 2001 From: Grzegorz Kossakowski Date: Mon, 24 Jun 2013 14:20:13 -0700 Subject: [PATCH] Allow an empty string as a default in variable substitution. Lanucher configuration parser would previously require a default value in variable substitution pattern to be non-empty string. This is an unnecessary restriction as empty value is sometimes useful as in this example: resources: ${sbt.extraClasspath-} This commit lifts this restriction so empty default values are allowed. The change has been discussed with @harrah. --- launch/src/main/scala/xsbt/boot/ConfigurationParser.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/launch/src/main/scala/xsbt/boot/ConfigurationParser.scala b/launch/src/main/scala/xsbt/boot/ConfigurationParser.scala index 4bae3736f..4a2325dd4 100644 --- a/launch/src/main/scala/xsbt/boot/ConfigurationParser.scala +++ b/launch/src/main/scala/xsbt/boot/ConfigurationParser.scala @@ -18,7 +18,7 @@ object ConfigurationParser def trim(s: Array[String]) = s.map(_.trim).toList def ids(value: String) = trim(substituteVariables(value).split(",")).filter(isNonEmpty) - private[this] lazy val VarPattern = Pattern.compile("""\$\{([\w.]+)(\-(.+))?\}""") + private[this] lazy val VarPattern = Pattern.compile("""\$\{([\w.]+)(\-(.*))?\}""") def substituteVariables(s: String): String = if(s.indexOf('$') >= 0) substituteVariables0(s) else s // scala.util.Regex brought in 30kB, so we code it explicitly def substituteVariables0(s: String): String =