SMOLNET PORTAL home about changes
iscanfile(): reuse line-buffer - geomyidae - A small C-based gopherd.	Err	bitreich.org	70
hgit clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/	URL:git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/	bitreich.org	70
1Log	/scm/geomyidae/log.gph	bitreich.org	70
1Files	/scm/geomyidae/files.gph	bitreich.org	70
1Refs	/scm/geomyidae/refs.gph	bitreich.org	70
1Tags	/scm/geomyidae/tag	bitreich.org	70
1README	/scm/geomyidae/file/README.gph	bitreich.org	70
1LICENSE	/scm/geomyidae/file/LICENSE.gph	bitreich.org	70
i---	Err	bitreich.org	70
1commit 925572f3afedf7a80e13edd1233cc04c1a4a60f0	/scm/geomyidae/commit/925572f3afedf7a80e13edd1233cc04c1a4a60f0.gph	bitreich.org	70
1parent 2361134beb5458adbff043ea611884a090d56d42	/scm/geomyidae/commit/2361134beb5458adbff043ea611884a090d56d42.gph	bitreich.org	70
hAuthor: Hiltjo Posthuma <hiltjo@codemadness.org>	URL:mailto:hiltjo@codemadness.org	bitreich.org	70
iDate:   Sun, 11 Jun 2017 20:00:21 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
iscanfile(): reuse line-buffer	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M ind.c                               |      20 ++++++++++++--------	Err	bitreich.org	70
i	Err	bitreich.org	70
i1 file changed, 12 insertions(+), 8 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/ind.c b/ind.c	/scm/geomyidae/file/ind.c.gph	bitreich.org	70
i@@ -229,27 +229,31 @@ addindexs(Indexs *idx, Elems *el)	Err	bitreich.org	70
i Indexs *	Err	bitreich.org	70
i scanfile(char *fname)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        char *ln;	Err	bitreich.org	70
i-        int fd;	Err	bitreich.org	70
i+        char *ln = NULL;	Err	bitreich.org	70
i+        size_t linesiz = 0;	Err	bitreich.org	70
i+        ssize_t n;	Err	bitreich.org	70
i+        FILE *fp;	Err	bitreich.org	70
i         Indexs *ret;	Err	bitreich.org	70
i         Elems *el;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        fd = open(fname, O_RDONLY);	Err	bitreich.org	70
i-        if(fd < 0)	Err	bitreich.org	70
i+        if (!(fp = fopen(fname, "r")))	Err	bitreich.org	70
i                 return nil;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         ret = xcalloc(1, sizeof(Indexs));	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        while((ln = readln(fd)) != nil) {	Err	bitreich.org	70
i+        while ((n = getline(&ln, &linesiz, fp)) > 0) {	Err	bitreich.org	70
i+                if (ln[n - 1] == '\n')	Err	bitreich.org	70
i+                        ln[--n] = '\0';	Err	bitreich.org	70
i                 el = getadv(ln);	Err	bitreich.org	70
i-                free(ln);	Err	bitreich.org	70
i                 if(el == nil)	Err	bitreich.org	70
i                         continue;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i                 addindexs(ret, el);	Err	bitreich.org	70
i-                el = nil;	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i-        close(fd);	Err	bitreich.org	70
i+        if (ferror(fp))	Err	bitreich.org	70
i+                perror("getline");	Err	bitreich.org	70
i+        free(ln);	Err	bitreich.org	70
i+        fclose(fp);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         if(ret->n == nil) {	Err	bitreich.org	70
i                 free(ret);	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/geomyidae/commit/925572f3afed...
Content-Typetext/plain; charset=utf-8