Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
return ret;
}
#endif
+
+#ifndef HAVE_GETLINE
+ssize_t openconnect__getline(char **lineptr, size_t *n, FILE *stream)
+{
+ int len = 0;
+
+ if (!*lineptr) {
+ *n = 2;
+ *lineptr = malloc(*n);
+ if (!*lineptr)
+ return -1;
+ }
+
+ while (fgets((*lineptr) + len, (*n) - len, stream)) {
+
+ len += strlen((*lineptr) + len);
+ if ((*lineptr)[len-1] == '\n')
+ break;
+
+ *n *= 2;
+ *lineptr = realloc(*lineptr, *n);
+ if (!*lineptr)
+ return -1;
+ }
+ if (len)
+ return len;
+ return -1;
+}
+#endif
;;
esac
+AC_CHECK_FUNC(getline, [AC_DEFINE(HAVE_GETLINE, 1)], [])
AC_CHECK_FUNC(strcasestr, [AC_DEFINE(HAVE_STRCASESTR, 1)], [])
need_vacopy=no
AC_CHECK_FUNC(asprintf, [AC_DEFINE(HAVE_ASPRINTF, 1)], [need_vacopy=yes])
#define asprintf openconnect__asprintf
int openconnect__asprintf(char **strp, const char *fmt, ...);
#endif
+#ifndef HAVE_GETLINE
+#define getline openconnect__getline
+ssize_t openconnect__getline(char **lineptr, size_t *n, FILE *stream);
+#endif
/****************************************************************************/