Krolyxon
Commit 284be74

Branches

Refs →

nsxiv284be74

Count number of marked files

Author
Bert Münnich
Date
2014-08-16 19:24 +0200
Committer
Bert Münnich · 2014-08-16 21:49 +0200
Parent
5b01c15
Commit
284be749278a7b6471926a618877dbb3adc8c1ad

+11 −3

2 files changed

  1. M commands.c +7 −3
  2. M main.c +4 −0
M commands.c View
@@ -50,6 +50,7 @@ extern win_t win;
5050 extern fileinfo_t *files;
5151 extern int filecnt, fileidx;
5252 extern int alternate;
53+extern int markcnt;
5354
5455 extern int prefix;
5556 extern bool extprefix;
@@ -62,7 +63,7 @@ bool cg_quit(arg_t a)
6263 {
6364 unsigned int i;
6465
65− if (options->to_stdout) {
66+ if (options->to_stdout && markcnt > 0) {
6667 for (i = 0; i < filecnt; i++) {
6768 if (files[i].marked)
6869 printf("%s\n", files[i].name);
@@ -195,6 +196,7 @@ bool cg_scroll_screen(arg_t a)
195196 bool cg_toggle_image_mark(arg_t a)
196197 {
197198 files[fileidx].marked = !files[fileidx].marked;
199+ markcnt += files[fileidx].marked ? 1 : -1;
198200 if (mode == MODE_THUMB)
199201 tns_mark(&tns, fileidx, files[fileidx].marked);
200202 return true;
@@ -202,10 +204,12 @@ bool cg_toggle_image_mark(arg_t a)
202204
203205 bool cg_reverse_marks(arg_t a)
204206 {
205− int i, cnt = mode == MODE_IMAGE ? filecnt : tns.cnt;
207+ int i;
206208
207− for (i = 0; i < cnt; i++)
209+ for (i = 0; i < filecnt; i++) {
208210 files[i].marked = !files[i].marked;
211+ markcnt += files[i].marked ? 1 : -1;
212+ }
209213 if (mode == MODE_THUMB)
210214 tns.dirty = true;
211215 return true;
M main.c View
@@ -73,6 +73,7 @@ win_t win;
7373 fileinfo_t *files;
7474 int filecnt, fileidx;
7575 int alternate;
76+int markcnt;
7677
7778 int prefix;
7879 bool extprefix;
@@ -168,6 +169,8 @@ void remove_file(int n, bool manual)
168169 cleanup();
169170 exit(manual ? EXIT_SUCCESS : EXIT_FAILURE);
170171 }
172+ if (files[n].marked)
173+ markcnt--;
171174
172175 if (files[n].path != files[n].name)
173176 free((void*) files[n].path);
@@ -627,6 +630,7 @@ void on_buttonpress(XButtonEvent *bev)
627630 case Button3:
628631 if ((sel = tns_translate(&tns, bev->x, bev->y)) >= 0) {
629632 files[sel].marked = !files[sel].marked;
633+ markcnt += files[sel].marked ? 1 : -1;
630634 tns_mark(&tns, sel, files[sel].marked);
631635 redraw();
632636 }