improve string support

fix non-thread compilation.
This commit is contained in:
Vítor Santos Costa
2011-03-11 23:21:23 +00:00
parent d42db0dc5c
commit 0d6be2d858
12 changed files with 92 additions and 46 deletions

View File

@@ -1652,15 +1652,22 @@ p_atom_codes( USES_REGS1 )
Term NewT;
Atom at;
if (!IsAtomTerm(t1)) {
if (Yap_IsStringTerm(t1)) {
if (Yap_IsWideStringTerm(t1)) {
NewT = Yap_WideStringToList(Yap_BlobWideStringOfTerm(t1));
} else {
NewT = Yap_StringToList(Yap_BlobStringOfTerm(t1));
}
} else if (!IsAtomTerm(t1)) {
Yap_Error(TYPE_ERROR_ATOM, t1, "atom_codes/2");
return(FALSE);
}
at = AtomOfTerm(t1);
if (IsWideAtom(at)) {
NewT = Yap_WideStringToList((wchar_t *)RepAtom(at)->StrOfAE);
} else {
NewT = Yap_StringToList(RepAtom(at)->StrOfAE);
at = AtomOfTerm(t1);
if (IsWideAtom(at)) {
NewT = Yap_WideStringToList((wchar_t *)RepAtom(at)->StrOfAE);
} else {
NewT = Yap_StringToList(RepAtom(at)->StrOfAE);
}
}
return (Yap_unify(NewT, ARG2));
} else {