improve C-interface and SWI comptaibility a bit.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@2292 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
97
C/adtdefs.c
97
C/adtdefs.c
@@ -1009,7 +1009,20 @@ Yap_StringToList(char *s)
|
||||
}
|
||||
|
||||
Term
|
||||
Yap_WStringToList(wchar_t *s)
|
||||
Yap_NStringToList(char *s, size_t len)
|
||||
{
|
||||
Term t;
|
||||
char *cp = s + len;
|
||||
|
||||
t = MkAtomTerm(AtomNil);
|
||||
while (cp > s) {
|
||||
t = MkPairTerm(MkIntegerTerm(*--cp), t);
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
Term
|
||||
Yap_WideStringToList(wchar_t *s)
|
||||
{
|
||||
Term t;
|
||||
wchar_t *cp = s + wcslen(s);
|
||||
@@ -1021,6 +1034,19 @@ Yap_WStringToList(wchar_t *s)
|
||||
return t;
|
||||
}
|
||||
|
||||
Term
|
||||
Yap_NWideStringToList(wchar_t *s, size_t len)
|
||||
{
|
||||
Term t;
|
||||
wchar_t *cp = s + len;
|
||||
|
||||
t = MkAtomTerm(AtomNil);
|
||||
while (cp > s) {
|
||||
t = MkPairTerm(MkIntegerTerm(*--cp), t);
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
Term
|
||||
Yap_StringToDiffList(char *s, Term t)
|
||||
{
|
||||
@@ -1032,6 +1058,39 @@ Yap_StringToDiffList(char *s, Term t)
|
||||
return t;
|
||||
}
|
||||
|
||||
Term
|
||||
Yap_NStringToDiffList(char *s, Term t, size_t len)
|
||||
{
|
||||
register unsigned char *cp = (unsigned char *)s + len;
|
||||
|
||||
while (cp > (unsigned char *)s) {
|
||||
t = MkPairTerm(MkIntTerm(*--cp), t);
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
Term
|
||||
Yap_WideStringToDiffList(wchar_t *s, Term t)
|
||||
{
|
||||
wchar_t *cp = s + wcslen(s);
|
||||
|
||||
while (cp > s) {
|
||||
t = MkPairTerm(MkIntegerTerm(*--cp), t);
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
Term
|
||||
Yap_NWideStringToDiffList(wchar_t *s, Term t, size_t len)
|
||||
{
|
||||
wchar_t *cp = s + len;
|
||||
|
||||
while (cp > s) {
|
||||
t = MkPairTerm(MkIntegerTerm(*--cp), t);
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
Term
|
||||
Yap_StringToListOfAtoms(char *s)
|
||||
{
|
||||
@@ -1045,11 +1104,27 @@ Yap_StringToListOfAtoms(char *s)
|
||||
so[0] = *--cp;
|
||||
t = MkPairTerm(MkAtomTerm(LookupAtom(so)), t);
|
||||
}
|
||||
return (t);
|
||||
return t;
|
||||
}
|
||||
|
||||
Term
|
||||
Yap_WStringToListOfAtoms(wchar_t *s)
|
||||
Yap_NStringToListOfAtoms(char *s, size_t len)
|
||||
{
|
||||
register Term t;
|
||||
char so[2];
|
||||
register unsigned char *cp = (unsigned char *)s + len;
|
||||
|
||||
so[1] = '\0';
|
||||
t = MkAtomTerm(AtomNil);
|
||||
while (cp > (unsigned char *)s) {
|
||||
so[0] = *--cp;
|
||||
t = MkPairTerm(MkAtomTerm(LookupAtom(so)), t);
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
Term
|
||||
Yap_WideStringToListOfAtoms(wchar_t *s)
|
||||
{
|
||||
register Term t;
|
||||
wchar_t so[2];
|
||||
@@ -1064,6 +1139,22 @@ Yap_WStringToListOfAtoms(wchar_t *s)
|
||||
return t;
|
||||
}
|
||||
|
||||
Term
|
||||
Yap_NWideStringToListOfAtoms(wchar_t *s, size_t len)
|
||||
{
|
||||
register Term t;
|
||||
wchar_t so[2];
|
||||
wchar_t *cp = s + len;
|
||||
|
||||
so[1] = '\0';
|
||||
t = MkAtomTerm(AtomNil);
|
||||
while (cp > s) {
|
||||
so[0] = *--cp;
|
||||
t = MkPairTerm(MkAtomTerm(LookupWideAtom(so)), t);
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
Term
|
||||
Yap_ArrayToList(register Term *tp, int nof)
|
||||
{
|
||||
|
Reference in New Issue
Block a user