improve consistency of line counting (on an invalid file) - sfeed_curses - sfeed curses UI (now part of sfeed, development is in sfeed)
 (HTM) git clone git://git.codemadness.org/sfeed_curses
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 827f4afdcecbb6cb53ee60d52d068ce5f94bbaac
 (DIR) parent 1d4e2e3f6913318cdfce03f08bb517a8c8ebbc56
 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Sat, 10 Jul 2021 19:14:48 +0200
       
       improve consistency of line counting (on an invalid file)
       
       This only happens when there is an invalid sfeed(5) feed file with an empty
       line.  The feed_items_get() function would stop further processing, but the
       feed_count() function did not.
       
       Diffstat:
         M sfeed_curses.c                      |       6 +++---
       
       1 file changed, 3 insertions(+), 3 deletions(-)
       ---
 (DIR) diff --git a/sfeed_curses.c b/sfeed_curses.c
       @@ -1262,7 +1262,7 @@ feed_items_get(struct feed *f, FILE *fp, struct items *itemsret)
                struct item *item, *items = NULL;
                char *line = NULL;
                size_t cap, i, linesize = 0, nitems;
       -        ssize_t linelen;
       +        ssize_t linelen, n;
                off_t offset;
                int ret = -1;
        
       @@ -1273,7 +1273,7 @@ feed_items_get(struct feed *f, FILE *fp, struct items *itemsret)
                                cap = cap ? cap * 2 : 16;
                                items = erealloc(items, cap * sizeof(struct item));
                        }
       -                if ((linelen = getline(&line, &linesize, fp)) > 0) {
       +                if ((n = linelen = getline(&line, &linesize, fp)) > 0) {
                                item = &items[i];
        
                                item->offset = offset;
       @@ -1296,7 +1296,7 @@ feed_items_get(struct feed *f, FILE *fp, struct items *itemsret)
                        }
                        if (ferror(fp))
                                goto err;
       -                if (linelen <= 0 || feof(fp))
       +                if (n <= 0 || feof(fp))
                                break;
                }
                ret = 0;