src/stdlib/strapp.c
/*==================================
 * llstrapp -- llstrncat except limit includes existing string
 *  ie, strncat except it always terminates, it handles UTF-8,
 *  and the limit is inclusive of existing contents
 * handles UTF-8
 *================================*/
- llstrncat except limit includes existing string
ie, strncat except it always terminates, it handles UTF-8,
and the limit is inclusive of existing contents
handles UTF-8
- llstrncat except limit includes existing string ie strncat except it always terminates it handles UTF - 8 and the limit is inclusive of existing contents handles UTF - 8
char *
llstrapps (char *dest, size_t limit, int utf8, const char *src)
{
	size_t len;
	int n;
	if (!src || !dest || !src[0]) return dest;
	len = strlen(dest);
	n = limit-len;
	ASSERT(n >= 0);
	if (n < 2) 
		return dest;
	llstrncpy(dest+len, src, n, utf8);
	return dest;
}
char * llstrapps ( char * dest , size_t limit , int utf8 , const char * src ) { size_t len ; int n ; if ( ! src || ! dest || ! src [ 0 ] ) return dest ; len = strlen ( dest ) ; n = limit - len ; ASSERT ( n >= 0 ) ; if ( n < 2 ) return dest ; llstrncpy ( dest + len , src , n , utf8 ) ; return dest ; }
llstrapp -- llstrncat except limit includes existing string
  ie, strncat except it always terminates, it handles UTF-8,
  and the limit is inclusive of existing contents
 handles UTF-8
llstrapp -- llstrncat except limit includes existing string ie strncat except it always terminates it handles UTF - 8 and the limit is inclusive of existing contents handles UTF - 8
/* must fit trailing zero */