1 // Copyright 2016 The Fuchsia Authors
2 // Copyright 2002, Manuel J. Petit
3 // Copyright (c) 2008 Travis Geiselbrecht
4 //
5 // Use of this source code is governed by a MIT-style
6 // license that can be found in the LICENSE file or at
7 // https://opensource.org/licenses/MIT
8 
9 #include <string.h>
10 #include <sys/types.h>
11 
12 size_t
strlcat(char * dst,char const * src,size_t s)13 strlcat(char *dst, char const *src, size_t s)
14 {
15     size_t i;
16     size_t j= strnlen(dst, s);
17 
18     if (!s) {
19         return j+strlen(src);
20     }
21 
22     dst+= j;
23 
24     for (i= 0; ((i< s-1) && src[i]); i++) {
25         dst[i]= src[i];
26     }
27 
28     dst[i]= 0;
29 
30     return j + i + strlen(src+i);
31 }
32