diff options
author | N-R-K <79544946+N-R-K@users.noreply.github.com> | 2021-09-21 05:11:47 +0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-20 23:11:47 +0000 |
commit | 63972db743398a4c2f0159110f5e14fb1effb6d5 (patch) | |
tree | 31be25daaa0278f0fb153b3d703f39501c76866a | |
parent | 3234b0e521cca006a94cb135a88d146122d7f66d (diff) |
add -0 for outputting null-terminated list (#68)
* add -0 for outputting null-terminated list
this doesn't add much, if any, additional complexity to the codebase and
can be quite handy for scripting purposes.
Closes: https://github.com/nsxiv/nsxiv/issues/67
* Fix typo
Co-authored-by: Berke Kocaoğlu <berke.kocaoglu@metu.edu.tr>
-rw-r--r-- | commands.c | 2 | ||||
-rw-r--r-- | nsxiv.h | 1 | ||||
-rw-r--r-- | options.c | 7 |
3 files changed, 8 insertions, 2 deletions
@@ -59,7 +59,7 @@ bool cg_quit(arg_t _) if (options->to_stdout && markcnt > 0) { for (i = 0; i < filecnt; i++) { if (files[i].flags & FF_MARK) - printf("%s\n", files[i].name); + printf("%s%c", files[i].name, options->stdout_separator); } } exit(EXIT_SUCCESS); @@ -268,6 +268,7 @@ struct opt { char **filenames; bool from_stdin; bool to_stdout; + char stdout_separator; bool recursive; int filecnt; int startnum; @@ -52,6 +52,7 @@ void parse_options(int argc, char **argv) _options.from_stdin = false; _options.to_stdout = false; + _options.stdout_separator = '\n'; _options.recursive = false; _options.startnum = 0; @@ -75,7 +76,7 @@ void parse_options(int argc, char **argv) _options.clean_cache = false; _options.private_mode = false; - while ((opt = getopt(argc, argv, "A:abce:fG:g:hin:N:opqrS:s:T:tvZz:")) != -1) { + while ((opt = getopt(argc, argv, "A:abce:fG:g:hin:N:0opqrS:s:T:tvZz:")) != -1) { switch (opt) { case '?': print_usage(); @@ -128,6 +129,10 @@ void parse_options(int argc, char **argv) case 'N': _options.res_name = optarg; break; + case '0': + _options.stdout_separator = '\0'; + /* -0 implies -o */ + /* fall through */ case 'o': _options.to_stdout = true; break; |