summaryrefslogtreecommitdiffstats
path: root/commands.c
diff options
context:
space:
mode:
authorBert Münnich <ber.t@posteo.de>2014-08-16 19:24:34 +0200
committerBert Münnich <ber.t@posteo.de>2014-08-16 21:49:46 +0200
commit284be749278a7b6471926a618877dbb3adc8c1ad (patch)
tree59948c446a156c50a28340ae9c968cec91a9f939 /commands.c
parent5b01c15176298b0335432e089d70e55c84379756 (diff)
downloadnsxiv-284be749278a7b6471926a618877dbb3adc8c1ad.tar.zst
Count number of marked files
Diffstat (limited to 'commands.c')
-rw-r--r--commands.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/commands.c b/commands.c
index 830c6af..9ff411b 100644
--- a/commands.c
+++ b/commands.c
@@ -50,6 +50,7 @@ extern win_t win;
extern fileinfo_t *files;
extern int filecnt, fileidx;
extern int alternate;
+extern int markcnt;
extern int prefix;
extern bool extprefix;
@@ -62,7 +63,7 @@ bool cg_quit(arg_t a)
{
unsigned int i;
- if (options->to_stdout) {
+ if (options->to_stdout && markcnt > 0) {
for (i = 0; i < filecnt; i++) {
if (files[i].marked)
printf("%s\n", files[i].name);
@@ -195,6 +196,7 @@ bool cg_scroll_screen(arg_t a)
bool cg_toggle_image_mark(arg_t a)
{
files[fileidx].marked = !files[fileidx].marked;
+ markcnt += files[fileidx].marked ? 1 : -1;
if (mode == MODE_THUMB)
tns_mark(&tns, fileidx, files[fileidx].marked);
return true;
@@ -202,10 +204,12 @@ bool cg_toggle_image_mark(arg_t a)
bool cg_reverse_marks(arg_t a)
{
- int i, cnt = mode == MODE_IMAGE ? filecnt : tns.cnt;
+ int i;
- for (i = 0; i < cnt; i++)
+ for (i = 0; i < filecnt; i++) {
files[i].marked = !files[i].marked;
+ markcnt += files[i].marked ? 1 : -1;
+ }
if (mode == MODE_THUMB)
tns.dirty = true;
return true;