summaryrefslogtreecommitdiff
path: root/neols.c
diff options
context:
space:
mode:
authorkaa <kaa@disroot.org>2023-07-05 12:01:30 -0700
committerkaa <kaa@disroot.org>2023-07-05 12:01:30 -0700
commitd72126cc5efc1cc5cca2de8960b13a24fee1c7e2 (patch)
tree5f7e4784110683e9160b827dd426f2e3802d51f7 /neols.c
parent94e0fbe794455d3e61ffcb5b2a34918ddd12949b (diff)
storeline was really a worse and non-standard getline, so getline has replaced it.
Diffstat (limited to 'neols.c')
-rw-r--r--neols.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/neols.c b/neols.c
index a288fee..01ce98c 100644
--- a/neols.c
+++ b/neols.c
@@ -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;
}