diff options
author | Ralf Corsepius <ralf.corsepius@rtems.org> | 2003-03-25 20:48:35 +0000 |
---|---|---|
committer | Ralf Corsepius <ralf.corsepius@rtems.org> | 2003-03-25 20:48:35 +0000 |
commit | 34b5bdb6269544fb6ee8099db0fcf4402afaa1c0 (patch) | |
tree | 246e07f8e83028fdb4d08d076b5c7f5d34155fd1 /cpukit/libcsupport/src/strlcat.c | |
parent | 2003-03-25 Joel Sherrill <joel@OARcorp.com> (diff) | |
download | rtems-34b5bdb6269544fb6ee8099db0fcf4402afaa1c0.tar.bz2 |
Merger from rtems-4-6-branch.
Diffstat (limited to 'cpukit/libcsupport/src/strlcat.c')
-rw-r--r-- | cpukit/libcsupport/src/strlcat.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/cpukit/libcsupport/src/strlcat.c b/cpukit/libcsupport/src/strlcat.c new file mode 100644 index 0000000000..e0424eef7b --- /dev/null +++ b/cpukit/libcsupport/src/strlcat.c @@ -0,0 +1,41 @@ +/* + * utils.c - various utility functions used in pppd. + * + * Copyright (c) 1999 The Australian National University. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the Australian National University. The name of the University + * may not be used to endorse or promote products derived from this + * software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include <string.h> + +#ifndef HAVE_STRLCAT +/* + * strlcat - like strcat/strncat, doesn't overflow destination buffer, + * always leaves destination null-terminated (for len > 0). + */ +size_t +strlcat(dest, src, len) + char *dest; + const char *src; + size_t len; +{ + size_t dlen = strlen(dest); + + return dlen + strlcpy(dest + dlen, src, (len > dlen? len - dlen: 0)); +} +#endif |