mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-14 05:12:38 -08:00
(SETF STREAM-EXTERNAL-FORMAT) inserted the wrong format type in some cases.
This commit is contained in:
parent
5844357864
commit
525841e298
2 changed files with 15 additions and 13 deletions
|
|
@ -30,6 +30,8 @@ ECL 10.3.2:
|
|||
|
||||
- ECL did not understand type declarations that involved symbol macros.
|
||||
|
||||
- (SETF STREAM-EXTERNAL-FORMAT) inserted the wrong format type in some cases.
|
||||
|
||||
* Visible changes:
|
||||
|
||||
- The source location annotator records the original pathnames, not the
|
||||
|
|
|
|||
26
src/c/file.d
26
src/c/file.d
|
|
@ -2943,47 +2943,47 @@ parse_external_format(cl_object stream, cl_object format, int flags)
|
|||
return flags & ~ECL_STREAM_LITTLE_ENDIAN;
|
||||
}
|
||||
if (format == @':pass-through' || format == Ct) {
|
||||
return flags | ECL_STREAM_DEFAULT_FORMAT;
|
||||
return (flags & ~ECL_STREAM_FORMAT) | ECL_STREAM_DEFAULT_FORMAT;
|
||||
}
|
||||
#ifdef ECL_UNICODE
|
||||
if (format == @':UTF-8') {
|
||||
return flags | ECL_STREAM_UTF_8;
|
||||
return (flags & ~ECL_STREAM_FORMAT) | ECL_STREAM_UTF_8;
|
||||
}
|
||||
if (format == @':UCS-2') {
|
||||
return flags | ECL_STREAM_UCS_2;
|
||||
return (flags & ~ECL_STREAM_FORMAT) | ECL_STREAM_UCS_2;
|
||||
}
|
||||
if (format == @':UCS-2BE') {
|
||||
return flags | ECL_STREAM_UCS_2BE;
|
||||
return (flags & ~ECL_STREAM_FORMAT) | ECL_STREAM_UCS_2BE;
|
||||
}
|
||||
if (format == @':UCS-2LE') {
|
||||
return flags | ECL_STREAM_UCS_2LE;
|
||||
return (flags & ~ECL_STREAM_FORMAT) | ECL_STREAM_UCS_2LE;
|
||||
}
|
||||
if (format == @':UCS-4') {
|
||||
return flags | ECL_STREAM_UCS_4;
|
||||
return (flags & ~ECL_STREAM_FORMAT) | ECL_STREAM_UCS_4;
|
||||
}
|
||||
if (format == @':UCS-4BE') {
|
||||
return flags | ECL_STREAM_UCS_4BE;
|
||||
return (flags & ~ECL_STREAM_FORMAT) | ECL_STREAM_UCS_4BE;
|
||||
}
|
||||
if (format == @':UCS-4LE') {
|
||||
return flags | ECL_STREAM_UCS_4LE;
|
||||
return (flags & ~ECL_STREAM_FORMAT) | ECL_STREAM_UCS_4LE;
|
||||
}
|
||||
if (format == @':ISO-8859-1') {
|
||||
return flags | ECL_STREAM_ISO_8859_1;
|
||||
return (flags & ~ECL_STREAM_FORMAT) | ECL_STREAM_ISO_8859_1;
|
||||
}
|
||||
if (format == @':LATIN-1') {
|
||||
return flags | ECL_STREAM_LATIN_1;
|
||||
return (flags & ~ECL_STREAM_FORMAT) | ECL_STREAM_LATIN_1;
|
||||
}
|
||||
if (format == @':US-ASCII') {
|
||||
return flags | ECL_STREAM_US_ASCII;
|
||||
return (flags & ~ECL_STREAM_FORMAT) | ECL_STREAM_US_ASCII;
|
||||
}
|
||||
if (ECL_HASH_TABLE_P(format)) {
|
||||
stream->stream.format_table = format;
|
||||
return flags | ECL_STREAM_USER_FORMAT;
|
||||
return (flags & ~ECL_STREAM_FORMAT) | ECL_STREAM_USER_FORMAT;
|
||||
}
|
||||
if (SYMBOLP(format)) {
|
||||
stream->stream.format_table = cl_funcall(2, @'ext::make-encoding',
|
||||
format);
|
||||
return flags | ECL_STREAM_USER_FORMAT;
|
||||
return (flags & ~ECL_STREAM_FORMAT) | ECL_STREAM_USER_FORMAT;
|
||||
}
|
||||
#endif
|
||||
FEerror("Unknown or unsupported external format: ~A", 1, format);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue