[Mesa-dev] [PATCH v6 1/3] util: Add util_strlcpy

Brian Paul brianp at vmware.com
Wed Jul 5 14:46:47 UTC 2017


On 07/05/2017 12:57 AM, Robert Foss wrote:
> Add local strlcpy implementation.
>
> Signed-off-by: Robert Foss <robert.foss at collabora.com>
> ---
> Changes since v5:
>    Actually include changes from v5 in patch
>
> Changes since v4:
>    Gustaw Smolarczyk <wielkiegie at gmail.com>
>     - Make util_strlcpy have the same behaviour as strlcpy
>
> Changes since v3:
>    Matt Turner <mattst88 at gmail.com>
>     - Change name of util_strncpy to util_strlcpy
>
> Changes since v2:
>    Brian Paul <brianp at vmware.com>
>      - Patch added
>
>
>   src/util/u_string.h | 9 +++++++++
>   1 file changed, 9 insertions(+)
>
> diff --git a/src/util/u_string.h b/src/util/u_string.h
> index e88e13f42c..bbabcbc7cb 100644
> --- a/src/util/u_string.h
> +++ b/src/util/u_string.h
> @@ -48,6 +48,15 @@
>   extern "C" {
>   #endif
>
> +static inline size_t
> +util_strlcpy(char *dst, const char *src, size_t n)
> +{
> +   strncpy(dst, src, n);
> +   dst[n-1] = '\0';
> +
> +   return strnlen(src, n);
> +}

This effectively walks over the source string twice.  I'd suggest just 
using your own loop.

-Brian

> +
>   #ifdef _GNU_SOURCE
>
>   #define util_strchrnul strchrnul
>



More information about the mesa-dev mailing list