aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2014-11-01 11:11:20 +0100
committerMarc André Tanner <mat@brain-dump.org>2014-11-01 11:11:20 +0100
commit5c78717c51bb9a046694d7de0ba695011591e986 (patch)
tree6c8bb056830d1cbb32db73e94fbd756cbd645658
parentadd639d3be1e2200926bf5257f39ae972c503cc9 (diff)
downloadvis-5c78717c51bb9a046694d7de0ba695011591e986.tar.gz
vis-5c78717c51bb9a046694d7de0ba695011591e986.tar.xz
Improve usage as a filter
When used as in echo Hello World | vis | cat prevent intermediate writes to stdout, only save to stdout when also quiting the editor.
-rw-r--r--vis.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/vis.c b/vis.c
index fb7ea0c..696d0f2 100644
--- a/vis.c
+++ b/vis.c
@@ -1416,8 +1416,12 @@ static bool cmd_write(Filerange *range, const char *argv[]) {
if (!argv[1])
argv[1] = text_filename_get(text);
if (!argv[1]) {
- if (text_fd_get(text) == STDIN_FILENO)
- return text_range_write(text, range, STDOUT_FILENO) >= 0;
+ if (text_fd_get(text) == STDIN_FILENO) {
+ if (strchr(argv[0], 'q'))
+ return text_range_write(text, range, STDOUT_FILENO) >= 0;
+ editor_info_show(vis, "No filename given, use 'wq' to write to stdout");
+ return false;
+ }
editor_info_show(vis, "Filename expected");
return false;
}