fix atom_term
This commit is contained in:
parent
d37e198c12
commit
44dab9ab33
@ -264,7 +264,7 @@ bool Yap_ReadlineOps(StreamDesc *s) {
|
|||||||
|
|
||||||
static int prolog_complete(int ignore, int key) {
|
static int prolog_complete(int ignore, int key) {
|
||||||
if (rl_point > 0 && rl_line_buffer[rl_point - 1] != ' ') {
|
if (rl_point > 0 && rl_line_buffer[rl_point - 1] != ' ') {
|
||||||
#if HAVE_DECL_RL_CATCH_SIGNALS /* actually version >= 1.2, or true readline \
|
#if HAVE_DECL_RL_CATCH_SIGNALS /* actually version >= 1.2, or true readline \
|
||||||
*/
|
*/
|
||||||
rl_begin_undo_group();
|
rl_begin_undo_group();
|
||||||
rl_complete(ignore, key);
|
rl_complete(ignore, key);
|
||||||
|
@ -1253,26 +1253,20 @@ static Int style_checker(USES_REGS1) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
X_API Term Yap_StringToTerm(const char *s, size_t len, encoding_t *encp,
|
X_API Term Yap_StringToTerm(const char *s, size_t len, encoding_t *encp,
|
||||||
int prio, Term *bindings) {
|
int prio, Term *bindingsp) {
|
||||||
CACHE_REGS
|
CACHE_REGS
|
||||||
Term bvar = MkVarTerm(), ctl;
|
Term ctl;
|
||||||
yhandle_t sl;
|
|
||||||
int lvl = push_text_stack();
|
int lvl = push_text_stack();
|
||||||
|
|
||||||
if (len == 0) {
|
if (len == 0) {
|
||||||
Term rval = TermEof;
|
Term rval = TermEof;
|
||||||
if (rval && bindings) {
|
pop_text_stack(lvl);
|
||||||
*bindings = TermNil;
|
|
||||||
}
|
|
||||||
pop_text_stack(lvl);
|
|
||||||
return rval;
|
return rval;
|
||||||
}
|
}
|
||||||
if (bindings) {
|
if (bindingsp) {
|
||||||
ctl = Yap_MkApplTerm(Yap_MkFunctor(AtomVariableNames, 1), 1, &bvar);
|
ctl = Yap_MkNewApplTerm(Yap_MkFunctor(AtomVariableNames, 1), 1);
|
||||||
sl = Yap_PushHandle(bvar);
|
|
||||||
} else {
|
} else {
|
||||||
ctl = TermNil;
|
ctl = TermNil;
|
||||||
sl = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Term rval;
|
Term rval;
|
||||||
@ -1281,8 +1275,8 @@ X_API Term Yap_StringToTerm(const char *s, size_t len, encoding_t *encp,
|
|||||||
rval = Yap_read_term(stream, ctl, 3);
|
rval = Yap_read_term(stream, ctl, 3);
|
||||||
Yap_CloseStream(stream);
|
Yap_CloseStream(stream);
|
||||||
UNLOCK(GLOBAL_Stream[stream].streamlock);
|
UNLOCK(GLOBAL_Stream[stream].streamlock);
|
||||||
if (rval && bindings) {
|
if (rval && bindingsp) {
|
||||||
*bindings = Yap_PopHandle(sl);
|
*bindingsp = ArgOfTerm(1,ctl);
|
||||||
}
|
}
|
||||||
pop_text_stack(lvl);
|
pop_text_stack(lvl);
|
||||||
return rval;
|
return rval;
|
||||||
|
@ -106,7 +106,7 @@ typedef enum mem_buf_source {
|
|||||||
extern char *Yap_MemStreamBuf(int sno);
|
extern char *Yap_MemStreamBuf(int sno);
|
||||||
|
|
||||||
extern X_API Term Yap_StringToTerm(const char *s, size_t len, encoding_t *encp,
|
extern X_API Term Yap_StringToTerm(const char *s, size_t len, encoding_t *encp,
|
||||||
int prio, Term *bindings_p);
|
int prio, Term *bindingsp);
|
||||||
extern Term Yap_StringToNumberTerm(const char *s, encoding_t *encp,
|
extern Term Yap_StringToNumberTerm(const char *s, encoding_t *encp,
|
||||||
bool error_on);
|
bool error_on);
|
||||||
extern int Yap_FormatFloat(Float f, char **s, size_t sz);
|
extern int Yap_FormatFloat(Float f, char **s, size_t sz);
|
||||||
|
Reference in New Issue
Block a user