escape.ha (366B)
1 use strings; 2 3 export fn escape(s: str) str = { 4 let bytes = strings::toutf8(s); 5 if (len(bytes) <= 1) return s; 6 if (bytes[0]: rune != '\\') 7 return s; 8 9 10 switch (bytes[1]: rune) { 11 case 'n' => return "\n"; 12 case 't' => return "\t"; 13 case 'v' => return "\v"; 14 case 'r' => return "\r"; 15 case '0' => return "\0"; 16 case '\\' => return "\\"; 17 case => return s; 18 }; 19 };