encoding support.
This commit is contained in:
parent
145b9c1b4a
commit
842f80e928
20
C/iopreds.c
20
C/iopreds.c
@ -1199,27 +1199,29 @@ p_float_format(void)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern IOENC Yap_DefaultEncoding(void);
|
||||||
|
extern void Yap_SetDefaultEncoding(IOENC);
|
||||||
|
extern int PL_get_stream_handle(Int, IOSTREAM **);
|
||||||
|
|
||||||
static Int
|
static Int
|
||||||
p_get_default_encoding(void)
|
p_get_default_encoding(void)
|
||||||
{
|
{
|
||||||
Term out = TermNil; // VSC MkIntegerTerm(DefaultEncoding());
|
Term out = MkIntegerTerm(Yap_DefaultEncoding());
|
||||||
return Yap_unify(ARG1, out);
|
return Yap_unify(ARG1, out);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Int
|
static Int
|
||||||
p_encoding (void)
|
p_encoding (void)
|
||||||
{ /* '$encoding'(Stream,N) */
|
{ /* '$encoding'(Stream,N) */
|
||||||
int sno = 0;
|
IOSTREAM *st;
|
||||||
// int sno = CheckStream (ARG1, Input_Stream_f|Output_Stream_f, "encoding/2");
|
|
||||||
Term t = Deref(ARG2);
|
Term t = Deref(ARG2);
|
||||||
if (sno < 0)
|
if (!PL_get_stream_handle(Yap_InitSlot(Deref(ARG1)), &st)) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
if (IsVarTerm(t)) {
|
|
||||||
UNLOCK(Stream[sno].streamlock);
|
|
||||||
return Yap_unify(ARG2, MkIntegerTerm(Stream[sno].encoding));
|
|
||||||
}
|
}
|
||||||
Stream[sno].encoding = IntegerOfTerm(Deref(ARG2));
|
if (IsVarTerm(t)) {
|
||||||
UNLOCK(Stream[sno].streamlock);
|
return Yap_unify(ARG2, MkIntegerTerm(st->encoding));
|
||||||
|
}
|
||||||
|
st->encoding = IntegerOfTerm(Deref(ARG2));
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,6 +157,17 @@ Yap_Eval(YAP_Term t)
|
|||||||
return Yap_InnerEval(t);
|
return Yap_InnerEval(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IOENC
|
||||||
|
Yap_DefaultEncoding(void)
|
||||||
|
{
|
||||||
|
return LD->encoding;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Yap_SetDefaultEncoding(IOENC new_encoding)
|
||||||
|
{
|
||||||
|
LD->encoding = new_encoding;
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
valueExpression(term_t t, Number r ARG_LD)
|
valueExpression(term_t t, Number r ARG_LD)
|
||||||
|
@ -34,6 +34,8 @@ extern YAP_Int Yap_GetCurrentPredArity(void);
|
|||||||
extern int Yap_read_term(term_t t, IOSTREAM *st, term_t vs);
|
extern int Yap_read_term(term_t t, IOSTREAM *st, term_t vs);
|
||||||
extern int Yap_LookupSWIStream(void *swi_s);
|
extern int Yap_LookupSWIStream(void *swi_s);
|
||||||
extern term_t Yap_fetch_module_for_format(term_t args, YAP_Term *modp);
|
extern term_t Yap_fetch_module_for_format(term_t args, YAP_Term *modp);
|
||||||
|
extern IOENC Yap_DefaultEncoding(void);
|
||||||
|
extern void Yap_SetDefaultEncoding(IOENC);
|
||||||
|
|
||||||
extern atom_t codeToAtom(int chrcode);
|
extern atom_t codeToAtom(int chrcode);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user