30 lines · 695 B · C
RawDownload
/*  * 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*utfecpy(char *to, char *e, char *from){	char *end; 	if(to >= e)		return to;	end = memccpy(to, from, '\0', e - to);	if(end == nil){		end = e;		while(end>to && (*--end&0xC0)==0x80)			;		*end = '\0';	}else{		end--;	}	return end;}