| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | /* * Copyright (C) 2002     Manuel Novoa III * Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org> * * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. *//* OpenBSD function: * Append at most n-1-strlen(dst) chars from src to dst and nul-terminate dst. * Returns strlen(src) + strlen({original} dst), so truncation occurred if the * return val is >= n. * Note: If dst doesn't contain a nul in the first n chars, strlen(dst) is *       taken as n. */#include "_string.h"size_t strlcat(register char *__restrict dst,			   register const char *__restrict src,			   size_t n){	size_t len;	char dummy[1];	len = 0;	while (1) {		if (len >= n) {			dst = dummy;			break;		}		if (!*dst) {			break;		}		++dst;		++len;	}	while ((*dst = *src) != 0) {		if (++len < n) {			++dst;		}		++src;	}	return len;}
 |