libfetch: use more portable getline() interface

this is for better portability in order to avoid using a function
which is BSD-only or available via libbsd

(cherry picked from commit ee3ca711a8)
(cherry picked from commit 635eb7ac79)
This commit is contained in:
Daniel Kolesa 2021-08-17 16:01:46 +02:00 committed by Baptiste Daroussin
parent cae17ea368
commit 037c2f4fe3

View file

@ -1526,12 +1526,13 @@ http_get_proxy(struct url * url, const char *flags)
static void
http_print_html(FILE *out, FILE *in)
{
size_t len;
char *line, *p, *q;
ssize_t len = 0;
size_t cap;
char *line = NULL, *p, *q;
int comment, tag;
comment = tag = 0;
while ((line = fgetln(in, &len)) != NULL) {
while ((len = getline(&line, &cap, in)) >= 0) {
while (len && isspace((unsigned char)line[len - 1]))
--len;
for (p = q = line; q < line + len; ++q) {
@ -1559,6 +1560,8 @@ http_print_html(FILE *out, FILE *in)
fwrite(p, q - p, 1, out);
fputc('\n', out);
}
free(line);
}