19a747e4fSDavid du Colombier #include <u.h> 29a747e4fSDavid du Colombier #include <libc.h> 39a747e4fSDavid du Colombier 49a747e4fSDavid du Colombier char* utfecpy(char * to,char * e,char * from)59a747e4fSDavid du Colombierutfecpy(char *to, char *e, char *from) 69a747e4fSDavid du Colombier { 79a747e4fSDavid du Colombier char *end; 89a747e4fSDavid du Colombier 99a747e4fSDavid du Colombier if(to >= e) 109a747e4fSDavid du Colombier return to; 119a747e4fSDavid du Colombier end = memccpy(to, from, '\0', e - to); 129a747e4fSDavid du Colombier if(end == nil){ 13*ee7057f8SDavid du Colombier end = e; 149a747e4fSDavid du Colombier while(end>to && (*--end&0xC0)==0x80) 159a747e4fSDavid du Colombier ; 169a747e4fSDavid du Colombier *end = '\0'; 179a747e4fSDavid du Colombier }else{ 189a747e4fSDavid du Colombier end--; 199a747e4fSDavid du Colombier } 209a747e4fSDavid du Colombier return end; 219a747e4fSDavid du Colombier } 22