Pristine Ack-5.5
[Ack-5.5.git] / lang / cem / libcc.ansi / string / strncpy.c
1 /*
2  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
3  * See the copyright notice in the ACK home directory, in the file "Copyright".
4  */
5 /* $Id: strncpy.c,v 1.4 1994/06/24 11:57:07 ceriel Exp $ */
6
7 #include        <string.h>
8
9 char *
10 strncpy(char *ret, register const char *s2, register size_t n)
11 {
12         register char *s1 = ret;
13
14         if (n>0) {
15                 while((*s1++ = *s2++) && --n > 0)
16                         /* EMPTY */ ;
17                 if ((*--s2 == '\0') && --n > 0) {
18                         do {
19                                 *s1++ = '\0';
20                         } while(--n > 0);
21                 }
22         }
23         return ret;
24 }