|
|
feed_items_get: simplify and exit earlier - sfeed_curses - sfeed curses UI (now part of sfeed, development is in sfeed) |
|
|
 |
git clone git://git.codemadness.org/sfeed_curses (git://git.codemadness.org) |
|
|
 |
Log |
|
|
 |
Files |
|
|
 |
Refs |
|
|
 |
README |
|
|
 |
LICENSE |
|
|
|
--- |
|
|
 |
commit 74959a9fbbc0599ca3c1b43d435fd57f6af2b1ef |
|
|
 |
parent 768a524cd3bbfe7c225b08e539a6ba35f9464ecb |
|
|
 |
Author: Hiltjo Posthuma <hiltjo@codemadness.org> (mailto://) |
application/vnd.lotus-organizer |
|
|
Date: Wed, 14 Jul 2021 17:56:30 +0200 |
|
|
|
|
|
|
|
feed_items_get: simplify and exit earlier |
|
|
|
|
|
|
|
This exits before free() or other calls which might reset errno also. |
|
|
|
|
|
|
|
Diffstat: |
|
|
|
M sfeed_curses.c | 17 ++++------------- |
|
|
|
|
|
|
|
1 file changed, 4 insertions(+), 13 deletions(-) |
|
|
|
--- |
|
|
 |
diff --git a/sfeed_curses.c b/sfeed_curses.c |
|
|
|
@@ -1256,7 +1256,7 @@ feed_items_free(struct items *items) |
|
|
|
items->cap = 0; |
|
|
|
} |
|
|
|
|
|
|
|
-int |
|
|
|
+void |
|
|
|
feed_items_get(struct feed *f, FILE *fp, struct items *itemsret) |
|
|
|
{ |
|
|
|
struct item *item, *items = NULL; |
|
|
|
@@ -1264,7 +1264,6 @@ feed_items_get(struct feed *f, FILE *fp, struct items *itemsret) |
|
|
|
size_t cap, i, linesize = 0, nitems; |
|
|
|
ssize_t linelen, n; |
|
|
|
off_t offset; |
|
|
|
- int ret = -1; |
|
|
|
|
|
|
|
cap = nitems = 0; |
|
|
|
offset = 0; |
|
|
|
@@ -1295,22 +1294,16 @@ feed_items_get(struct feed *f, FILE *fp, struct items *itemsret) |
|
|
|
nitems++; |
|
|
|
} |
|
|
|
if (ferror(fp)) |
|
|
|
- goto err; |
|
|
|
+ die("getline: %s", f->name); |
|
|
|
if (n <= 0 || feof(fp)) |
|
|
|
break; |
|
|
|
} |
|
|
|
- ret = 0; |
|
|
|
- |
|
|
|
-err: |
|
|
|
itemsret->cap = cap; |
|
|
|
itemsret->items = items; |
|
|
|
itemsret->len = nitems; |
|
|
|
free(line); |
|
|
|
|
|
|
|
- if (ret) |
|
|
|
- feed_items_free(itemsret); |
|
|
|
- |
|
|
|
- return ret; |
|
|
|
+ return; |
|
|
|
} |
|
|
|
|
|
|
|
void |
|
|
|
@@ -1345,9 +1338,7 @@ feed_load(struct feed *f, FILE *fp) |
|
|
|
size_t i; |
|
|
|
|
|
|
|
feed_items_free(&items); |
|
|
|
- if (feed_items_get(f, fp, &items) == -1) |
|
|
|
- die("%s: %s", __func__, f->name); |
|
|
|
- |
|
|
|
+ feed_items_get(f, fp, &items); |
|
|
|
p = &panes[PaneItems]; |
|
|
|
p->pos = 0; |
|
|
|
p->nrows = items.len; |
|