xref: /inferno-os/lib9/utfecpy.c (revision 46439007cf417cbd9ac8049bb4122c890097a0fa)
1 #include "lib9.h"
2 
3 char*
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-1;
13 		while(end>to && (*--end&0xC0)==0x80)
14 			;
15 		*end = '\0';
16 	}else{
17 		end--;
18 	}
19 	return end;
20 }
21