Use the built-in getline on more systems that don't have it
authorDan Fandrich <dan@coneharvesters.com>
Wed, 29 Jun 2011 06:03:27 +0000 (23:03 -0700)
committerDenys Vlasenko <vda.linux@googlemail.com>
Thu, 30 Jun 2011 00:11:49 +0000 (02:11 +0200)
Signed-off-by: Dan Fandrich <dan@coneharvesters.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
include/platform.h

index eafc3fc..d186e49 100644 (file)
@@ -376,6 +376,7 @@ typedef unsigned smalluint;
 
 #if defined(__WATCOMC__)
 # undef HAVE_DPRINTF
+# undef HAVE_GETLINE
 # undef HAVE_MEMRCHR
 # undef HAVE_MKDTEMP
 # undef HAVE_SETBIT
@@ -389,15 +390,13 @@ typedef unsigned smalluint;
 # undef HAVE_NET_ETHERNET_H
 #endif
 
-#if defined(__FreeBSD__)
-# undef HAVE_STRCHRNUL
-#endif
-
+/* These BSD-derived OSes share many similarities */
 #if (defined __digital__ && defined __unix__) \
  || defined __APPLE__ \
  || defined __FreeBSD__ || defined __OpenBSD__ || defined __NetBSD__
 # undef HAVE_CLEARENV
 # undef HAVE_FDATASYNC
+# undef HAVE_GETLINE
 # undef HAVE_MNTENT_H
 # undef HAVE_PTSNAME_R
 # undef HAVE_SYS_STATFS_H
@@ -407,13 +406,21 @@ typedef unsigned smalluint;
 # undef HAVE_DPRINTF
 #endif
 
+#if defined(__FreeBSD__)
+# undef HAVE_STRCHRNUL
+#endif
+
+#if defined(__NetBSD__)
+# define HAVE_GETLINE 1  /* Recent NetBSD versions have getline() */
+#endif
+
 #if defined(__digital__) && defined(__unix__)
 # undef HAVE_STPCPY
-# undef HAVE_STRVERSCMP
 #endif
 
 #if defined(ANDROID)
 # undef HAVE_DPRINTF
+# undef HAVE_GETLINE
 # undef HAVE_STPCPY
 # undef HAVE_STRCHRNUL
 # undef HAVE_STRVERSCMP
@@ -472,6 +479,7 @@ extern int vasprintf(char **string_ptr, const char *format, va_list p) FAST_FUNC
 #endif
 
 #ifndef HAVE_GETLINE
+#include <stdio.h> /* for FILE */
 extern ssize_t getline(char **lineptr, size_t *n, FILE *stream) FAST_FUNC;
 #endif