Krolyxon
Commit 3804b50

Branches

Refs →

nsxiv3804b50

compress duplicated logic into a function (#384)

Author
NRK
Date
2022-11-05 00:01 +0100
Parent
045abbd
Commit
3804b5065643ff21f0e4974ca8fe7837d55ef597

+17 −32

1 file changed

  1. M commands.c +17 −32
M commands.c View
@@ -31,6 +31,20 @@ extern img_t img;
3131 extern tns_t tns;
3232 extern win_t win;
3333
34+static bool navigate_to(arg_t n)
35+{
36+ if (n >= 0 && n < filecnt && n != fileidx) {
37+ if (mode == MODE_IMAGE) {
38+ load_image(n);
39+ } else if (mode == MODE_THUMB) {
40+ fileidx = n;
41+ tns.dirty = true;
42+ }
43+ return true;
44+ }
45+ return false;
46+}
47+
3448 bool cg_quit(arg_t status)
3549 {
3650 unsigned int i;
@@ -126,32 +140,13 @@ bool cg_remove_image(arg_t _)
126140
127141 bool cg_first(arg_t _)
128142 {
129− if (mode == MODE_IMAGE && fileidx != 0) {
130− load_image(0);
131− return true;
132− } else if (mode == MODE_THUMB && fileidx != 0) {
133− fileidx = 0;
134− tns.dirty = true;
135− return true;
136− } else {
137− return false;
138− }
143+ return navigate_to(0);
139144 }
140145
141146 bool cg_n_or_last(arg_t _)
142147 {
143148 int n = prefix != 0 && prefix - 1 < filecnt ? prefix - 1 : filecnt - 1;
144−
145− if (mode == MODE_IMAGE && fileidx != n) {
146− load_image(n);
147− return true;
148− } else if (mode == MODE_THUMB && fileidx != n) {
149− fileidx = n;
150− tns.dirty = true;
151− return true;
152− } else {
153− return false;
154− }
149+ return navigate_to(n);
155150 }
156151
157152 bool cg_scroll_screen(arg_t dir)
@@ -224,17 +219,7 @@ bool cg_navigate_marked(arg_t n)
224219 new = i;
225220 }
226221 }
227− if (new != fileidx) {
228− if (mode == MODE_IMAGE) {
229− load_image(new);
230− } else {
231− fileidx = new;
232− tns.dirty = true;
233− }
234− return true;
235− } else {
236− return false;
237− }
222+ return navigate_to(new);
238223 }
239224
240225 bool cg_change_gamma(arg_t d)