more write updates.
This commit is contained in:
ubu32 2011-02-14 12:47:34 -08:00
parent f13215700b
commit 52f8cb1041
3 changed files with 10 additions and 106 deletions

View File

@ -104,8 +104,6 @@ STATIC_PROTO (int PlUnGetc, (int));
STATIC_PROTO (Term MkStream, (int));
STATIC_PROTO (int CheckStream, (Term, int, char *));
STATIC_PROTO (Int p_close, (void));
STATIC_PROTO (Int p_write, (void));
STATIC_PROTO (Int p_write2, (void));
STATIC_PROTO (Int p_set_read_error_handler, (void));
STATIC_PROTO (Int p_get_read_error_handler, (void));
STATIC_PROTO (Int p_read, (void));
@ -1770,102 +1768,6 @@ int beam_write (void)
}
#endif
static Int
p_write (void)
{
/* '$write'(+Flags,?Term) */
int flags = (int) IntOfTerm (Deref (ARG1));
/* notice: we must have ASP well set when using portray, otherwise
we cannot make recursive Prolog calls */
Yap_StartSlots();
Yap_plwrite (ARG2, Stream[Yap_c_output_stream].stream_wputc, flags, 1200);
Yap_CloseSlots();
if (EX != 0L) {
Term ball = Yap_PopTermFromDB(EX);
EX = NULL;
Yap_JumpToEnv(ball);
return(FALSE);
}
return (TRUE);
}
static Int
p_write_prio (void)
{
/* '$write'(+Flags,?Term) */
int flags = (int) IntOfTerm (Deref (ARG1));
/* notice: we must have ASP well set when using portray, otherwise
we cannot make recursive Prolog calls */
Yap_StartSlots();
Yap_plwrite (ARG3, Stream[Yap_c_output_stream].stream_wputc, flags, (int)IntOfTerm(Deref(ARG2)));
Yap_CloseSlots();
if (EX != 0L) {
Term ball = Yap_PopTermFromDB(EX);
EX = NULL;
Yap_JumpToEnv(ball);
return(FALSE);
}
return (TRUE);
}
static Int
p_write2_prio (void)
{ /* '$write'(+Stream,+Flags,?Term) */
int old_output_stream = Yap_c_output_stream;
Int flags = IntegerOfTerm(Deref(ARG2));
int stream_f;
if (flags & Use_SWI_Stream_f) {
stream_f = Output_Stream_f|SWI_Stream_f;
} else {
stream_f = Output_Stream_f;
}
Yap_c_output_stream = CheckStream (ARG1, stream_f, "write/2");
if (Yap_c_output_stream == -1) {
Yap_c_output_stream = old_output_stream;
return(FALSE);
}
UNLOCK(Stream[Yap_c_output_stream].streamlock);
/* notice: we must have ASP well set when using portray, otherwise
we cannot make recursive Prolog calls */
Yap_StartSlots();
Yap_plwrite (ARG4, Stream[Yap_c_output_stream].stream_wputc, (int) flags, (int) IntOfTerm (Deref (ARG3)));
Yap_CloseSlots();
Yap_c_output_stream = old_output_stream;
if (EX != 0L) {
Term ball = Yap_PopTermFromDB(EX);
EX = NULL;
Yap_JumpToEnv(ball);
return(FALSE);
}
return (TRUE);
}
static Int
p_write2 (void)
{ /* '$write'(+Stream,+Flags,?Term) */
int old_output_stream = Yap_c_output_stream;
Yap_c_output_stream = CheckStream (ARG1, Output_Stream_f, "write/2");
if (Yap_c_output_stream == -1) {
Yap_c_output_stream = old_output_stream;
return(FALSE);
}
UNLOCK(Stream[Yap_c_output_stream].streamlock);
/* notice: we must have ASP well set when using portray, otherwise
we cannot make recursive Prolog calls */
Yap_StartSlots();
Yap_plwrite (ARG3, Stream[Yap_c_output_stream].stream_wputc, (int) IntOfTerm (Deref (ARG2)), 1200);
Yap_CloseSlots();
Yap_c_output_stream = old_output_stream;
if (EX != 0L) {
Term ball = Yap_PopTermFromDB(EX);
EX = NULL;
Yap_JumpToEnv(ball);
return(FALSE);
}
return (TRUE);
}
static void
clean_vars(VarEntry *p)
{
@ -3921,8 +3823,6 @@ Yap_InitIOPreds(void)
Yap_InitCPred ("$read", 6, p_read, SyncPredFlag|HiddenPredFlag|UserCPredFlag);
Yap_InitCPred ("$read", 7, p_read2, SyncPredFlag|HiddenPredFlag|UserCPredFlag);
Yap_InitCPred ("$skip", 2, p_skip, SafePredFlag|SyncPredFlag|HiddenPredFlag);
Yap_InitCPred ("$write_with_prio", 3, p_write_prio, SyncPredFlag|HiddenPredFlag);
Yap_InitCPred ("$write_with_prio", 4, p_write2_prio, SyncPredFlag|HiddenPredFlag);
Yap_InitCPred ("format", 2, p_format, SyncPredFlag);
Yap_InitCPred ("format", 3, p_format2, SyncPredFlag);
Yap_InitCPred ("$start_line", 1, p_startline, SafePredFlag|SyncPredFlag|HiddenPredFlag);

View File

@ -628,7 +628,7 @@ true :- true.
'$do_another'(C).
'$do_another'(C) :-
( C== 0'; -> '$skip'(user_input,10), %'
( C== 0'; -> skip(user_input,10), %'
'$add_nl_outside_console',
fail
;
@ -645,7 +645,7 @@ true :- true.
;
C== -1 -> halt
;
'$skip'(user_input,10), '$ask_again_for_another'
skip(user_input,10), '$ask_again_for_another'
).
%'$add_nl_outside_console' :-
@ -1506,6 +1506,11 @@ put_code(C) :-
put_code(Stream, C) :-
swi_put_code(Stream, C).
skip(C) :-
swi_skip(C).
skip(Stream, C) :-
swi_skip(Stream, C).
nl :-
swi_nl.
nl(Stream) :-

View File

@ -252,6 +252,9 @@ display(Stream, T) :-
format(T) :-
format(T, []).
writeln(T) :-
write(T),
nl.
/* interface to user portray */
'$portray'(T) :-
@ -262,10 +265,6 @@ format(T) :-
/* character I/O */
skip(N) :- current_input(S), N1 is N, '$skip'(S,N1).
skip(Stream,N) :- N1 is N, '$skip'(Stream,N1).
ttyget(N) :- get(user_input,N).
ttyget0(N) :- get0(user_input,N).