diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2020-09-25 21:06:59 +0200 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2020-09-29 18:19:53 +0200 |
commit | 4b4cee0c0c99f531a45157fd27f5441e511db109 (patch) | |
tree | 825aae023f27c2f578536af35dfd01b1dc96e18e /lib/compat/getline.c | |
parent | d87bffd89b9c0a26a65f0c629250fa87902b6cb8 (diff) |
Replace file/getline usage with istream
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'lib/compat/getline.c')
-rw-r--r-- | lib/compat/getline.c | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/lib/compat/getline.c b/lib/compat/getline.c deleted file mode 100644 index e63c50e..0000000 --- a/lib/compat/getline.c +++ /dev/null @@ -1,60 +0,0 @@ -/* SPDX-License-Identifier: GPL-3.0-or-later */ -/* - * getline.c - * - * Copyright (C) 2019 David Oberhollenzer <goliath@infraroot.at> - */ -#include "config.h" -#include "compat.h" - -#include <string.h> -#include <stdlib.h> - -#ifndef HAVE_GETLINE -ssize_t getline(char **line, size_t *n, FILE *fp) -{ - size_t new_cap, len = 0, cap = 0; - char *buffer = NULL, *new; - int c; - - if (feof(fp) || ferror(fp)) - return -1; - - do { - c = fgetc(fp); - - if (ferror(fp)) - return -1; - - if (c == EOF) - c = '\n'; - - if (len == cap) { - new_cap = cap ? cap * 2 : 32; - new = realloc(buffer, new_cap); - - if (new == NULL) - return -1; - - buffer = new; - cap = new_cap; - } - - buffer[len++] = c; - } while (c != '\n'); - - if (len == cap) { - new = realloc(buffer, cap ? cap * 2 : 32); - if (new == NULL) - return -1; - - buffer = new; - } - - buffer[len] = '\0'; - - *line = buffer; - *n = len; - return len; -} -#endif |