Something
public text v1 · immutablechar* fgetline(FILE* fp) {
size_t size = 0;
char* line = malloc(size);
char buf = ' ';
char* tmp;
while (((buf = fgetc(fp)) != '\n') && buf != EOF) {
size += 2;
tmp = realloc(line, size);
if (tmp == NULL) {
tmp = malloc(size);
strcpy(tmp, line);
}
line = tmp;
line[size - 2] = buf;
line[size - 1] = '\0';
}
return line;
}