summaryrefslogtreecommitdiffstats
path: root/match.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2012-03-26 19:06:22 -0700
committerKaz Kylheku <kaz@kylheku.com>2012-03-26 19:06:22 -0700
commita039c6a600ec6e1ad03fb0c5b1ada336ddf8fdb7 (patch)
treefa35a17e3bb41cf4cdddc3e216edeee2a8530e02 /match.c
parent27653477b64ce60f15c538854d24943d2a3f62ec (diff)
downloadtxr-a039c6a600ec6e1ad03fb0c5b1ada336ddf8fdb7.tar.gz
txr-a039c6a600ec6e1ad03fb0c5b1ada336ddf8fdb7.tar.bz2
txr-a039c6a600ec6e1ad03fb0c5b1ada336ddf8fdb7.zip
* match.c (v_output): Bugfix: we should flush the stream
after each @(output) block. Otherwise if output blocks that go to standard output are interleaved with output blocks which pipe to some command which then goes to standard out, the output won't be in the proper order.
Diffstat (limited to 'match.c')
-rw-r--r--match.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/match.c b/match.c
index 01b4562a..b70a796e 100644
--- a/match.c
+++ b/match.c
@@ -3009,6 +3009,7 @@ static val v_output(match_files_ctx *c)
uw_env_begin;
uw_set_match_context(cons(c->spec, c->bindings));
do_output(c->bindings, specs, filter, stream);
+ flush_stream(stream);
uw_env_end;
{
@@ -3049,6 +3050,7 @@ static val v_output(match_files_ctx *c)
uw_env_begin;
uw_set_match_context(cons(c->spec, c->bindings));
do_output(c->bindings, specs, filter, stream);
+ flush_stream(stream);
uw_env_end;
close_stream(stream, t);
}