X-Git-Url: https://git.draconx.ca/gitweb/cdecl99.git/blobdiff_plain/72aedaedd7afa666f7c69dfe7ef4b7ec3dbc2458..eda9528293fbc32857a5856a30ebd6585b281215:/src/output.c diff --git a/src/output.c b/src/output.c index fb80f99..c0438e6 100644 --- a/src/output.c +++ b/src/output.c @@ -38,9 +38,15 @@ size_t cdecl__advance(struct output_state *dst, size_t amount) size_t cdecl__strlcpy(char *dst, const char *src, size_t dstlen) { - if (dst) - snprintf(dst, dstlen, "%s", src); - return strlen(src); + size_t srclen = strlen(src); + + if (dstlen > 0) { + memcpy(dst, src, MIN(dstlen, srclen+1)); + if (dstlen <= srclen) + dst[dstlen-1] = 0; + } + + return srclen; } size_t cdecl__emit(struct output_state *dst, const char *src)