1#include <wchar.h>
2
3int wcswidth(const wchar_t* wcs, size_t n) {
4    int l = 0, k = 0;
5    for (; n-- && *wcs && (k = wcwidth(*wcs)) >= 0; l += k, wcs++)
6        ;
7    return (k < 0) ? k : l;
8}
9