+#: build/C/man3/strcpy.3:144
+msgid ""
+"(Of course, the above technique ignores the fact that information contained "
+"in I<src> is lost in the copying to I<dest>.)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/strcpy.3:148
+#, fuzzy, no-wrap
+#| msgid ""
+#| "char *\n"
+#| "strncpy(char *dest, const char *src, size_t n)\n"
+#| "{\n"
+#| " size_t i;\n"
+msgid " size_t strlcpy(char *dest, const char *src, size_t size);\n"
+msgstr ""
+"char *\n"
+"strncpy(char *dest, const char *src, size_t n)\n"
+"{\n"
+" size_t i;\n"
+
+#. http://static.usenix.org/event/usenix99/full_papers/millert/millert_html/index.html
+#. "strlcpy and strlcat - consistent, safe, string copy and concatenation"
+#. 1999 USENIX Annual Technical Conference
+#. https://lwn.net/Articles/506530/
+#. type: Plain text
+#: build/C/man3/strcpy.3:183
+msgid ""
+"This function is similar to B<strncpy>(), but it copies at most I<size-1> "
+"bytes to I<dest>, always adds a terminating null byte, and does not pad the "
+"target with (further) null bytes. This function fixes some of the problems "
+"of B<strcpy>() and B<strncpy>(), but the caller must still handle the "
+"possibility of data loss if I<size> is too small. The return value of the "
+"function is the length of I<src>, which allows truncation to be easily "
+"detected: if the return value is greater than or equal to I<size>, "
+"truncation occurred. If loss of data matters, the caller I<must> either "
+"check the arguments before the call, or test the function return value. "
+"B<strlcpy>() is not present in glibc and is not standardized by POSIX, but "
+"is available on Linux via the I<libbsd> library."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man3/strcpy.3:194