commit 3321d001b0f7ad7e56ebbb3372d5abcb6add15b8
parent 23db5f2d8c81c760b8f411ed380ad25cb4829792
Author: citbl <citbl@citbl.org>
Date: Sat, 22 Nov 2025 20:28:07 +1000
fix segfault
Diffstat:
3 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/TODO b/TODO
@@ -11,4 +11,3 @@
[ ] indented feeds under one
[ ] unify duplicate urls
[ ] reload button
-[ ] segfaulting when going beyond the first feed?!
diff --git a/src/config.h b/src/config.h
@@ -1,6 +1,6 @@
#pragma once
-#define VERSION "v1.8"
+#define VERSION "v1.9"
// recommended, pass as chrome for reddit feeds
#define USER_AGENT \
diff --git a/src/keys.c b/src/keys.c
@@ -98,10 +98,13 @@ static void
up(app_t* app)
{
if (app->selected_panel == 0) { // change feed
- app->selected_feed = MAX(app->selected_feed - 1, 0);
+ // MAX was causing unsigned int wraparound
+ if (app->selected_feed == 0) return;
+ app->selected_feed -= 1;
app->selected_post = 0;
} else if (app->selected_panel == 1) { // change post
- app->selected_post = MAX(app->selected_post - 1, 0);
+ if (app->selected_post == 0) return;
+ app->selected_post -= 1;
}
}
@@ -109,10 +112,11 @@ static void
down(app_t* app)
{
if (app->selected_panel == 0) { // change feed
- app->selected_feed = MIN(app->selected_feed + 1, app->feeds_len - 1);
+ if (app->selected_feed == app->feeds_len - 1) return;
+ app->selected_feed += 1;
app->selected_post = 0;
} else if (app->selected_panel == 1) { // change post
- app->selected_post
- = MIN(app->selected_post + 1, app->feeds[app->selected_feed]->posts_len - 1);
+ if (app->selected_post == app->feeds[app->selected_feed]->posts_len - 1) return;
+ app->selected_post += 1;
}
}