opnsense-ports/multimedia/vdr/files/patch-tools.c
Franco Fichtner 8cb1a96ede ports: pull in a snapshot of the FreeBSD ports tree
Taken from:	https://github.com/freebsd/freebsd-ports.git
Commit id:	5070672073b68be364139bc6b3a89100bd17d331
2014-11-09 14:03:21 +01:00

38 lines
774 B
C

--- tools.c.orig
+++ tools.c
@@ -1201,9 +1201,35 @@ cReadLine::~cReadLine()
free(buffer);
}
+#ifdef __FreeBSD__
+#if __FreeBSD_version > 800000
+#define HAVE_GETLINE
+#endif
+#else
+#define HAVE_GETLINE
+#endif
+
char *cReadLine::Read(FILE *f)
{
+#ifndef HAVE_GETLINE
+ size_t n;
+
+ if (!buffer) {
+ if (!(buffer = (char *)malloc(size = 4096)))
+ return NULL;
+ }
+ if (!fgets(buffer, size, f))
+ return NULL;
+ while ((n = strlen(buffer)) >= size - 1 && buffer[n - 1] != '\n') {
+ if (!(buffer = (char *)realloc(buffer, size * 2)))
+ return NULL;
+ size *= 2;
+ if (!fgets(buffer + n, size - n, f))
+ break;
+ }
+#else
int n = getline(&buffer, &size, f);
+#endif
if (n > 0) {
n--;
if (buffer[n] == '\n') {