summaryrefslogtreecommitdiff
path: root/cask
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-08-13 01:39:41 +0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-08-13 01:39:41 +0800
commitd34f0506bdc4fef2bcca82a70e67aa15aad75cb9 (patch)
tree589d2b54cf770f5af3f7c59960fef403bdd35299 /cask
parent9013f6c93af3dfa3ccfe2a52b84888460ad47ad6 (diff)
downloadcask-d34f0506bdc4fef2bcca82a70e67aa15aad75cb9.tar.gz
cask-d34f0506bdc4fef2bcca82a70e67aa15aad75cb9.tar.bz2
cask-d34f0506bdc4fef2bcca82a70e67aa15aad75cb9.zip
trim unnecessary dependencies
Diffstat (limited to 'cask')
-rw-r--r--cask/src/cask/internal/Util.scala32
-rw-r--r--cask/src/cask/main/ErrorMsgs.scala3
2 files changed, 33 insertions, 2 deletions
diff --git a/cask/src/cask/internal/Util.scala b/cask/src/cask/internal/Util.scala
index b4f33a8..7da343e 100644
--- a/cask/src/cask/internal/Util.scala
+++ b/cask/src/cask/internal/Util.scala
@@ -6,7 +6,39 @@ import scala.collection.generic.CanBuildFrom
import scala.collection.mutable
import java.io.OutputStream
+import scala.annotation.switch
+
object Util {
+
+ /**
+ * Convert a string to a C&P-able literal. Basically
+ * copied verbatim from the uPickle source code.
+ */
+ def literalize(s: IndexedSeq[Char], unicode: Boolean = true) = {
+ val sb = new StringBuilder
+ sb.append('"')
+ var i = 0
+ val len = s.length
+ while (i < len) {
+ (s(i): @switch) match {
+ case '"' => sb.append("\\\"")
+ case '\\' => sb.append("\\\\")
+ case '\b' => sb.append("\\b")
+ case '\f' => sb.append("\\f")
+ case '\n' => sb.append("\\n")
+ case '\r' => sb.append("\\r")
+ case '\t' => sb.append("\\t")
+ case c =>
+ if (c < ' ' || (c > '~' && unicode)) sb.append("\\u%04x" format c.toInt)
+ else sb.append(c)
+ }
+ i += 1
+ }
+ sb.append('"')
+
+ sb.result()
+ }
+
def transferTo(in: InputStream, out: OutputStream) = {
val buffer = new Array[Byte](8192)
diff --git a/cask/src/cask/main/ErrorMsgs.scala b/cask/src/cask/main/ErrorMsgs.scala
index f5d9cc7..c296504 100644
--- a/cask/src/cask/main/ErrorMsgs.scala
+++ b/cask/src/cask/main/ErrorMsgs.scala
@@ -1,9 +1,8 @@
package cask.main
-import java.io.{PrintWriter, StringWriter}
import cask.internal.{Router, Util}
-import fastparse.utils.Utils.literalize
+import cask.internal.Util.literalize
object ErrorMsgs {