/*
 * ANSI C version of strlcpy
 * Based on the NetBSD strlcpy man page.
 *
 * Nathan Myers <ncm-nospam@cantrip.org>, 2003/06/03
 * Placed in the public domain.
 */

#ifndef HAVE_STRLCPY

#include <stdlib.h>  /* for size_t */
#include <string.h>  /* for strlen, memcpy */

size_t
strlcpy(char *dst, const char *src, size_t size) {
        const size_t len = strlen(src);
        if (size != 0) {
                memcpy(dst, src, (len > size - 1) ? size - 1 : len);
                dst[size - 1] = 0;
        }
        return len;
}

#endif