indenting

This commit is contained in:
Vitor Santos Costa 2016-08-30 08:27:32 -05:00
parent 5fcf173d0a
commit 110a23b209

186
C/text.c
View File

@ -39,23 +39,26 @@ void *buf__, *cur__;
#define init_alloc(I) \
void *ov__ = TR, *ocur__ = LOCAL_ScannerStack; \
if (!LOCAL_ScannerStack) LOCAL_ScannerStack = (char *)TR
if (!LOCAL_ScannerStack) \
LOCAL_ScannerStack = (char *)TR
#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() \
TR = otr__; LOCAL_ScannerStack = ost__
TR = otr__; \
LOCAL_ScannerStack = ost__
#define export_buf(s) {}
#define unprotect_stack(s) \
TR = ov__, LOCAL_ScannerStack = ocur__
//LOCAL_ScannerStack = ov__, TR = ot__
#define export_buf(s) \
{}
#define unprotect_stack(s) TR = ov__, LOCAL_ScannerStack = ocur__
// LOCAL_ScannerStack = ov__, TR = ot__
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) {
@ -63,13 +66,13 @@ static void *Malloc(size_t sz USES_REGS) {
if (alloc_ovfl(sz))
return NULL;
void *o = LOCAL_ScannerStack;
LOCAL_ScannerStack = (void *) ((char *) LOCAL_ScannerStack + sz);
LOCAL_ScannerStack = (void *)((char *)LOCAL_ScannerStack + sz);
return o;
}
static size_t MaxTmp(USES_REGS1) {
if (LOCAL_ScannerStack) {
return (char *) LOCAL_TrailTop - (char *) LOCAL_ScannerStack;
return (char *)LOCAL_TrailTop - (char *)LOCAL_ScannerStack;
}
return 0;
}
@ -194,8 +197,7 @@ static Int SkipListCodes(unsigned char **bufp, Term *l, Term **tailp,
return length;
}
static unsigned char *latin2utf8(seq_tv_t *inp, size_t
*lengp) {
static unsigned char *latin2utf8(seq_tv_t *inp, size_t *lengp) {
unsigned char *b0 = inp->val.uc;
size_t sz = *lengp = strlen(inp->val.c);
sz *= 2;
@ -214,7 +216,6 @@ static unsigned char *latin2utf8(seq_tv_t *inp, size_t
return buf;
}
static unsigned char *wchar2utf8(seq_tv_t *inp, size_t *lengp) {
*lengp = wcslen(inp->val.w);
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 (IsVarTerm(inp->val.t)) {
LOCAL_Error_TYPE = INSTANTIATION_ERROR;
} else if (!IsAtomTerm(inp->val.t) &&
inp->type == YAP_STRING_ATOM) {
} else if (!IsAtomTerm(inp->val.t) && inp->type == YAP_STRING_ATOM) {
LOCAL_Error_TYPE = TYPE_ERROR_ATOM;
} else if (!IsStringTerm(inp->val.t) &&
inp->type == YAP_STRING_STRING) {
} else if (!IsStringTerm(inp->val.t) && inp->type == YAP_STRING_STRING) {
LOCAL_Error_TYPE = TYPE_ERROR_STRING;
} else if (!IsPairOrNilTerm(inp->val.t) && !IsStringTerm(inp->val.t) &&
inp->type ==
(YAP_STRING_ATOMS_CODES | YAP_STRING_STRING)) {
inp->type == (YAP_STRING_ATOMS_CODES | YAP_STRING_STRING)) {
LOCAL_Error_TYPE = TYPE_ERROR_LIST;
} else if (!IsNumTerm(inp->val.t) &&
(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) {
// 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);
if (IsWideAtom(at)) {
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) {
// this is a term, extract to a buffer, and representation is wide
//Yap_DebugPlWriteln(inp->val.t);
return UStringOfTerm(inp->val.t);
// Yap_DebugPlWriteln(inp->val.t);
return (unsigned char *)UStringOfTerm(inp->val.t);
}
if (((inp->type & (YAP_STRING_CODES | YAP_STRING_ATOMS)) ==
(YAP_STRING_CODES | YAP_STRING_ATOMS)) && IsPairOrNilTerm(inp->val.t)) {
//Yap_DebugPlWriteln(inp->val.t);
(YAP_STRING_CODES | YAP_STRING_ATOMS)) &&
IsPairOrNilTerm(inp->val.t)) {
// Yap_DebugPlWriteln(inp->val.t);
return inp->val.uc =
Yap_ListToBuffer(s0, inp->val.t, inp, &wide, lengp
PASS_REGS);
Yap_ListToBuffer(s0, inp->val.t, inp, &wide, lengp PASS_REGS);
// this is a term, extract to a sfer, and representation is wide
}
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,
lengp PASS_REGS);
// this is a term, extract to a sfer, and representation is wide
}
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,
lengp PASS_REGS);
// this is a term, extract to a buffer, and representation is wide
}
if (inp->type & YAP_STRING_INT && IsIntegerTerm(inp->val.t)) {
// ASCII, so both LATIN1 and UTF-8
//Yap_DebugPlWriteln(inp->val.t);
// Yap_DebugPlWriteln(inp->val.t);
char *s;
if (s0)
s = (char *) s0;
s = (char *)s0;
else
s = Malloc(0);
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);
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)) {
char *s;
//Yap_DebugPlWriteln(inp->val.t);
// Yap_DebugPlWriteln(inp->val.t);
if (s0)
s = (char *) s0;
s = (char *)s0;
else
s = Malloc(0);
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);
Malloc(*lengp);
return inp->val.uc = (unsigned char *) s;
return inp->val.uc = (unsigned char *)s;
}
#if USE_GMP
if (inp->type & YAP_STRING_BIG && IsBigIntTerm(inp->val.t)) {
//Yap_DebugPlWriteln(inp->val.t);
// Yap_DebugPlWriteln(inp->val.t);
char *s;
if (s0)
s = 0;
else
s = Malloc(0);
if (!Yap_mpz_to_string(Yap_BigIntOfTerm(inp->val.t), s, MaxTmp() - 1,
10)) {
if (!Yap_mpz_to_string(Yap_BigIntOfTerm(inp->val.t), s, MaxTmp() - 1, 10)) {
AUX_ERROR(inp->val.t, MaxTmp(PASS_REGS1), s, char);
}
*lengp = strlen(s);
Malloc(*lengp);
return inp->val.uc = (unsigned char *) s;
return inp->val.uc = (unsigned char *)s;
}
#endif
if (inp->type & YAP_STRING_TERM) {
//Yap_DebugPlWriteln(inp->val.t);
char *s = (char *) Yap_TermToString(inp->val.t, lengp, ENC_ISO_UTF8, 0);
return inp->val.uc = (unsigned char *) s;
// Yap_DebugPlWriteln(inp->val.t);
char *s = (char *)Yap_TermToString(inp->val.t, lengp, ENC_ISO_UTF8, 0);
return inp->val.uc = (unsigned char *)s;
}
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 (lengp)
*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) {
//printf("%S\n",inp->val.w);
// printf("%S\n",inp->val.w);
return wchar2utf8(inp, lengp);
}
return NULL;
@ -460,14 +457,15 @@ static Term write_strings(unsigned char *s0, seq_tv_t *out,
utf8proc_int32_t chr;
int off;
off = get_utf8(cp, -1, &chr);
if (off > 0) cp += off;
if (off > 0)
cp += off;
else {
//Yap_Error(TYPE_ERROR_TEXT, t, NULL);
// Yap_Error(TYPE_ERROR_TEXT, t, NULL);
cp++;
}
off = put_utf8(buf, chr);
if (off > 0) buf += off;
if (off > 0)
buf += off;
}
if (max >= min)
*buf++ = '\0';
@ -496,7 +494,7 @@ static Term write_atoms(void *s0, seq_tv_t *out, size_t leng USES_REGS) {
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;
wchar_t w[2];
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;
}
unsigned char *s = s0, *lim = s + strlen((char *) s);
unsigned char *s = s0, *lim = s + strlen((char *)s);
unsigned char *cp = s;
wchar_t w[2];
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;
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')
return out->val.a = Yap_LookupAtom((char *) s0);
return out->val.a = Yap_LookupAtom((char *)s0);
s = s0;
size_t l = strlen(s0);
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 min = 0, max = leng, room_end;
if (out->enc == ENC_ISO_UTF8) {
room_end = strlen((char *) s0) + 1;
room_end = strlen((char *)s0) + 1;
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) {
strcpy(out->val.c, (char *) s0);
strcpy(out->val.c, (char *)s0);
}
} 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 *cp = s;
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;
} 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;
wchar_t *buf0, *buf;
@ -682,11 +681,10 @@ static size_t write_length(const unsigned char *s0, seq_tv_t *out,
return leng;
}
static Term write_number(unsigned char *s, seq_tv_t *out, int size
USES_REGS) {
static Term write_number(unsigned char *s, seq_tv_t *out, int size USES_REGS) {
Term t;
mark_stack();
t = Yap_StringToNumberTerm((char *) s, &out->enc);
t = Yap_StringToNumberTerm((char *)s, &out->enc);
restore_stack();
return t;
}
@ -695,8 +693,7 @@ static Term string_to_term(void *s, seq_tv_t *out, size_t leng USES_REGS) {
Term o;
mark_stack();
o = out->val.t =
Yap_StringToTerm(s, strlen(s) + 1, &out->enc,
GLOBAL_MaxPriority, NULL);
Yap_StringToTerm(s, strlen(s) + 1, &out->enc, GLOBAL_MaxPriority, NULL);
restore_stack();
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)
return out->val.t != 0;
}
if (out->type &
(YAP_STRING_INT | YAP_STRING_FLOAT | YAP_STRING_BIG)) {
if (
(out->val.t = write_number(inp, out, leng PASS_REGS)) !=
0L) {
//Yap_DebugPlWriteln(out->val.t);
if (out->type & (YAP_STRING_INT | YAP_STRING_FLOAT | YAP_STRING_BIG)) {
if ((out->val.t = write_number(inp, out, leng PASS_REGS)) != 0L) {
// Yap_DebugPlWriteln(out->val.t);
return true;
}
@ -721,12 +715,11 @@ bool write_Text(unsigned char *inp, seq_tv_t *out, size_t leng USES_REGS) {
return false;
}
if (out->type & (YAP_STRING_ATOM)) {
if (
write_atom(inp, out, leng PASS_REGS) != NIL) {
if (write_atom(inp, out, leng PASS_REGS) != NIL) {
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);
//Yap_DebugPlWriteln(out->val.t);
// Yap_DebugPlWriteln(out->val.t);
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) {
case YAP_STRING_CHARS: {
size_t room = write_buffer(inp, out, leng PASS_REGS);
//printf("%s\n", out->val.c);
return ((Int) room > 0);
// printf("%s\n", out->val.c);
return ((Int)room > 0);
}
case YAP_STRING_WCHARS: {
size_t room = write_buffer(inp, out, leng PASS_REGS);
//printf("%S\n", out->val.w);
return ((Int) room > 0);
// printf("%S\n", out->val.w);
return ((Int)room > 0);
}
case YAP_STRING_STRING:
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;
case YAP_STRING_ATOMS:
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;
case YAP_STRING_CODES:
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;
case YAP_STRING_LENGTH:
out->val.l = write_length(inp, out, leng PASS_REGS);
//printf("s\n",out->val.l);
return out->val.l != (size_t) (-1);
// printf("s\n",out->val.l);
return out->val.l != (size_t)(-1);
case YAP_STRING_ATOM:
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;
case YAP_STRING_INT | YAP_STRING_FLOAT | YAP_STRING_BIG:
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;
default: {
}
default: {}
}
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
.w);
else fprintf(stderr,"s %s\n", inp->val.c);
*/
*/
buf = Yap_readText(inp, &leng PASS_REGS);
if (out->type & (YAP_STRING_NCHARS | YAP_STRING_TRUNC)) {
if (out->max < leng) {
@ -884,13 +876,14 @@ static unsigned char *concat(int n, unsigned char *sv[] USES_REGS) {
int i;
for (i = 0; i < n; i++) {
room += strlen((char *) sv[i]);
room += strlen((char *)sv[i]);
}
buf = Malloc(room + 1);
buf0 = (unsigned char *) buf;
buf0 = (unsigned char *)buf;
for (i = 0; i < n; i++) {
buf = strcpy(buf, (char *) sv[i]);
buf += strlen( sv[i] );
char *s = (char *)sv[i];
buf = strcpy(buf, s);
buf += strlen(s);
}
return buf0;
}
@ -983,8 +976,7 @@ bool Yap_Splice_Text(int n, size_t cuts[], seq_tv_t *inp,
return false;
}
l0 = l - l1;
if (cmp_Text(skip_utf8((const unsigned char *) buf, l0), buf1,
l1) !=
if (cmp_Text(skip_utf8((const unsigned char *)buf, l0), buf1, l1) !=
0) {
unprotect_stack(NULL);
return false;
@ -1095,11 +1087,10 @@ const char *Yap_PredIndicatorToUTF8String(PredEntry *ap) {
if (ap->ModuleOfPred == IDB_MODULE) {
if (ap->PredFlags & NumberDBPredFlag) {
Int key = ap->src.IndxId;
snprintf(s, smax - s, "%"
PRIdPTR, key);
snprintf(s, smax - s, "%" PRIdPTR, key);
return LOCAL_FileNameBuf;
} else if (ap->PredFlags & AtomDBPredFlag) {
at = (Atom) (ap->FunctorOfPred);
at = (Atom)(ap->FunctorOfPred);
if (!Yap_AtomToUTF8Text(at, s))
return NULL;
} else {
@ -1112,15 +1103,14 @@ const char *Yap_PredIndicatorToUTF8String(PredEntry *ap) {
if (arity) {
at = NameOfFunctor(ap->FunctorOfPred);
} else {
at = (Atom) (ap->FunctorOfPred);
at = (Atom)(ap->FunctorOfPred);
}
}
if (!Yap_AtomToUTF8Text(at, s)) {
return NULL;
}
s += strlen(s);
snprintf(s, smax - s, "/%"
PRIdPTR, arity);
snprintf(s, smax - s, "/%" PRIdPTR, arity);
return s0;
}