static S quote(O o) { if (o == null) return "null"; ret quote(str(o)); } static S quote(S s) { if (s == null) return "null"; new StringBuilder out; quote_impl(s, out); ret out.toString(); } static void quote_impl(S s, StringBuilder out) { out.append('"'); int l = s.length(); for (int i = 0; i < l; i++) { char c = s.charAt(i); if (c == '\\' || c == '"') out.append('\\').append(c); else if (c == '\r') out.append("\\r"); else if (c == '\n') out.append("\\n"); else out.append(c); } out.append('"'); }