fix scanning of UTF-32 files.

This commit is contained in:
Vítor Santos Costa 2010-10-28 18:05:42 +01:00
parent bb6e98dd66
commit a634f3f7e7

View File

@ -1967,7 +1967,7 @@ get_wchar(int sno)
wch = 0; wch = 0;
} }
how_many--; how_many--;
wch += ((unsigned char) (ch & 0xff)) << (how_many*8); wch += ((unsigned char) (ch & 0xff)) << ((3-how_many)*8);
if (how_many == 0) if (how_many == 0)
return wch; return wch;
break; break;
@ -1977,7 +1977,7 @@ get_wchar(int sno)
wch = 0; wch = 0;
} }
how_many--; how_many--;
wch += ((unsigned char) (ch & 0xff)) << ((3-how_many)*8); wch += ((unsigned char) (ch & 0xff)) << (how_many*8);
if (how_many == 0) if (how_many == 0)
return wch; return wch;
break; break;
@ -2803,6 +2803,7 @@ p_open (void)
(needs_bom || (st->status & Seekable_Stream_f))) { (needs_bom || (st->status & Seekable_Stream_f))) {
if (!check_bom(sno, st)) if (!check_bom(sno, st))
return FALSE; return FALSE;
/*
if (st->encoding == ENC_ISO_UTF32_BE) { if (st->encoding == ENC_ISO_UTF32_BE) {
Yap_Error(DOMAIN_ERROR_STREAM_ENCODING, ARG1, "UTF-32 (BE) stream encoding unsupported"); Yap_Error(DOMAIN_ERROR_STREAM_ENCODING, ARG1, "UTF-32 (BE) stream encoding unsupported");
return FALSE; return FALSE;
@ -2810,6 +2811,7 @@ p_open (void)
Yap_Error(DOMAIN_ERROR_STREAM_ENCODING, ARG1, "UTF-32 (LE) stream encoding unsupported"); Yap_Error(DOMAIN_ERROR_STREAM_ENCODING, ARG1, "UTF-32 (LE) stream encoding unsupported");
return FALSE; return FALSE;
} }
*/
} }
st->status &= ~(Free_Stream_f); st->status &= ~(Free_Stream_f);
return (Yap_unify (ARG3, t)); return (Yap_unify (ARG3, t));