shithub: drawterm-fdroid

ref: 6519a0a6f21e7935c2db7ed75ed4afa9001f7b7c
dir: /libc/utfnlen.c/

View raw version
#include <u.h>
#include <libc.h>

int
utfnlen(char *s, long m)
{
	int c;
	long n;
	Rune rune;
	char *es;

	es = s + m;
	for(n = 0; s < es; n++) {
		c = *(uchar*)s;
		if(c < Runeself){
			if(c == '\0')
				break;
			s++;
			continue;
		}
		if(!fullrune(s, es-s))
			break;
		s += chartorune(&rune, s);
	}
	return n;
}