xref: /plan9/sys/src/cmd/unix/drawterm/libc/utfecpy.c (revision 8ccd4a6360d974db7bd7bbd4f37e7018419ea908)
1 #include <u.h>
2 #include <libc.h>
3 
4 char*
utfecpy(char * to,char * e,char * from)5 utfecpy(char *to, char *e, char *from)
6 {
7 	char *end;
8 
9 	if(to >= e)
10 		return to;
11 	end = memccpy(to, from, '\0', e - to);
12 	if(end == nil){
13 		end = e-1;
14 		while(end>to && (*--end&0xC0)==0x80)
15 			;
16 		*end = '\0';
17 	}else{
18 		end--;
19 	}
20 	return end;
21 }
22