// encoding/utf8 — UTF-8 helpers. RFC 3629; we only handle the legal // subset (no over-long encodings, no surrogates). def MAX: rune = 1114111; // 0x10FFFF def BAD: rune = -1; export fn runelen(r: rune) i32 = { if (r < 0) { return -1; }; if (r < 128) { return 1; }; if (r < 2048) { return 2; }; if (r < 65536) { return 3; }; if (r <= MAX) { return 4; }; return -1; };