| 1712 | } |
| 1713 | |
| 1714 | size_t |
| 1715 | strlncat(char *dst, size_t len, const char *src, size_t n) |
| 1716 | { |
| 1717 | size_t slen; |
| 1718 | size_t dlen; |
| 1719 | size_t rlen; |
| 1720 | size_t ncpy; |
| 1721 | |
| 1722 | slen = strnlen(src, n); |
| 1723 | dlen = strnlen(dst, len); |
| 1724 | |
| 1725 | if (dlen < len) { |
| 1726 | rlen = len - dlen; |
| 1727 | ncpy = slen < rlen ? slen : (rlen - 1); |
| 1728 | memcpy(dst + dlen, src, ncpy); |
| 1729 | dst[dlen + ncpy] = '\0'; |
| 1730 | } |
| 1731 | |
| 1732 | assert(len > slen + dlen); |
| 1733 | return slen + dlen; |
| 1734 | } |
| 1735 | |
| 1736 | size_t |
| 1737 | strlcat(char *dst, const char *src, size_t len) |
no test coverage detected