From d34f0506bdc4fef2bcca82a70e67aa15aad75cb9 Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Mon, 13 Aug 2018 01:39:41 +0800 Subject: trim unnecessary dependencies --- cask/src/cask/internal/Util.scala | 32 ++++++++++++++++++++++++++++++++ cask/src/cask/main/ErrorMsgs.scala | 3 +-- 2 files changed, 33 insertions(+), 2 deletions(-) (limited to 'cask') 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 { -- cgit v1.2.3