diff options
Diffstat (limited to 'shared.h')
-rw-r--r-- | shared.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/shared.h b/shared.h new file mode 100644 index 0000000..b4232ae --- /dev/null +++ b/shared.h @@ -0,0 +1,22 @@ +static char * +storeline(FILE *in, int *end, int *len, int guess) +{ + static char *line; + line = calloc(guess, sizeof(char)); + int i = 0, buflen = guess; + char ch; + while ((ch = fgetc(in)) != EOF && ch != '\n') { + if (i == buflen - 1) { + buflen += guess; + line = realloc(line, buflen * sizeof(char)); + } + line[i] = ch; + ++i; + } + line[i] = '\0'; + *len = i; + if (ch == EOF) + *end = 1; + + return line; +} |