nsxiv3804b50
compress duplicated logic into a function (#384)
+17 −32
1 file changed
- M commands.c +17 −32
| @@ -31,6 +31,20 @@ extern img_t img; | |||
| 31 | 31 | extern tns_t tns; | |
| 32 | 32 | extern win_t win; | |
| 33 | 33 | ||
| 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 | + | ||
| 34 | 48 | bool cg_quit(arg_t status) | |
| 35 | 49 | { | |
| 36 | 50 | unsigned int i; | |
| @@ -126,32 +140,13 @@ bool cg_remove_image(arg_t _) | |||
| 126 | 140 | ||
| 127 | 141 | bool cg_first(arg_t _) | |
| 128 | 142 | { | |
| 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); | |
| 139 | 144 | } | |
| 140 | 145 | ||
| 141 | 146 | bool cg_n_or_last(arg_t _) | |
| 142 | 147 | { | |
| 143 | 148 | 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); | |
| 155 | 150 | } | |
| 156 | 151 | ||
| 157 | 152 | bool cg_scroll_screen(arg_t dir) | |
| @@ -224,17 +219,7 @@ bool cg_navigate_marked(arg_t n) | |||
| 224 | 219 | new = i; | |
| 225 | 220 | } | |
| 226 | 221 | } | |
| 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); | |
| 238 | 223 | } | |
| 239 | 224 | ||
| 240 | 225 | bool cg_change_gamma(arg_t d) | |