ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/strlcpy.c
Revision: 2.2
Committed: Fri May 4 21:22:44 2018 UTC (6 years ago) by greg
Content type: text/plain
Branch: MAIN
CVS Tags: rad5R2
Changes since 2.1: +8 -7 lines
Log Message:
Added compatible declarations for strlcpy() and strlcat()

File Contents

# User Rev Content
1 greg 2.1 #ifndef lint
2 greg 2.2 static const char RCSid[] = "$Id: strlcpy.c,v 2.1 2018/01/17 22:36:44 greg Exp $";
3 greg 2.1 #endif
4     /*
5     * String copy routines similar to strncpy
6     */
7    
8     #include "copyright.h"
9 greg 2.2 #include "rtio.h"
10 greg 2.1
11 greg 2.2 size_t
12     strlcpy(char *dst, const char *src, size_t siz)
13 greg 2.1 {
14 greg 2.2 size_t n = siz;
15 greg 2.1
16     while (--n > 0)
17     if (!(*dst++ = *src++))
18     return(siz-1-n);
19     *dst = '\0';
20     return(siz-1);
21     }
22    
23 greg 2.2 size_t
24     strlcat(char *dst, const char *src, size_t siz)
25 greg 2.1 {
26 greg 2.2 size_t n = siz;
27 greg 2.1
28     while (*dst && --n > 0)
29     ++dst;
30     if (n <= 0)
31     return(siz);
32     return(siz-n + strlcpy(dst, src, n));
33     }