Krolyxon
Commit 1892ed9

Branches

Refs →

nsxiv1892ed9

Simplify cg_mark_range

Author
Bert Münnich
Date
2018-06-09 12:17 +0200
Parent
a1165df
Commit
1892ed9fd7c930c6435e8f16f6bd6eca4573600a

+11 −22

1 file changed

  1. M commands.c +11 −22
M commands.c View
@@ -216,30 +216,19 @@ bool cg_reverse_marks(arg_t _)
216216
217217 bool cg_mark_range(arg_t _)
218218 {
219− int i, from, to;
220−
221− from = markidx;
222− to = fileidx;
223− if (fileidx < markidx) {
224− from = fileidx;
225− to = markidx;
226− }
227− for (i = from; i <= to; i++) {
228− if (files[markidx].flags & FF_MARK) {
229− if (!(files[i].flags & FF_MARK)) {
230− files[i].flags |= FF_MARK;
231− markcnt += 1;
232− }
233− } else {
234− if (files[i].flags & FF_MARK) {
235− files[i].flags &= ~FF_MARK;
236− markcnt -= 1;
237− }
219+ int i, d = fileidx < markidx ? 1 : -1;
220+ int flag = files[markidx].flags & FF_MARK;
221+ int oldmarkcnt = markcnt;
222+
223+ for (i = fileidx; i != markidx; i += d) {
224+ if ((files[i].flags & FF_MARK) ^ flag) {
225+ files[i].flags = (files[i].flags & ~FF_MARK) | flag;
226+ markcnt += flag ? 1 : -1;
227+ if (mode == MODE_THUMB)
228+ tns_mark(&tns, i, !!flag);
238229 }
239− if (mode == MODE_THUMB)
240− tns_mark(&tns, i, !!(files[i].flags & FF_MARK));
241230 }
242− return true;
231+ return markcnt != oldmarkcnt;
243232 }
244233
245234 bool cg_unmark_all(arg_t _)