ncurses 6.1 - patch 20190928
[ncurses.git] / include / nc_string.h
index c087a82fb1d8addd3e8f131af0938a460867c5fa..ce7ccb1280ef11cc3eeb3b66828750bc04f56da2 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2012 Free Software Foundation, Inc.                        *
+ * Copyright (c) 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            *
 
 #include <ncurses_cfg.h>
 
+#if HAVE_BSD_STRING_H
+#include <bsd/string.h>
+#endif
+
 /*
- * $Id: nc_string.h,v 1.3 2012/02/23 10:21:17 tom Exp $
+ * $Id: nc_string.h,v 1.7 2016/09/10 19:57:15 tom Exp $
  *
  * String-hacks.  Use these macros to stifle warnings on (presumably) correct
  * uses of strcat, strcpy and sprintf.
  */
 
 #ifdef __cplusplus
-#define NCURSES_VOID /* nothing */
+#define NCURSES_VOID           /* nothing */
 #else
 #define NCURSES_VOID (void)
 #endif
 
 #if USE_STRING_HACKS && HAVE_STRLCAT
-#define _nc_STRCAT(d,s,n)      NCURSES_VOID strlcat((d),(s),(n))
+#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),(n))
+#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
 #define _nc_SPRINTF             NCURSES_VOID snprintf
-#define _nc_SLIMIT(n)           (n),
+#define _nc_SLIMIT(n)           NCURSES_CAST(size_t,n),
 #else
 #define _nc_SPRINTF             NCURSES_VOID sprintf
 #define _nc_SLIMIT(n)          /* nothing */