X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=include%2Fnc_string.h;h=546aa0695ba0279c80dc57270a0905389cfa8526;hp=7e6ccd410cbfe305eb8dfdc8d05b76eb9d1eba7e;hb=265e45e43e9917e8b9ecc2bf9d23867a3ede2ecd;hpb=cc387b11f421650091d84640e05825ea5161ac66 diff --git a/include/nc_string.h b/include/nc_string.h index 7e6ccd41..546aa069 100644 --- a/include/nc_string.h +++ b/include/nc_string.h @@ -1,5 +1,6 @@ /**************************************************************************** - * Copyright (c) 2012,2013 Free Software Foundation, Inc. * + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 2012-2013,2016 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -35,8 +36,12 @@ #include +#if HAVE_BSD_STRING_H +#include +#endif + /* - * $Id: nc_string.h,v 1.4 2013/12/15 01:09:19 tom Exp $ + * $Id: nc_string.h,v 1.9 2021/04/25 00:10:43 tom Exp $ * * String-hacks. Use these macros to stifle warnings on (presumably) correct * uses of strcat, strcpy and sprintf. @@ -56,18 +61,26 @@ #if USE_STRING_HACKS && HAVE_STRLCAT #define _nc_STRCAT(d,s,n) NCURSES_VOID strlcat((d),(s),NCURSES_CAST(size_t,n)) +#define _nc_STRNCAT(d,s,m,n) NCURSES_VOID strlcat((d),(s),NCURSES_CAST(size_t,m)) #else #define _nc_STRCAT(d,s,n) NCURSES_VOID strcat((d),(s)) +#define _nc_STRNCAT(d,s,m,n) NCURSES_VOID strncat((d),(s),(n)) #endif #if USE_STRING_HACKS && HAVE_STRLCPY #define _nc_STRCPY(d,s,n) NCURSES_VOID strlcpy((d),(s),NCURSES_CAST(size_t,n)) +#define _nc_STRNCPY(d,s,n) NCURSES_VOID strlcpy((d),(s),NCURSES_CAST(size_t,n)) #else #define _nc_STRCPY(d,s,n) NCURSES_VOID strcpy((d),(s)) +#define _nc_STRNCPY(d,s,n) NCURSES_VOID strncpy((d),(s),(n)) #endif #if USE_STRING_HACKS && HAVE_SNPRINTF +#ifdef __cplusplus #define _nc_SPRINTF NCURSES_VOID snprintf +#else +#define _nc_SPRINTF NCURSES_VOID (snprintf) +#endif #define _nc_SLIMIT(n) NCURSES_CAST(size_t,n), #else #define _nc_SPRINTF NCURSES_VOID sprintf