long range errors and other fixes

This commit is contained in:
Vítor Santos Costa 2015-10-13 02:21:10 +01:00
parent ec1e35192f
commit b6130b0e7d
3 changed files with 5 additions and 4 deletions

View File

@ -1322,6 +1322,7 @@ YAP: NO EQUIVALENT */
X_API int PL_raise_exception(term_t exception)
{
CACHE_REGS
LOCAL_Error_TYPE=YAP_NO_ERROR;
EX = Yap_StoreTermInDB(Yap_GetFromSlot(exception),0);
return 0;
}

View File

@ -144,7 +144,7 @@ Term
}
char *
Yap_TermToString(Term t, char *s, size_t sz, size_t *length, encoding_t encp, int flags)
Yap_TermToString(Term t, char *s, size_t sz, size_t *length, encoding_t *encp, int flags)
{
CACHE_REGS
int sno = Yap_open_buf_write_stream(&s, &sz);
@ -235,7 +235,7 @@ Term
}
char *
Yap_TermToString(Term t, char *s, size_t sz, size_t *length, encoding_t encp, int flags)
Yap_TermToString(Term t, char *s, size_t sz, size_t *length, encoding_t *encp, int flags)
{
CACHE_REGS
int sno = Yap_open_buf_write_stream(&s, &sz);
@ -244,10 +244,9 @@ char *
if (sno < 0)
return NULL;
LOCAL_output_stream = sno;
if (encp)
if (encp )
GLOBAL_Stream[sno].encoding = encp;
Yap_plwrite (t, GLOBAL_Stream[sno].stream_wputc, 0, flags, 1200);
s[GLOBAL_Stream[sno].u.mem_string.pos] = '\0';
LOCK(GLOBAL_Stream[sno].streamlock);
GLOBAL_Stream[sno].status = Free_Stream_f;
UNLOCK(GLOBAL_Stream[sno].streamlock);

View File

@ -1716,6 +1716,7 @@ Yap_CheckTextStream (Term arg, int kind, const char *msg)
if ((sno = CheckStream(arg, kind, (char *)msg)) < 0)
return -1;
if ((GLOBAL_Stream[sno].status & Binary_Stream_f)) {
PlIOError(PERMISSION_ERROR_INPUT_BINARY_STREAM, arg, msg);
UNLOCK(GLOBAL_Stream[sno].streamlock);
return -1;
}