platform.h: undef HAVE_STRCHRNUL only on correct versions of FreeBSD

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/include/platform.h b/include/platform.h
index cfc8029..2899a90 100644
--- a/include/platform.h
+++ b/include/platform.h
@@ -385,10 +385,6 @@
 # undef HAVE_STRVERSCMP
 #endif
 
-#if defined(__dietlibc__)
-# undef HAVE_STRCHRNUL
-#endif
-
 #if defined(__WATCOMC__)
 # undef HAVE_DPRINTF
 # undef HAVE_GETLINE
@@ -434,10 +430,21 @@
 # undef HAVE_UNLOCKED_LINE_OPS
 #endif
 
-#if defined(__FreeBSD__) || defined(__APPLE__)
+#if defined(__dietlibc__)
 # undef HAVE_STRCHRNUL
 #endif
 
+#if defined(__APPLE__)
+# undef HAVE_STRCHRNUL
+#endif
+
+#if defined(__FreeBSD__)
+# include <sys/param.h>
+# if __FreeBSD_version < 1000029
+#  undef HAVE_STRCHRNUL
+# endif
+#endif
+
 #if defined(__NetBSD__)
 # define HAVE_GETLINE 1  /* Recent NetBSD versions have getline() */
 #endif