xref: /inferno-os/libkern/utfecpy.c (revision 6e425a9de8c003b5a733621a6b6730ec3cc902b8)
1 #include "lib9.h"
2 
3 char*
utfecpy(char * to,char * e,char * from)4 utfecpy(char *to, char *e, char *from)
5 {
6 	char *end;
7 
8 	if(to >= e)
9 		return to;
10 	end = memccpy(to, from, '\0', e - to);
11 	if(end == nil){
12 		end = e;
13 		while(end>to && (*--end&0xC0)==0x80)
14 			;
15 		*end = '\0';
16 	}else{
17 		end--;
18 	}
19 	return end;
20 }
21