diff --git a/src/CHANGELOG b/src/CHANGELOG index e987496a3..2604b374e 100644 --- a/src/CHANGELOG +++ b/src/CHANGELOG @@ -1528,6 +1528,9 @@ ECLS 0.9b - READ/WRITE-SEQUENCE implemented. + - OPEN now accepts the parameter :EXTERNAL-FORMAT, which can only be + :DEFAULT, as ECL does not support the notion of external formats + (all streams have element type (UNSIGNED-BYTE 8)). TODO: ===== diff --git a/src/c/compiler.d b/src/c/compiler.d index a9bf0de11..fc9b4488c 100644 --- a/src/c/compiler.d +++ b/src/c/compiler.d @@ -347,7 +347,7 @@ FEillegal_variable_name(cl_object v) static void FEill_formed_input() { - FEprogram_error("Unproper list handled to the compiler.", 0); + FEprogram_error("Improper list handled to the compiler.", 0); } static void diff --git a/src/c/file.d b/src/c/file.d index 9b9d437df..5c1771366 100644 --- a/src/c/file.d +++ b/src/c/file.d @@ -507,6 +507,8 @@ StdinResume() * CLOS-STREAMS and S is an instance object, STREAM-READ-CHAR is invoked * to retrieve the character. Then STREAM-READ-CHAR should either * output the character, or NIL, indicating EOF. + * + * INV: ecl_getc(strm) checks the type of STRM. */ int ecl_getc(cl_object strm) @@ -1580,9 +1582,13 @@ cl_output_stream_p(cl_object strm) (element_type @'base-char') (if_exists Cnil iesp) (if_does_not_exist Cnil idnesp) + (external_format @':default') &aux strm) enum smmode smm; @ + if (external_format != @':default') + FEerror("~S is not a valid stream external format.", 1, + external_format); /* INV: open_stream() checks types */ if (direction == @':input') { smm = smm_input; diff --git a/src/c/read.d b/src/c/read.d index be58bb350..27aae6792 100644 --- a/src/c/read.d +++ b/src/c/read.d @@ -1517,7 +1517,6 @@ CANNOT_PARSE: &optional eof_errorp eof_value) int c; @ - assert_type_stream(binary_input_stream); c = ecl_getc(binary_input_stream); if (c == EOF) { if (Null(eof_errorp)) diff --git a/src/c/symbols_list.h b/src/c/symbols_list.h index 78be9d3d7..0f1b978d7 100644 --- a/src/c/symbols_list.h +++ b/src/c/symbols_list.h @@ -1276,6 +1276,7 @@ cl_symbols[] = { {KEY_ "EXECUTE", KEYWORD, NULL, -1}, {KEY_ "EXPECTED-TYPE", KEYWORD, NULL, -1}, {KEY_ "EXTERNAL", KEYWORD, NULL, -1}, +{KEY_ "EXTERNAL-FORMAT", KEYWORD, NULL, -1}, {KEY_ "FORMAT-ARGUMENTS", KEYWORD, NULL, -1}, {KEY_ "FORMAT-CONTROL", KEYWORD, NULL, -1}, {KEY_ "FUNCTION", KEYWORD, NULL, -1},