This commit is contained in:
Vítor Santos Costa 2013-12-15 10:27:33 +00:00
parent a8e1b91fd5
commit f204776107

View File

@ -313,29 +313,24 @@ Yap_LookupMaybeWideAtomWithLength(wchar_t *atom, size_t len0)
len++; len++;
if (len == len0) break; if (len == len0) break;
} }
if (p[0] == '\0' && wide) return LookupWideAtom(atom); if (wide) {
else if (wide) { wchar_t *ptr0;
wchar_t *ptr, *ptr0; ptr0 = (wchar_t *)Yap_AllocCodeSpace(sizeof(wchar_t)*(len0+1));
len = 0; if (!ptr0)
p = atom;
ptr0 = ptr = (wchar_t *)Yap_AllocCodeSpace(sizeof(wchar_t)*(len0+1));
if (!ptr)
return NIL; return NIL;
while (len++ < len0) {int ch = *ptr++ = *p++; if (ch == '\0') break;} memcpy(ptr0, atom, len0*sizeof(wchar_t));
ptr[0] = '\0'; ptr0[len0] = '\0';
at = LookupWideAtom(ptr0); at = LookupWideAtom(ptr0);
Yap_FreeCodeSpace((char *)ptr0); Yap_FreeCodeSpace((char *)ptr0);
return at; return at;
} else { } else {
char *ptr, *ptr0; char *ptr0;
len = 0; Int i;
/* not really a wide atom */ ptr0 = (char *)Yap_AllocCodeSpace((len0+1));
p = atom; if (!ptr0)
ptr0 = ptr = Yap_AllocCodeSpace(len0+1);
if (!ptr)
return NIL; return NIL;
while (len++ < len0) {int ch = *ptr++ = *p++; if (ch == '\0') break;} for (i=0; i < len0; i++) ptr0[i] = atom[i];
ptr[0] = '\0'; ptr0[len0] = '\0';
at = LookupAtom(ptr0); at = LookupAtom(ptr0);
Yap_FreeCodeSpace(ptr0); Yap_FreeCodeSpace(ptr0);
return at; return at;