diff options
author | Paul Phillips <paulp@improving.org> | 2013-01-03 12:34:00 -0800 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2013-01-03 12:34:00 -0800 |
commit | e112ac94d04be7ee715ebf8724709123b0f3e1f6 (patch) | |
tree | a00a8f9fc92cc061ab5d06250913af2bca97c73a /src | |
parent | ca98602e8243062c8e1e86afe954c48edc09cbad (diff) | |
parent | ac61e341216c2c61e29c74a8c3c27e915d479925 (diff) | |
download | scala-e112ac94d04be7ee715ebf8724709123b0f3e1f6.tar.gz scala-e112ac94d04be7ee715ebf8724709123b0f3e1f6.tar.bz2 scala-e112ac94d04be7ee715ebf8724709123b0f3e1f6.zip |
Merge pull request #1822 from paulp/issue/6194
SI-6194, repl crash.
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/util/ClassPath.scala | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/util/ClassPath.scala b/src/compiler/scala/tools/nsc/util/ClassPath.scala index 8732e06502..471e2653cf 100644 --- a/src/compiler/scala/tools/nsc/util/ClassPath.scala +++ b/src/compiler/scala/tools/nsc/util/ClassPath.scala @@ -15,6 +15,7 @@ import scala.reflect.ClassTag import Jar.isJarOrZip import File.pathSeparator import java.net.MalformedURLException +import java.util.regex.PatternSyntaxException /** <p> * This module provides star expansion of '-classpath' option arguments, behaves the same as @@ -39,8 +40,11 @@ object ClassPath { if (pattern == "*") lsDir(Directory(".")) else if (pattern endsWith wildSuffix) lsDir(Directory(pattern dropRight 2)) else if (pattern contains '*') { - val regexp = ("^%s$" format pattern.replaceAll("""\*""", """.*""")).r - lsDir(Directory(pattern).parent, regexp findFirstIn _ isDefined) + try { + val regexp = ("^" + pattern.replaceAllLiterally("""\*""", """.*""") + "$").r + lsDir(Directory(pattern).parent, regexp findFirstIn _ isDefined) + } + catch { case _: PatternSyntaxException => List(pattern) } } else List(pattern) } |