#include #include #include "talk.h" char *readupto(FILE *f, char end){ char c; char *out = malloc(128); int counter = 0; while ((c = fgetc(f)) != EOF){ out[counter] = c; if (c == end) break; counter++; if (counter > 128) out = realloc(out, counter + 128); } if (c == EOF && end != EOF) return NULL; out[counter] = 0; out = realloc(out, counter); return out; } char *readnchars(FILE *f, int n){ char c; char *out = malloc(128); int counter = 0; while ((c = fgetc(f)) != EOF && counter < n){ out[counter] = c; counter++; if (counter > 128) out = realloc(out, counter + 128); } if (c == EOF) return NULL; out[counter] = 0; out = realloc(out, counter); return out; }