From eb548bfd4a092f3498d1806cd156c59ea20e4372 Mon Sep 17 00:00:00 2001 From: jjgarcia Date: Tue, 19 Aug 2008 12:06:35 +0000 Subject: [PATCH] Fix two problems with RUN-PROGRAM: Missing :WAIT keyword and cl_core.null_stream not being input/output --- src/CHANGELOG | 4 ++++ src/c/file.d | 14 ++++++++++++++ src/c/main.d | 2 +- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/CHANGELOG b/src/CHANGELOG index e810fceee..0dd59b905 100644 --- a/src/CHANGELOG +++ b/src/CHANGELOG @@ -14,6 +14,10 @@ ECL 0.9l-p1: - In compiled files, externalize package objects using FIND-PACKAGE. + - In RUN-PROGRAM, there were two bugs: first, the keyword :WAIT was not defined + in the C core and caused an error when used; second, the input/output streams + were not properly arranged. + ;;; Local Variables: *** ;;; mode:text *** ;;; fill-column:79 *** diff --git a/src/c/file.d b/src/c/file.d index 0411aa833..f3c31aedb 100644 --- a/src/c/file.d +++ b/src/c/file.d @@ -2987,8 +2987,22 @@ init_file(void) cl_object standard_output; cl_object error_output; cl_object standard; + cl_object null_stream; cl_object x; + null_stream = cl_alloc_object(t_stream); + null_stream->stream.mode = (short)smm_io; + null_stream->stream.closed = 0; + null_stream->stream.file = NULL; + null_stream->stream.object0 = @'base-char'; + null_stream->stream.object1 = make_constant_base_string("/dev/null"); + null_stream->stream.int0 = 0; + null_stream->stream.int1 = 0; + null_stream->stream.char_stream_p = 1; + null_stream->stream.byte_size = 8; + null_stream->stream.signed_bytes = 0; + cl_core.null_stream = null_stream; + standard_input = cl_alloc_object(t_stream); standard_input->stream.mode = (short)smm_input; standard_input->stream.closed = 0; diff --git a/src/c/main.d b/src/c/main.d index 0d0850a6c..d11c728ac 100644 --- a/src/c/main.d +++ b/src/c/main.d @@ -331,7 +331,7 @@ cl_boot(int argc, char **argv) cl_core.null_string = make_constant_base_string(""); - cl_core.null_stream = @make_broadcast_stream(0); + cl_core.null_stream = Cnil; /* Filled in file.d */ cl_core.system_properties = cl__make_hash_table(@'equal', MAKE_FIXNUM(1024), /* size */