summaryrefslogtreecommitdiffstats
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
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.
-rw-r--r--ChangeLog8
-rw-r--r--match.c2
2 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 3c3010ec..d6b2e1e6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2012-03-26 Kaz Kylheku <kaz@kylheku.com>
+ * 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.
+
+2012-03-26 Kaz Kylheku <kaz@kylheku.com>
+
* eval.c (eval_init): New intrinsic num-str registered.
* filter.c (tonumber_k, tointeger_k, tofloat_k, hextoint_k):
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);
}