fix fflush
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@125 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
19
C/iopreds.c
19
C/iopreds.c
@@ -313,7 +313,15 @@ YP_putc(int ch, int sno)
|
||||
int
|
||||
YP_fflush(int sno)
|
||||
{
|
||||
if (Stream[sno].status & (Null_Stream_f|InMemory_Stream_f|Socket_Stream_f|Pipe_Stream_f))
|
||||
if ( (Stream[sno].status & Output_Stream_f) &&
|
||||
! (Stream[sno].status &
|
||||
(Null_Stream_f|
|
||||
InMemory_Stream_f|
|
||||
Socket_Stream_f|
|
||||
Pipe_Stream_f|
|
||||
Free_Stream_f)) )
|
||||
return(fflush(Stream[sno].u.file.file));
|
||||
else
|
||||
return(0);
|
||||
return(fflush(Stream[sno].u.file.file));
|
||||
}
|
||||
@@ -2541,7 +2549,7 @@ p_write (void)
|
||||
|
||||
static Int
|
||||
p_write2 (void)
|
||||
{ /* '$write'(+Flags,?Term) */
|
||||
{ /* '$write'(+Stream,+Flags,?Term) */
|
||||
int old_output_stream = c_output_stream;
|
||||
c_output_stream = CheckStream (ARG1, Output_Stream_f, "write/2");
|
||||
if (c_output_stream == -1) {
|
||||
@@ -4338,7 +4346,14 @@ p_flush (void)
|
||||
static Int
|
||||
p_flush_all_streams (void)
|
||||
{ /* $flush_all_streams */
|
||||
#if BROKEN_FFLUSH_NULL
|
||||
int i;
|
||||
for (i = 0; i < MaxStreams; ++i)
|
||||
YP_fflush (i);
|
||||
#else
|
||||
fflush (NULL);
|
||||
#endif
|
||||
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
|
33
C/save.c
33
C/save.c
@@ -1595,6 +1595,14 @@ RestoreClause(Clause *Cl)
|
||||
case _getwork:
|
||||
case _getwork_seq:
|
||||
case _sync:
|
||||
#endif
|
||||
#ifdef TABLING
|
||||
case _table_try_me_single:
|
||||
case _table_try_me:
|
||||
case _table_retry_me:
|
||||
case _table_trust_me:
|
||||
case _table_answer_resolution:
|
||||
case _table_completion:
|
||||
#endif
|
||||
pc->u.ld.p = CodeAddrAdjust(pc->u.ld.p);
|
||||
pc->u.ld.d = CodeAddrAdjust(pc->u.ld.d);
|
||||
@@ -1646,6 +1654,28 @@ RestoreClause(Clause *Cl)
|
||||
case _p_functor:
|
||||
#ifdef YAPOR
|
||||
case _getwork_first_time:
|
||||
#endif
|
||||
#ifdef TABLING
|
||||
case _trie_do_var:
|
||||
case _trie_trust_var:
|
||||
case _trie_try_var:
|
||||
case _trie_retry_var:
|
||||
case _trie_do_val:
|
||||
case _trie_trust_val:
|
||||
case _trie_try_val:
|
||||
case _trie_retry_val:
|
||||
case _trie_do_atom:
|
||||
case _trie_trust_atom:
|
||||
case _trie_try_atom:
|
||||
case _trie_retry_atom:
|
||||
case _trie_do_list:
|
||||
case _trie_trust_list:
|
||||
case _trie_try_list:
|
||||
case _trie_retry_list:
|
||||
case _trie_do_struct:
|
||||
case _trie_trust_struct:
|
||||
case _trie_try_struct:
|
||||
case _trie_retry_struct:
|
||||
#endif
|
||||
pc = NEXTOP(pc,e);
|
||||
break;
|
||||
@@ -1891,6 +1921,9 @@ RestoreClause(Clause *Cl)
|
||||
/* instructions type s */
|
||||
case _write_n_voids:
|
||||
case _pop_n:
|
||||
#ifdef TABLING
|
||||
case _table_new_answer:
|
||||
#endif
|
||||
pc = NEXTOP(pc,s);
|
||||
break;
|
||||
/* instructions type c */
|
||||
|
11
C/sysbits.c
11
C/sysbits.c
@@ -1473,7 +1473,8 @@ int TrueFileName (char *source, char *result, int in_lib)
|
||||
|
||||
#if __simplescalar__
|
||||
/* does not implement getcwd */
|
||||
strncpy(ares1,".",YAP_FILENAME_MAX);
|
||||
char *yap_pwd = getenv("PWD");
|
||||
strncpy(ares1,yap_pwd,YAP_FILENAME_MAX);
|
||||
#elif HAVE_GETCWD
|
||||
if (getcwd (ares1, YAP_FILENAME_MAX) == NULL)
|
||||
return (FALSE);
|
||||
@@ -1562,7 +1563,8 @@ p_getcwd(void)
|
||||
|
||||
#if __simplescalar__
|
||||
/* does not implement getcwd */
|
||||
strncpy(FileNameBuf,".",YAP_FILENAME_MAX);
|
||||
char *yap_pwd = getenv("PWD");
|
||||
strncpy(FileNameBuf,yap_pwd,YAP_FILENAME_MAX);
|
||||
#elif HAVE_GETCWD
|
||||
if (getcwd (FileNameBuf, YAP_FILENAME_MAX) == NULL)
|
||||
return (FALSE);
|
||||
@@ -1752,6 +1754,11 @@ p_cd (void)
|
||||
return(FALSE);
|
||||
}
|
||||
TrueFileName (FileNameBuf, FileNameBuf2, FALSE);
|
||||
#if __simplescalar__
|
||||
strncpy(FileNameBuf,"PWD=",YAP_FILENAME_MAX);
|
||||
strncat(FileNameBuf,FileNameBuf2,YAP_FILENAME_MAX);
|
||||
putenv(FileNameBuf);
|
||||
#endif
|
||||
return (!chdir (FileNameBuf2));
|
||||
#else
|
||||
#ifdef MACYAP
|
||||
|
@@ -129,7 +129,7 @@ low_level_trace(yap_low_level_port port, PredEntry *pred, CELL *args)
|
||||
extern int gc_calls;
|
||||
|
||||
vsc_count++;
|
||||
if (vsc_count < 2518) return;
|
||||
/* if (vsc_count < 2518) return; */
|
||||
/* if (vsc_count > 500000) exit(0); */
|
||||
/* if (gc_calls < 1) return;*/
|
||||
YP_fprintf(YP_stderr,"%lu (%p)", vsc_count, H);
|
||||
|
Reference in New Issue
Block a user