diff options
author | kaa <kaa@disroot.org> | 2023-07-05 12:01:30 -0700 |
---|---|---|
committer | kaa <kaa@disroot.org> | 2023-07-05 12:01:30 -0700 |
commit | d72126cc5efc1cc5cca2de8960b13a24fee1c7e2 (patch) | |
tree | 5f7e4784110683e9160b827dd426f2e3802d51f7 | |
parent | 94e0fbe794455d3e61ffcb5b2a34918ddd12949b (diff) |
storeline was really a worse and non-standard getline, so getline has replaced it.
-rw-r--r-- | neols.c | 13 | ||||
-rw-r--r-- | shared.h | 23 |
2 files changed, 6 insertions, 30 deletions
@@ -1,11 +1,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> -#include "shared.h" -/* A majority of lines in files.json -are less than 80 characters long. */ -#define GUESS 80 /* Each informative line has 6 spaces, a quote, then the data type, then a quote, then a colon, then a space, then a quote, @@ -97,15 +93,15 @@ main(int argc, char **argv) else dir = argv[i]; } - char *line; + char *line = NULL; /* The various statistics related to each entry are stored, one entry at a time. A path may be any size, so each line need be handled by realloc. */ char *path = NULL, *updated_at = NULL, *sha1_hash = NULL; int is_directory = 0, size = 0; - int end, len; - for (end = 0; ! end;) { - line = storeline(in, &end, &len, GUESS); + int len; + unsigned long line_size = 0; + while ((len = getline(&line, &line_size, in)) > 0) { /* Only on lines terminating an entry, '}' is the fifth character. The ninth character of each data line is unique. */ @@ -143,6 +139,7 @@ main(int argc, char **argv) } else if (line[8] == 'h') { sha1_hash = line; } + line = NULL; } return 0; } @@ -1,22 +1 @@ -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; -} +char *site = "https://kaa.neocities.org/"; |