ref: cec2ed10f355e59322f3d148837dca47aab083a6
dir: /lib/escfmt/escre.myr/
use std pkg escfmt = type escre = byte[:] const re : (s : byte[:] -> escre) ;; const __init__ = { var s = ("" : escre) std.fmtinstall(std.typeof(s), refmt) } const re = {s -> (s : escre) } const refmt = {sb, ap, args var s : byte[:] s = std.vanext(ap) for c : std.bychar(s) match c | '|': std.sbputs(sb, "\\|") | '*': std.sbputs(sb, "\\*") | '+': std.sbputs(sb, "\\+") | '?': std.sbputs(sb, "\\?") | '[': std.sbputs(sb, "\\[") | ']': std.sbputs(sb, "\\]") | '^': std.sbputs(sb, "\\^") | '$': std.sbputs(sb, "\\$") | '.': std.sbputs(sb, "\\.") | '\\': std.sbputs(sb, "\\.") | '(': std.sbputs(sb, "\\(") | ')': std.sbputs(sb, "\\)") | _: std.sbputc(sb, c) ;; ;; }