xref: /plan9/sys/src/ape/lib/ap/gen/strncat.c (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
13e12c5d1SDavid du Colombier #include <string.h>
23e12c5d1SDavid du Colombier 
33e12c5d1SDavid du Colombier char*
strncat(char * s1,const char * s2,size_t n)43e12c5d1SDavid du Colombier strncat(char *s1, const char *s2, size_t n)
53e12c5d1SDavid du Colombier {
63e12c5d1SDavid du Colombier 	char *os1;
7*219b2ee8SDavid du Colombier 	long nn;
83e12c5d1SDavid du Colombier 
93e12c5d1SDavid du Colombier 	os1 = s1;
10*219b2ee8SDavid du Colombier 	nn = n;
113e12c5d1SDavid du Colombier 	while(*s1++)
123e12c5d1SDavid du Colombier 		;
133e12c5d1SDavid du Colombier 	s1--;
143e12c5d1SDavid du Colombier 	while(*s1++ = *s2++)
15*219b2ee8SDavid du Colombier 		if(--nn < 0) {
163e12c5d1SDavid du Colombier 			s1[-1] = 0;
173e12c5d1SDavid du Colombier 			break;
183e12c5d1SDavid du Colombier 		}
193e12c5d1SDavid du Colombier 	return os1;
203e12c5d1SDavid du Colombier }
21