indenting
This commit is contained in:
parent
5fcf173d0a
commit
110a23b209
186
C/text.c
186
C/text.c
@ -39,23 +39,26 @@ void *buf__, *cur__;
|
|||||||
|
|
||||||
#define init_alloc(I) \
|
#define init_alloc(I) \
|
||||||
void *ov__ = TR, *ocur__ = LOCAL_ScannerStack; \
|
void *ov__ = TR, *ocur__ = LOCAL_ScannerStack; \
|
||||||
if (!LOCAL_ScannerStack) LOCAL_ScannerStack = (char *)TR
|
if (!LOCAL_ScannerStack) \
|
||||||
|
LOCAL_ScannerStack = (char *)TR
|
||||||
|
|
||||||
#define mark_stack() \
|
#define mark_stack() \
|
||||||
void *otr__ = TR; void * ost__ = LOCAL_ScannerStack; TR =(tr_fr_ptr)LOCAL_ScannerStack
|
void *otr__ = TR; \
|
||||||
|
void *ost__ = LOCAL_ScannerStack; \
|
||||||
|
TR = (tr_fr_ptr)LOCAL_ScannerStack
|
||||||
|
|
||||||
#define restore_stack() \
|
#define restore_stack() \
|
||||||
TR = otr__; LOCAL_ScannerStack = ost__
|
TR = otr__; \
|
||||||
|
LOCAL_ScannerStack = ost__
|
||||||
|
|
||||||
#define export_buf(s) {}
|
#define export_buf(s) \
|
||||||
|
{}
|
||||||
#define unprotect_stack(s) \
|
|
||||||
TR = ov__, LOCAL_ScannerStack = ocur__
|
|
||||||
//LOCAL_ScannerStack = ov__, TR = ot__
|
|
||||||
|
|
||||||
|
#define unprotect_stack(s) TR = ov__, LOCAL_ScannerStack = ocur__
|
||||||
|
// LOCAL_ScannerStack = ov__, TR = ot__
|
||||||
|
|
||||||
static bool alloc_ovfl(size_t sz) {
|
static bool alloc_ovfl(size_t sz) {
|
||||||
return (char *) +(sz + 4096) > (char *) LOCAL_TrailTop;
|
return (char *)+(sz + 4096) > (char *)LOCAL_TrailTop;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *Malloc(size_t sz USES_REGS) {
|
static void *Malloc(size_t sz USES_REGS) {
|
||||||
@ -63,13 +66,13 @@ static void *Malloc(size_t sz USES_REGS) {
|
|||||||
if (alloc_ovfl(sz))
|
if (alloc_ovfl(sz))
|
||||||
return NULL;
|
return NULL;
|
||||||
void *o = LOCAL_ScannerStack;
|
void *o = LOCAL_ScannerStack;
|
||||||
LOCAL_ScannerStack = (void *) ((char *) LOCAL_ScannerStack + sz);
|
LOCAL_ScannerStack = (void *)((char *)LOCAL_ScannerStack + sz);
|
||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
|
|
||||||
static size_t MaxTmp(USES_REGS1) {
|
static size_t MaxTmp(USES_REGS1) {
|
||||||
if (LOCAL_ScannerStack) {
|
if (LOCAL_ScannerStack) {
|
||||||
return (char *) LOCAL_TrailTop - (char *) LOCAL_ScannerStack;
|
return (char *)LOCAL_TrailTop - (char *)LOCAL_ScannerStack;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -194,8 +197,7 @@ static Int SkipListCodes(unsigned char **bufp, Term *l, Term **tailp,
|
|||||||
return length;
|
return length;
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned char *latin2utf8(seq_tv_t *inp, size_t
|
static unsigned char *latin2utf8(seq_tv_t *inp, size_t *lengp) {
|
||||||
*lengp) {
|
|
||||||
unsigned char *b0 = inp->val.uc;
|
unsigned char *b0 = inp->val.uc;
|
||||||
size_t sz = *lengp = strlen(inp->val.c);
|
size_t sz = *lengp = strlen(inp->val.c);
|
||||||
sz *= 2;
|
sz *= 2;
|
||||||
@ -214,7 +216,6 @@ static unsigned char *latin2utf8(seq_tv_t *inp, size_t
|
|||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static unsigned char *wchar2utf8(seq_tv_t *inp, size_t *lengp) {
|
static unsigned char *wchar2utf8(seq_tv_t *inp, size_t *lengp) {
|
||||||
*lengp = wcslen(inp->val.w);
|
*lengp = wcslen(inp->val.w);
|
||||||
size_t sz = *lengp * 4;
|
size_t sz = *lengp * 4;
|
||||||
@ -306,15 +307,12 @@ unsigned char *Yap_readText(seq_tv_t *inp, size_t *lengp) {
|
|||||||
if (!(inp->type & YAP_STRING_TERM)) {
|
if (!(inp->type & YAP_STRING_TERM)) {
|
||||||
if (IsVarTerm(inp->val.t)) {
|
if (IsVarTerm(inp->val.t)) {
|
||||||
LOCAL_Error_TYPE = INSTANTIATION_ERROR;
|
LOCAL_Error_TYPE = INSTANTIATION_ERROR;
|
||||||
} else if (!IsAtomTerm(inp->val.t) &&
|
} else if (!IsAtomTerm(inp->val.t) && inp->type == YAP_STRING_ATOM) {
|
||||||
inp->type == YAP_STRING_ATOM) {
|
|
||||||
LOCAL_Error_TYPE = TYPE_ERROR_ATOM;
|
LOCAL_Error_TYPE = TYPE_ERROR_ATOM;
|
||||||
} else if (!IsStringTerm(inp->val.t) &&
|
} else if (!IsStringTerm(inp->val.t) && inp->type == YAP_STRING_STRING) {
|
||||||
inp->type == YAP_STRING_STRING) {
|
|
||||||
LOCAL_Error_TYPE = TYPE_ERROR_STRING;
|
LOCAL_Error_TYPE = TYPE_ERROR_STRING;
|
||||||
} else if (!IsPairOrNilTerm(inp->val.t) && !IsStringTerm(inp->val.t) &&
|
} else if (!IsPairOrNilTerm(inp->val.t) && !IsStringTerm(inp->val.t) &&
|
||||||
inp->type ==
|
inp->type == (YAP_STRING_ATOMS_CODES | YAP_STRING_STRING)) {
|
||||||
(YAP_STRING_ATOMS_CODES | YAP_STRING_STRING)) {
|
|
||||||
LOCAL_Error_TYPE = TYPE_ERROR_LIST;
|
LOCAL_Error_TYPE = TYPE_ERROR_LIST;
|
||||||
} else if (!IsNumTerm(inp->val.t) &&
|
} else if (!IsNumTerm(inp->val.t) &&
|
||||||
(inp->type & (YAP_STRING_INT | YAP_STRING_FLOAT |
|
(inp->type & (YAP_STRING_INT | YAP_STRING_FLOAT |
|
||||||
@ -329,7 +327,7 @@ unsigned char *Yap_readText(seq_tv_t *inp, size_t *lengp) {
|
|||||||
|
|
||||||
if (IsAtomTerm(inp->val.t) && inp->type & YAP_STRING_ATOM) {
|
if (IsAtomTerm(inp->val.t) && inp->type & YAP_STRING_ATOM) {
|
||||||
// this is a term, extract to a buffer, and representation is wide
|
// this is a term, extract to a buffer, and representation is wide
|
||||||
//Yap_DebugPlWriteln(inp->val.t);
|
// Yap_DebugPlWriteln(inp->val.t);
|
||||||
Atom at = AtomOfTerm(inp->val.t);
|
Atom at = AtomOfTerm(inp->val.t);
|
||||||
if (IsWideAtom(at)) {
|
if (IsWideAtom(at)) {
|
||||||
inp->val.w = at->WStrOfAE;
|
inp->val.w = at->WStrOfAE;
|
||||||
@ -341,35 +339,35 @@ unsigned char *Yap_readText(seq_tv_t *inp, size_t *lengp) {
|
|||||||
}
|
}
|
||||||
if (IsStringTerm(inp->val.t) && inp->type & YAP_STRING_STRING) {
|
if (IsStringTerm(inp->val.t) && inp->type & YAP_STRING_STRING) {
|
||||||
// this is a term, extract to a buffer, and representation is wide
|
// this is a term, extract to a buffer, and representation is wide
|
||||||
//Yap_DebugPlWriteln(inp->val.t);
|
// Yap_DebugPlWriteln(inp->val.t);
|
||||||
return UStringOfTerm(inp->val.t);
|
return (unsigned char *)UStringOfTerm(inp->val.t);
|
||||||
}
|
}
|
||||||
if (((inp->type & (YAP_STRING_CODES | YAP_STRING_ATOMS)) ==
|
if (((inp->type & (YAP_STRING_CODES | YAP_STRING_ATOMS)) ==
|
||||||
(YAP_STRING_CODES | YAP_STRING_ATOMS)) && IsPairOrNilTerm(inp->val.t)) {
|
(YAP_STRING_CODES | YAP_STRING_ATOMS)) &&
|
||||||
//Yap_DebugPlWriteln(inp->val.t);
|
IsPairOrNilTerm(inp->val.t)) {
|
||||||
|
// Yap_DebugPlWriteln(inp->val.t);
|
||||||
return inp->val.uc =
|
return inp->val.uc =
|
||||||
Yap_ListToBuffer(s0, inp->val.t, inp, &wide, lengp
|
Yap_ListToBuffer(s0, inp->val.t, inp, &wide, lengp PASS_REGS);
|
||||||
PASS_REGS);
|
|
||||||
// this is a term, extract to a sfer, and representation is wide
|
// this is a term, extract to a sfer, and representation is wide
|
||||||
}
|
}
|
||||||
if (inp->type & YAP_STRING_CODES && IsPairOrNilTerm(inp->val.t)) {
|
if (inp->type & YAP_STRING_CODES && IsPairOrNilTerm(inp->val.t)) {
|
||||||
//Yap_DebugPlWriteln(inp->val.t);
|
// Yap_DebugPlWriteln(inp->val.t);
|
||||||
return inp->val.uc = Yap_ListOfCodesToBuffer(s0, inp->val.t, inp, &wide,
|
return inp->val.uc = Yap_ListOfCodesToBuffer(s0, inp->val.t, inp, &wide,
|
||||||
lengp PASS_REGS);
|
lengp PASS_REGS);
|
||||||
// this is a term, extract to a sfer, and representation is wide
|
// this is a term, extract to a sfer, and representation is wide
|
||||||
}
|
}
|
||||||
if (inp->type & YAP_STRING_ATOMS && IsPairOrNilTerm(inp->val.t)) {
|
if (inp->type & YAP_STRING_ATOMS && IsPairOrNilTerm(inp->val.t)) {
|
||||||
//Yap_DebugPlWriteln(inp->val.t);
|
// Yap_DebugPlWriteln(inp->val.t);
|
||||||
return inp->val.uc = Yap_ListOfAtomsToBuffer(s0, inp->val.t, inp, &wide,
|
return inp->val.uc = Yap_ListOfAtomsToBuffer(s0, inp->val.t, inp, &wide,
|
||||||
lengp PASS_REGS);
|
lengp PASS_REGS);
|
||||||
// this is a term, extract to a buffer, and representation is wide
|
// this is a term, extract to a buffer, and representation is wide
|
||||||
}
|
}
|
||||||
if (inp->type & YAP_STRING_INT && IsIntegerTerm(inp->val.t)) {
|
if (inp->type & YAP_STRING_INT && IsIntegerTerm(inp->val.t)) {
|
||||||
// ASCII, so both LATIN1 and UTF-8
|
// ASCII, so both LATIN1 and UTF-8
|
||||||
//Yap_DebugPlWriteln(inp->val.t);
|
// Yap_DebugPlWriteln(inp->val.t);
|
||||||
char *s;
|
char *s;
|
||||||
if (s0)
|
if (s0)
|
||||||
s = (char *) s0;
|
s = (char *)s0;
|
||||||
else
|
else
|
||||||
s = Malloc(0);
|
s = Malloc(0);
|
||||||
AUX_ERROR(inp->val.t, MaxTmp(PASS_REGS1), s, char);
|
AUX_ERROR(inp->val.t, MaxTmp(PASS_REGS1), s, char);
|
||||||
@ -379,13 +377,13 @@ unsigned char *Yap_readText(seq_tv_t *inp, size_t *lengp) {
|
|||||||
}
|
}
|
||||||
*lengp = strlen(s);
|
*lengp = strlen(s);
|
||||||
Malloc(*lengp);
|
Malloc(*lengp);
|
||||||
return inp->val.uc = (unsigned char *) s;
|
return inp->val.uc = (unsigned char *)s;
|
||||||
}
|
}
|
||||||
if (inp->type & YAP_STRING_FLOAT && IsFloatTerm(inp->val.t)) {
|
if (inp->type & YAP_STRING_FLOAT && IsFloatTerm(inp->val.t)) {
|
||||||
char *s;
|
char *s;
|
||||||
//Yap_DebugPlWriteln(inp->val.t);
|
// Yap_DebugPlWriteln(inp->val.t);
|
||||||
if (s0)
|
if (s0)
|
||||||
s = (char *) s0;
|
s = (char *)s0;
|
||||||
else
|
else
|
||||||
s = Malloc(0);
|
s = Malloc(0);
|
||||||
AUX_ERROR(inp->val.t, MaxTmp(PASS_REGS1), s, char);
|
AUX_ERROR(inp->val.t, MaxTmp(PASS_REGS1), s, char);
|
||||||
@ -394,32 +392,31 @@ unsigned char *Yap_readText(seq_tv_t *inp, size_t *lengp) {
|
|||||||
}
|
}
|
||||||
*lengp = strlen(s);
|
*lengp = strlen(s);
|
||||||
Malloc(*lengp);
|
Malloc(*lengp);
|
||||||
return inp->val.uc = (unsigned char *) s;
|
return inp->val.uc = (unsigned char *)s;
|
||||||
}
|
}
|
||||||
#if USE_GMP
|
#if USE_GMP
|
||||||
if (inp->type & YAP_STRING_BIG && IsBigIntTerm(inp->val.t)) {
|
if (inp->type & YAP_STRING_BIG && IsBigIntTerm(inp->val.t)) {
|
||||||
//Yap_DebugPlWriteln(inp->val.t);
|
// Yap_DebugPlWriteln(inp->val.t);
|
||||||
char *s;
|
char *s;
|
||||||
if (s0)
|
if (s0)
|
||||||
s = 0;
|
s = 0;
|
||||||
else
|
else
|
||||||
s = Malloc(0);
|
s = Malloc(0);
|
||||||
if (!Yap_mpz_to_string(Yap_BigIntOfTerm(inp->val.t), s, MaxTmp() - 1,
|
if (!Yap_mpz_to_string(Yap_BigIntOfTerm(inp->val.t), s, MaxTmp() - 1, 10)) {
|
||||||
10)) {
|
|
||||||
AUX_ERROR(inp->val.t, MaxTmp(PASS_REGS1), s, char);
|
AUX_ERROR(inp->val.t, MaxTmp(PASS_REGS1), s, char);
|
||||||
}
|
}
|
||||||
*lengp = strlen(s);
|
*lengp = strlen(s);
|
||||||
Malloc(*lengp);
|
Malloc(*lengp);
|
||||||
return inp->val.uc = (unsigned char *) s;
|
return inp->val.uc = (unsigned char *)s;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (inp->type & YAP_STRING_TERM) {
|
if (inp->type & YAP_STRING_TERM) {
|
||||||
//Yap_DebugPlWriteln(inp->val.t);
|
// Yap_DebugPlWriteln(inp->val.t);
|
||||||
char *s = (char *) Yap_TermToString(inp->val.t, lengp, ENC_ISO_UTF8, 0);
|
char *s = (char *)Yap_TermToString(inp->val.t, lengp, ENC_ISO_UTF8, 0);
|
||||||
return inp->val.uc = (unsigned char *) s;
|
return inp->val.uc = (unsigned char *)s;
|
||||||
}
|
}
|
||||||
if (inp->type & YAP_STRING_CHARS) {
|
if (inp->type & YAP_STRING_CHARS) {
|
||||||
//printf("%s\n",inp->val.c);
|
// printf("%s\n",inp->val.c);
|
||||||
if (inp->enc == ENC_ISO_UTF8) {
|
if (inp->enc == ENC_ISO_UTF8) {
|
||||||
if (lengp)
|
if (lengp)
|
||||||
*lengp = strlen_utf8(inp->val.uc);
|
*lengp = strlen_utf8(inp->val.uc);
|
||||||
@ -433,7 +430,7 @@ unsigned char *Yap_readText(seq_tv_t *inp, size_t *lengp) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (inp->type & YAP_STRING_WCHARS) {
|
if (inp->type & YAP_STRING_WCHARS) {
|
||||||
//printf("%S\n",inp->val.w);
|
// printf("%S\n",inp->val.w);
|
||||||
return wchar2utf8(inp, lengp);
|
return wchar2utf8(inp, lengp);
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -460,14 +457,15 @@ static Term write_strings(unsigned char *s0, seq_tv_t *out,
|
|||||||
utf8proc_int32_t chr;
|
utf8proc_int32_t chr;
|
||||||
int off;
|
int off;
|
||||||
off = get_utf8(cp, -1, &chr);
|
off = get_utf8(cp, -1, &chr);
|
||||||
if (off > 0) cp += off;
|
if (off > 0)
|
||||||
|
cp += off;
|
||||||
else {
|
else {
|
||||||
//Yap_Error(TYPE_ERROR_TEXT, t, NULL);
|
// Yap_Error(TYPE_ERROR_TEXT, t, NULL);
|
||||||
cp++;
|
cp++;
|
||||||
}
|
}
|
||||||
off = put_utf8(buf, chr);
|
off = put_utf8(buf, chr);
|
||||||
if (off > 0) buf += off;
|
if (off > 0)
|
||||||
|
buf += off;
|
||||||
}
|
}
|
||||||
if (max >= min)
|
if (max >= min)
|
||||||
*buf++ = '\0';
|
*buf++ = '\0';
|
||||||
@ -496,7 +494,7 @@ static Term write_atoms(void *s0, seq_tv_t *out, size_t leng USES_REGS) {
|
|||||||
max = out->max;
|
max = out->max;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned char *s = s0, *lim = s + strnlen((char *) s, max);
|
unsigned char *s = s0, *lim = s + strnlen((char *)s, max);
|
||||||
unsigned char *cp = s;
|
unsigned char *cp = s;
|
||||||
wchar_t w[2];
|
wchar_t w[2];
|
||||||
w[1] = '\0';
|
w[1] = '\0';
|
||||||
@ -544,7 +542,7 @@ static Term write_codes(void *s0, seq_tv_t *out, size_t leng USES_REGS) {
|
|||||||
max = out->max;
|
max = out->max;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned char *s = s0, *lim = s + strlen((char *) s);
|
unsigned char *s = s0, *lim = s + strlen((char *)s);
|
||||||
unsigned char *cp = s;
|
unsigned char *cp = s;
|
||||||
wchar_t w[2];
|
wchar_t w[2];
|
||||||
w[1] = '\0';
|
w[1] = '\0';
|
||||||
@ -582,9 +580,10 @@ static Atom write_atom(void *s0, seq_tv_t *out, size_t leng USES_REGS) {
|
|||||||
{
|
{
|
||||||
unsigned char *s = s0;
|
unsigned char *s = s0;
|
||||||
utf8proc_int32_t chr;
|
utf8proc_int32_t chr;
|
||||||
while (*s && get_utf8(s, -1, &chr) == 1) s++;
|
while (*s && get_utf8(s, -1, &chr) == 1)
|
||||||
|
s++;
|
||||||
if (*s == '\0')
|
if (*s == '\0')
|
||||||
return out->val.a = Yap_LookupAtom((char *) s0);
|
return out->val.a = Yap_LookupAtom((char *)s0);
|
||||||
s = s0;
|
s = s0;
|
||||||
size_t l = strlen(s0);
|
size_t l = strlen(s0);
|
||||||
wchar_t *wbuf = Malloc(sizeof(wchar_t) * ((l + 1))), *wptr = wbuf;
|
wchar_t *wbuf = Malloc(sizeof(wchar_t) * ((l + 1))), *wptr = wbuf;
|
||||||
@ -612,15 +611,15 @@ static Atom write_atom(void *s0, seq_tv_t *out, size_t leng USES_REGS) {
|
|||||||
size_t write_buffer(unsigned char *s0, seq_tv_t *out, size_t leng USES_REGS) {
|
size_t write_buffer(unsigned char *s0, seq_tv_t *out, size_t leng USES_REGS) {
|
||||||
size_t min = 0, max = leng, room_end;
|
size_t min = 0, max = leng, room_end;
|
||||||
if (out->enc == ENC_ISO_UTF8) {
|
if (out->enc == ENC_ISO_UTF8) {
|
||||||
room_end = strlen((char *) s0) + 1;
|
room_end = strlen((char *)s0) + 1;
|
||||||
if (out->val.uc == NULL) {
|
if (out->val.uc == NULL) {
|
||||||
out->val.uc = malloc(room_end);
|
out->val.uc = malloc(room_end < 16 ? 16 : room_end);
|
||||||
}
|
}
|
||||||
if (out->val.uc != s0) {
|
if (out->val.uc != s0) {
|
||||||
strcpy(out->val.c, (char *) s0);
|
strcpy(out->val.c, (char *)s0);
|
||||||
}
|
}
|
||||||
} else if (out->enc == ENC_ISO_LATIN1) {
|
} else if (out->enc == ENC_ISO_LATIN1) {
|
||||||
room_end = strlen((char *) s0) + 1;
|
room_end = strlen((char *)s0) + 1;
|
||||||
unsigned char *s = s0;
|
unsigned char *s = s0;
|
||||||
unsigned char *cp = s;
|
unsigned char *cp = s;
|
||||||
unsigned char *buf = out->val.uc;
|
unsigned char *buf = out->val.uc;
|
||||||
@ -647,7 +646,7 @@ size_t write_buffer(unsigned char *s0, seq_tv_t *out, size_t leng USES_REGS) {
|
|||||||
}
|
}
|
||||||
room_end = buf - out->val.uc;
|
room_end = buf - out->val.uc;
|
||||||
} else if (out->enc == ENC_WCHAR) {
|
} else if (out->enc == ENC_WCHAR) {
|
||||||
unsigned char *s = s0, *lim = s + (max = strnlen((char *) s0, max));
|
unsigned char *s = s0, *lim = s + (max = strnlen((char *)s0, max));
|
||||||
unsigned char *cp = s;
|
unsigned char *cp = s;
|
||||||
wchar_t *buf0, *buf;
|
wchar_t *buf0, *buf;
|
||||||
|
|
||||||
@ -682,11 +681,10 @@ static size_t write_length(const unsigned char *s0, seq_tv_t *out,
|
|||||||
return leng;
|
return leng;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Term write_number(unsigned char *s, seq_tv_t *out, int size
|
static Term write_number(unsigned char *s, seq_tv_t *out, int size USES_REGS) {
|
||||||
USES_REGS) {
|
|
||||||
Term t;
|
Term t;
|
||||||
mark_stack();
|
mark_stack();
|
||||||
t = Yap_StringToNumberTerm((char *) s, &out->enc);
|
t = Yap_StringToNumberTerm((char *)s, &out->enc);
|
||||||
restore_stack();
|
restore_stack();
|
||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
@ -695,8 +693,7 @@ static Term string_to_term(void *s, seq_tv_t *out, size_t leng USES_REGS) {
|
|||||||
Term o;
|
Term o;
|
||||||
mark_stack();
|
mark_stack();
|
||||||
o = out->val.t =
|
o = out->val.t =
|
||||||
Yap_StringToTerm(s, strlen(s) + 1, &out->enc,
|
Yap_StringToTerm(s, strlen(s) + 1, &out->enc, GLOBAL_MaxPriority, NULL);
|
||||||
GLOBAL_MaxPriority, NULL);
|
|
||||||
restore_stack();
|
restore_stack();
|
||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
@ -707,12 +704,9 @@ bool write_Text(unsigned char *inp, seq_tv_t *out, size_t leng USES_REGS) {
|
|||||||
if ((out->val.t = string_to_term(inp, out, leng PASS_REGS)) != 0L)
|
if ((out->val.t = string_to_term(inp, out, leng PASS_REGS)) != 0L)
|
||||||
return out->val.t != 0;
|
return out->val.t != 0;
|
||||||
}
|
}
|
||||||
if (out->type &
|
if (out->type & (YAP_STRING_INT | YAP_STRING_FLOAT | YAP_STRING_BIG)) {
|
||||||
(YAP_STRING_INT | YAP_STRING_FLOAT | YAP_STRING_BIG)) {
|
if ((out->val.t = write_number(inp, out, leng PASS_REGS)) != 0L) {
|
||||||
if (
|
// Yap_DebugPlWriteln(out->val.t);
|
||||||
(out->val.t = write_number(inp, out, leng PASS_REGS)) !=
|
|
||||||
0L) {
|
|
||||||
//Yap_DebugPlWriteln(out->val.t);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -721,12 +715,11 @@ bool write_Text(unsigned char *inp, seq_tv_t *out, size_t leng USES_REGS) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (out->type & (YAP_STRING_ATOM)) {
|
if (out->type & (YAP_STRING_ATOM)) {
|
||||||
if (
|
if (write_atom(inp, out, leng PASS_REGS) != NIL) {
|
||||||
write_atom(inp, out, leng PASS_REGS) != NIL) {
|
|
||||||
Atom at = out->val.a;
|
Atom at = out->val.a;
|
||||||
if (at && ( out->type & YAP_STRING_OUTPUT_TERM))
|
if (at && (out->type & YAP_STRING_OUTPUT_TERM))
|
||||||
out->val.t = MkAtomTerm(at);
|
out->val.t = MkAtomTerm(at);
|
||||||
//Yap_DebugPlWriteln(out->val.t);
|
// Yap_DebugPlWriteln(out->val.t);
|
||||||
return at != NIL;
|
return at != NIL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -734,40 +727,39 @@ bool write_Text(unsigned char *inp, seq_tv_t *out, size_t leng USES_REGS) {
|
|||||||
switch (out->type & YAP_TYPE_MASK) {
|
switch (out->type & YAP_TYPE_MASK) {
|
||||||
case YAP_STRING_CHARS: {
|
case YAP_STRING_CHARS: {
|
||||||
size_t room = write_buffer(inp, out, leng PASS_REGS);
|
size_t room = write_buffer(inp, out, leng PASS_REGS);
|
||||||
//printf("%s\n", out->val.c);
|
// printf("%s\n", out->val.c);
|
||||||
return ((Int) room > 0);
|
return ((Int)room > 0);
|
||||||
}
|
}
|
||||||
case YAP_STRING_WCHARS: {
|
case YAP_STRING_WCHARS: {
|
||||||
size_t room = write_buffer(inp, out, leng PASS_REGS);
|
size_t room = write_buffer(inp, out, leng PASS_REGS);
|
||||||
//printf("%S\n", out->val.w);
|
// printf("%S\n", out->val.w);
|
||||||
return ((Int) room > 0);
|
return ((Int)room > 0);
|
||||||
}
|
}
|
||||||
case YAP_STRING_STRING:
|
case YAP_STRING_STRING:
|
||||||
out->val.t = write_strings(inp, out, leng PASS_REGS);
|
out->val.t = write_strings(inp, out, leng PASS_REGS);
|
||||||
//Yap_DebugPlWriteln(out->val.t);
|
// Yap_DebugPlWriteln(out->val.t);
|
||||||
return out->val.t != 0;
|
return out->val.t != 0;
|
||||||
case YAP_STRING_ATOMS:
|
case YAP_STRING_ATOMS:
|
||||||
out->val.t = write_atoms(inp, out, leng PASS_REGS);
|
out->val.t = write_atoms(inp, out, leng PASS_REGS);
|
||||||
//Yap_DebugPlWriteln(out->val.t);
|
// Yap_DebugPlWriteln(out->val.t);
|
||||||
return out->val.t != 0;
|
return out->val.t != 0;
|
||||||
case YAP_STRING_CODES:
|
case YAP_STRING_CODES:
|
||||||
out->val.t = write_codes(inp, out, leng PASS_REGS);
|
out->val.t = write_codes(inp, out, leng PASS_REGS);
|
||||||
//Yap_DebugPlWriteln(out->val.t);
|
// Yap_DebugPlWriteln(out->val.t);
|
||||||
return out->val.t != 0;
|
return out->val.t != 0;
|
||||||
case YAP_STRING_LENGTH:
|
case YAP_STRING_LENGTH:
|
||||||
out->val.l = write_length(inp, out, leng PASS_REGS);
|
out->val.l = write_length(inp, out, leng PASS_REGS);
|
||||||
//printf("s\n",out->val.l);
|
// printf("s\n",out->val.l);
|
||||||
return out->val.l != (size_t) (-1);
|
return out->val.l != (size_t)(-1);
|
||||||
case YAP_STRING_ATOM:
|
case YAP_STRING_ATOM:
|
||||||
out->val.a = write_atom(inp, out, leng PASS_REGS);
|
out->val.a = write_atom(inp, out, leng PASS_REGS);
|
||||||
//Yap_DebugPlWriteln(out->val.t);
|
// Yap_DebugPlWriteln(out->val.t);
|
||||||
return out->val.a != NULL;
|
return out->val.a != NULL;
|
||||||
case YAP_STRING_INT | YAP_STRING_FLOAT | YAP_STRING_BIG:
|
case YAP_STRING_INT | YAP_STRING_FLOAT | YAP_STRING_BIG:
|
||||||
out->val.t = write_number(inp, out, leng PASS_REGS);
|
out->val.t = write_number(inp, out, leng PASS_REGS);
|
||||||
//Yap_DebugPlWriteln(out->val.t);
|
// Yap_DebugPlWriteln(out->val.t);
|
||||||
return out->val.t != 0;
|
return out->val.t != 0;
|
||||||
default: {
|
default: {}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -812,7 +804,7 @@ bool Yap_CVT_Text(seq_tv_t *inp, seq_tv_t *out USES_REGS) {
|
|||||||
else if (inp->type & YAP_STRING_WCHARS) fprintf(stderr,"S %S\n", inp->val
|
else if (inp->type & YAP_STRING_WCHARS) fprintf(stderr,"S %S\n", inp->val
|
||||||
.w);
|
.w);
|
||||||
else fprintf(stderr,"s %s\n", inp->val.c);
|
else fprintf(stderr,"s %s\n", inp->val.c);
|
||||||
*/
|
*/
|
||||||
buf = Yap_readText(inp, &leng PASS_REGS);
|
buf = Yap_readText(inp, &leng PASS_REGS);
|
||||||
if (out->type & (YAP_STRING_NCHARS | YAP_STRING_TRUNC)) {
|
if (out->type & (YAP_STRING_NCHARS | YAP_STRING_TRUNC)) {
|
||||||
if (out->max < leng) {
|
if (out->max < leng) {
|
||||||
@ -884,13 +876,14 @@ static unsigned char *concat(int n, unsigned char *sv[] USES_REGS) {
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < n; i++) {
|
for (i = 0; i < n; i++) {
|
||||||
room += strlen((char *) sv[i]);
|
room += strlen((char *)sv[i]);
|
||||||
}
|
}
|
||||||
buf = Malloc(room + 1);
|
buf = Malloc(room + 1);
|
||||||
buf0 = (unsigned char *) buf;
|
buf0 = (unsigned char *)buf;
|
||||||
for (i = 0; i < n; i++) {
|
for (i = 0; i < n; i++) {
|
||||||
buf = strcpy(buf, (char *) sv[i]);
|
char *s = (char *)sv[i];
|
||||||
buf += strlen( sv[i] );
|
buf = strcpy(buf, s);
|
||||||
|
buf += strlen(s);
|
||||||
}
|
}
|
||||||
return buf0;
|
return buf0;
|
||||||
}
|
}
|
||||||
@ -983,8 +976,7 @@ bool Yap_Splice_Text(int n, size_t cuts[], seq_tv_t *inp,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
l0 = l - l1;
|
l0 = l - l1;
|
||||||
if (cmp_Text(skip_utf8((const unsigned char *) buf, l0), buf1,
|
if (cmp_Text(skip_utf8((const unsigned char *)buf, l0), buf1, l1) !=
|
||||||
l1) !=
|
|
||||||
0) {
|
0) {
|
||||||
unprotect_stack(NULL);
|
unprotect_stack(NULL);
|
||||||
return false;
|
return false;
|
||||||
@ -1095,11 +1087,10 @@ const char *Yap_PredIndicatorToUTF8String(PredEntry *ap) {
|
|||||||
if (ap->ModuleOfPred == IDB_MODULE) {
|
if (ap->ModuleOfPred == IDB_MODULE) {
|
||||||
if (ap->PredFlags & NumberDBPredFlag) {
|
if (ap->PredFlags & NumberDBPredFlag) {
|
||||||
Int key = ap->src.IndxId;
|
Int key = ap->src.IndxId;
|
||||||
snprintf(s, smax - s, "%"
|
snprintf(s, smax - s, "%" PRIdPTR, key);
|
||||||
PRIdPTR, key);
|
|
||||||
return LOCAL_FileNameBuf;
|
return LOCAL_FileNameBuf;
|
||||||
} else if (ap->PredFlags & AtomDBPredFlag) {
|
} else if (ap->PredFlags & AtomDBPredFlag) {
|
||||||
at = (Atom) (ap->FunctorOfPred);
|
at = (Atom)(ap->FunctorOfPred);
|
||||||
if (!Yap_AtomToUTF8Text(at, s))
|
if (!Yap_AtomToUTF8Text(at, s))
|
||||||
return NULL;
|
return NULL;
|
||||||
} else {
|
} else {
|
||||||
@ -1112,15 +1103,14 @@ const char *Yap_PredIndicatorToUTF8String(PredEntry *ap) {
|
|||||||
if (arity) {
|
if (arity) {
|
||||||
at = NameOfFunctor(ap->FunctorOfPred);
|
at = NameOfFunctor(ap->FunctorOfPred);
|
||||||
} else {
|
} else {
|
||||||
at = (Atom) (ap->FunctorOfPred);
|
at = (Atom)(ap->FunctorOfPred);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!Yap_AtomToUTF8Text(at, s)) {
|
if (!Yap_AtomToUTF8Text(at, s)) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
s += strlen(s);
|
s += strlen(s);
|
||||||
snprintf(s, smax - s, "/%"
|
snprintf(s, smax - s, "/%" PRIdPTR, arity);
|
||||||
PRIdPTR, arity);
|
|
||||||
return s0;
|
return s0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user