/*
 * strlcat.c
 */

#include <string.h>
#include <klibc/compiler.h>

size_t strlcat(char *dst, const char *src, size_t size)
{
  size_t bytes = 0;
  char *q = dst;
  const char *p = src;
  char ch;

  while ( bytes < size && *q ) {
    q++;
    bytes++;
  }
  if (bytes == size)
    return (bytes + strlen(src));

  while ( (ch = *p++) ) {
    if ( bytes+1 < size )
      *q++ = ch;

    bytes++;
  }

  *q = '\0';
  return bytes;
}
