jehanne/sys/src/lib/jehanne/port/utfecpy.c

31 lines
717 B
C

/*
* This file is part of the UCB release of Plan 9. It is subject to the license
* terms in the LICENSE file found in the top-level directory of this
* distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
* part of the UCB release of Plan 9, including this file, may be copied,
* modified, propagated, or distributed except according to the terms contained
* in the LICENSE file.
*/
#include <u.h>
#include <libc.h>
char*
jehanne_utfecpy(char *to, char *e, const char *from)
{
char *end;
if(to >= e)
return to;
end = jehanne_memccpy(to, from, '\0', e - to);
if(end == nil){
end = e;
while(end>to && (*--end&0xC0)==0x80)
;
*end = '\0';
}else{
end--;
}
return end;
}