xref: /original-bsd/lib/libcompat/4.1/strcatn.c (revision e59fb703)
1 /*
2  * Copyright (c) 1980 Regents of the University of California.
3  * All rights reserved.  The Berkeley software License Agreement
4  * specifies the terms and conditions for redistribution.
5  */
6 
7 #if defined(LIBC_SCCS) && !defined(lint)
8 static char sccsid[] = "@(#)strcatn.c	4.3 (Berkeley) 03/09/86";
9 #endif LIBC_SCCS and not lint
10 
11 /*
12  * Concatenate s2 on the end of s1.  S1's space must be large enough.
13  * At most n characters are moved.
14  * Return s1.
15  */
16 
17 char *
18 strcatn(s1, s2, n)
19 register char *s1, *s2;
20 register n;
21 {
22 	register char *os1;
23 
24 	os1 = s1;
25 	while (*s1++)
26 		;
27 	--s1;
28 	while (*s1++ = *s2++)
29 		if (--n < 0) {
30 			*--s1 = '\0';
31 			break;
32 		}
33 	return(os1);
34 }
35