From d52d05a626fd3695116450dd4e61c955595864cc Mon Sep 17 00:00:00 2001 From: Vitor Santos Costa Date: Thu, 20 Jan 2011 11:51:46 -0600 Subject: [PATCH] fix atom_term builtin not to require previous loading of charsio. --- library/charsio.yap | 13 ------------- pl/utils.yap | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/library/charsio.yap b/library/charsio.yap index 416627bf0..0c7b67d11 100644 --- a/library/charsio.yap +++ b/library/charsio.yap @@ -49,13 +49,6 @@ format_to_chars(Form, Args, OUT, L0) :- write_to_chars(Term, OUT) :- write_to_chars(Term, [], OUT). -write_to_chars(Term, L0, OUT) :- - open_mem_write_stream(Stream), - write(Stream, Term), - peek_mem_write_stream(Stream, L0, O), - close(Stream), - O = OUT. - atom_to_chars(Atom, OUT) :- atom_to_chars(Atom, [], OUT). @@ -88,12 +81,6 @@ number_to_chars(Number, L0, OUT) :- number_to_chars(Number, L0, OUT) :- throw(error(type_error(number,Number),number_to_chars(Number, L0, OUT))). -read_from_chars(Chars, Term) :- - open_mem_read_stream(Chars, Stream), - read(Stream, T), - close(Stream), - T = Term. - open_chars_stream(Chars, Stream) :- open_mem_read_stream(Chars, Stream). diff --git a/pl/utils.yap b/pl/utils.yap index f0635810e..80829018f 100644 --- a/pl/utils.yap +++ b/pl/utils.yap @@ -684,6 +684,23 @@ term_to_atom(Term,Atom) :- charsio:write_to_chars(Term,S), atom_codes(Atom,S). +% +% hack this here. +% +charsio:write_to_chars(Term, L0, OUT) :- + charsio:open_mem_write_stream(Stream), + prolog:write(Stream, Term), + charsio:peek_mem_write_stream(Stream, L0, O), + prolog:close(Stream), + O = OUT. + +charsio:read_from_chars(Chars, Term) :- + charsio:open_mem_read_stream(Chars, Stream), + prolog:read(Stream, T), + prolog:close(Stream), + T = Term. + + simple(V) :- var(V), !. simple(A) :- atom(A), !. simple(N) :- number(N).