xref: /inferno-os/lib9/strecpy.c (revision 37da2899f40661e3e9631e497da8dc59b971cbd0)
1*37da2899SCharles.Forsyth #include "lib9.h"
2*37da2899SCharles.Forsyth 
3*37da2899SCharles.Forsyth char*
strecpy(char * to,char * e,char * from)4*37da2899SCharles.Forsyth strecpy(char *to, char *e, char *from)
5*37da2899SCharles.Forsyth {
6*37da2899SCharles.Forsyth 	if(to >= e)
7*37da2899SCharles.Forsyth 		return to;
8*37da2899SCharles.Forsyth 	to = memccpy(to, from, '\0', e - to);
9*37da2899SCharles.Forsyth 	if(to == nil){
10*37da2899SCharles.Forsyth 		to = e - 1;
11*37da2899SCharles.Forsyth 		*to = '\0';
12*37da2899SCharles.Forsyth 	}else{
13*37da2899SCharles.Forsyth 		to--;
14*37da2899SCharles.Forsyth 	}
15*37da2899SCharles.Forsyth 	return to;
16*37da2899SCharles.Forsyth }
17