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