--- ./src/c/file.d.orig 2010-03-05 09:00:36.000000000 -0500 +++ ./src/c/file.d 2010-03-06 07:49:27.000000000 -0500 @@ -5072,14 +5072,7 @@ /* We choose C streams by default only when _not_ using threads. * The reason is that C streams block on I/O operations. */ -#ifndef ECL_THREADS - standard_input = ecl_make_stream_from_FILE(make_constant_base_string("stdin"), - stdin, smm_input, 8, flags, external_format); - standard_output = ecl_make_stream_from_FILE(make_constant_base_string("stdout"), - stdout, smm_output, 8, flags, external_format); - error_output = ecl_make_stream_from_FILE(make_constant_base_string("stderr"), - stderr, smm_output, 8, flags, external_format); -#else +#if defined(ECL_THREADS) && defined(__Darwin__) standard_input = ecl_make_file_stream_from_fd(make_constant_base_string("stdin"), STDIN_FILENO, smm_input_file, 8, flags, external_format); @@ -5089,6 +5082,13 @@ error_output = ecl_make_file_stream_from_fd(make_constant_base_string("stderr"), STDERR_FILENO, smm_output_file, 8, flags, external_format); +#else + standard_input = ecl_make_stream_from_FILE(make_constant_base_string("stdin"), + stdin, smm_input, 8, flags, external_format); + standard_output = ecl_make_stream_from_FILE(make_constant_base_string("stdout"), + stdout, smm_output, 8, flags, external_format); + error_output = ecl_make_stream_from_FILE(make_constant_base_string("stderr"), + stderr, smm_output, 8, flags, external_format); #endif cl_core.standard_input = standard_input; ECL_SET(@'*standard-input*', standard_input);