static int strcat_s()

in src/main/include/log4cxx/private/string_c11.h [40:63]


static int strcat_s(char* destArg, size_t destsz, const char* src)
{
	if (!src || !destArg || RSIZE_MAX < destsz)
		return -1;
	if (0 == destsz)
		return -2;
	--destsz;
	char* dest = destArg;
	size_t index = 0;
	while (*dest && index < destsz)
		++index, ++dest;
	while (*src && index < destsz)
	{
		*dest++ = *src++;
		++index;
	}
	*dest = 0;
	if (*src) // longer than destsz?
	{
		*destArg = 0; // Do not return a partial result
		return -3;
	}
	return 0;
}