From 588ef40a164e2a662cb4d58c3ab548d27af73290 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADtor=20Santos=20Costa?= Date: Mon, 22 Feb 2016 12:57:46 +0000 Subject: [PATCH] follow encoding directives --- os/iopreds.c | 2 ++ os/streams.c | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/os/iopreds.c b/os/iopreds.c index e4a05bb79..b862b484b 100644 --- a/os/iopreds.c +++ b/os/iopreds.c @@ -190,6 +190,7 @@ static bool is_file_errors(Term t) { void Yap_DefaultStreamOps(StreamDesc *st) { st->stream_wputc = put_wchar; + st->stream_wgetc = get_wchar; if (st->status & (Promptable_Stream_f)) { st->stream_wgetc = get_wchar; Yap_ConsoleOps(st, true); @@ -1354,6 +1355,7 @@ int PlGetc(int sno) { st->encoding = enc_id( s_encoding, st->encoding); else st->encoding = encoding; + Yap_DefaultStreamOps( st); if (script) open_header(sno, open_mode); diff --git a/os/streams.c b/os/streams.c index 4340341bd..7ad2480f0 100644 --- a/os/streams.c +++ b/os/streams.c @@ -790,7 +790,8 @@ static bool do_set_stream(int sno, Atom atEnc = AtomOfTerm(t2); GLOBAL_Stream[sno].encoding = enc_id(atEnc->StrOfAE, (GLOBAL_Stream[sno].status & HAS_BOM_f ? GLOBAL_Stream[sno].encoding :ENC_OCTET ) ); - } + Yap_DefaultStreamOps( GLOBAL_Stream+sno); + } break; case SET_STREAM_EOF_ACTION: { Term t2 = args[SET_STREAM_EOF_ACTION].tvalue;