// StringStd — minimal standard string helpers (commonized API) static box StringStd { length(s) { if s == null { return 0 } return s.length() } substring(s, start, end) { if s == null { return "" } if start == null { start = 0 } if end == null { end = s.length() } return s.substring(start, end) } indexOf(s, needle, start) { if s == null { return -1 } if needle == null { needle = "" } if start == null { return s.indexOf(needle) } return s.indexOf(needle, start) } lastIndexOf(s, needle, start) { if s == null { return -1 } if needle == null { needle = "" } if start == null { return s.lastIndexOf(needle) } return s.lastIndexOf(needle, start) } esc_json(s) { if s == null { return "" } local out = "" local i = 0 local n = s.length() loop(i < n) { local ch = s.substring(i, i+1) if ch == "\\" { out = out + "\\\\" } else { if ch == "\"" { out = out + "\\\"" } else { out = out + ch } } i = i + 1 } return out } }