dnl CF_ENABLE_STRING_HACKS version: 1 updated: 2012/02/25 06:33:21
dnl ----------------------
dnl On a few platforms, the compiler and/or loader nags with untruthful
dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect,
dnl and implying that most uses of the recommended alternatives are correct.
dnl
dnl Factually speaking, no one has actually counted the number of uses of these
dnl functions versus the total of incorrect uses.  Samples of a few thousand
dnl instances are meaningless compared to the hundreds of millions of lines of
dnl existing C code.
dnl
dnl strlcat/strlcpy are (as of 2012) non-standard, and are available on some
dnl platforms, in implementations of varying quality.  Likewise, snprintf is
dnl standard - but evolved through phases, and older implementations are likely
dnl to yield surprising results, as documented in manpages on various systems.
AC_DEFUN([CF_ENABLE_STRING_HACKS],
[
AC_MSG_CHECKING(if you want to work around bogus compiler/loader warnings)
AC_ARG_ENABLE(string-hacks,
	[  --enable-string-hacks  work around bogus compiler/loader warnings],
	[with_string_hacks=$enableval],
	[with_string_hacks=no])
AC_MSG_RESULT($with_string_hacks)

if test "x$with_string_hacks" = "xyes"; then
 	AC_DEFINE(USE_STRING_HACKS)
	AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings)
	AC_CHECK_FUNCS( strlcat strlcpy snprintf )
fi
])dnl
