-0 sends NULL separated file-list to key-handler

with this change `-0` is turned into a more generic switch which can be
used to send NULL-separated file-list to the key-handler as well.
this also means `-0` no longer implicitly enables `-o`

Closes: https://github.com/nsxiv/nsxiv/issues/140
This commit is contained in:
NRK 2021-10-28 11:43:36 +06:00 committed by eylles
parent 8934744c60
commit d0b5005a02
5 changed files with 7 additions and 8 deletions

View file

@ -59,7 +59,7 @@ bool cg_quit(arg_t _)
if (options->to_stdout && markcnt > 0) { if (options->to_stdout && markcnt > 0) {
for (i = 0; i < filecnt; i++) { for (i = 0; i < filecnt; i++) {
if (files[i].flags & FF_MARK) if (files[i].flags & FF_MARK)
printf("%s%c", files[i].name, options->stdout_separator); printf("%s%c", files[i].name, options->using_null ? '\0' : '\n');
} }
} }
exit(EXIT_SUCCESS); exit(EXIT_SUCCESS);

2
main.c
View file

@ -547,7 +547,7 @@ void run_key_handler(const char *key, unsigned int mask)
for (f = i = 0; f < fcnt; i++) { for (f = i = 0; f < fcnt; i++) {
if ((marked && (files[i].flags & FF_MARK)) || (!marked && i == fileidx)) { if ((marked && (files[i].flags & FF_MARK)) || (!marked && i == fileidx)) {
stat(files[i].path, &oldst[f]); stat(files[i].path, &oldst[f]);
fprintf(pfs, "%s\n", files[i].name); fprintf(pfs, "%s%c", files[i].name, options->using_null ? '\0' : '\n');
f++; f++;
} }
} }

View file

@ -127,8 +127,8 @@ The same as `\-z 100'.
Set zoom level to ZOOM percent. Set zoom level to ZOOM percent.
.TP .TP
.B \-0 .B \-0
Same as \-o, however the marked files are NULL separated. This option implies Use NULL-separator. With this option output of \-o and file-list sent to the
\-o. key-handler will be seperated by a NULL character.
.SH KEYBOARD COMMANDS .SH KEYBOARD COMMANDS
.SS General .SS General
The following keyboard commands are available in both image and thumbnail mode: The following keyboard commands are available in both image and thumbnail mode:

View file

@ -256,7 +256,7 @@ struct opt {
char **filenames; char **filenames;
bool from_stdin; bool from_stdin;
bool to_stdout; bool to_stdout;
char stdout_separator; bool using_null;
bool recursive; bool recursive;
int filecnt; int filecnt;
int startnum; int startnum;

View file

@ -52,7 +52,7 @@ void parse_options(int argc, char **argv)
_options.from_stdin = false; _options.from_stdin = false;
_options.to_stdout = false; _options.to_stdout = false;
_options.stdout_separator = '\n'; _options.using_null = false;
_options.recursive = false; _options.recursive = false;
_options.startnum = 0; _options.startnum = 0;
@ -181,8 +181,7 @@ void parse_options(int argc, char **argv)
_options.zoom = (float) n / 100.0; _options.zoom = (float) n / 100.0;
break; break;
case '0': case '0':
_options.stdout_separator = '\0'; _options.using_null = true;
_options.to_stdout = true; /* -0 implies -o */
break; break;
} }
} }