ref: e2bfa1a57cd5b9b771fb8a33f6b4bc54165d4be8
dir: /sys/src/cmd/troff/mbwc.c/
/* ansi wide-character to multibyte-string conversions */ #include <u.h> #include <libc.h> int mbtowc(Rune *rp, char *s, int len) { int bytes, copy; char utf[UTFmax+1]; if(s == nil) return 0; if(len < 1) return -1; copy = len > UTFmax? UTFmax: len; strncpy(utf, s, copy); utf[copy] = '\0'; bytes = chartorune(rp, utf); if (bytes == 1 && *rp == Runeerror) return -1; return bytes; }