fix hassle with write(-(1)). #UN 135.
This commit is contained in:
parent
919fa40464
commit
06242879c0
24
C/write.c
24
C/write.c
@ -761,6 +761,18 @@ write_list(Term t, int direction, int depth, struct write_globs *wglb, struct re
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* never write '+' and '-' as infix
|
||||||
|
operators */
|
||||||
|
static int op_can_be_read_as_number(char *s, Term t)
|
||||||
|
{
|
||||||
|
if (s[0] != '+' && s[0] != '-')
|
||||||
|
return FALSE;
|
||||||
|
if (s[1])
|
||||||
|
return FALSE;
|
||||||
|
t = ArgOfTerm(1,t);
|
||||||
|
return IsNumTerm(t);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
writeTerm(Term t, int p, int depth, int rinfixarg, struct write_globs *wglb, struct rewind_term *rwt)
|
writeTerm(Term t, int p, int depth, int rinfixarg, struct write_globs *wglb, struct rewind_term *rwt)
|
||||||
/* term to write */
|
/* term to write */
|
||||||
@ -897,15 +909,9 @@ writeTerm(Term t, int p, int depth, int rinfixarg, struct write_globs *wglb, str
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!wglb->Ignore_ops &&
|
if (!wglb->Ignore_ops &&
|
||||||
Arity == 1 && Yap_IsPrefixOp(atom, &op, &rp)
|
Arity == 1 &&
|
||||||
#ifdef DO_NOT_WRITE_PLUS_AND_MINUS_AS_PREFIX
|
Yap_IsPrefixOp(atom, &op, &rp) &&
|
||||||
&&
|
!op_can_be_read_as_number(RepAtom(atom)->StrOfAE, t)
|
||||||
/* never write '+' and '-' as infix
|
|
||||||
operators */
|
|
||||||
( (RepAtom(atom)->StrOfAE[0] != '+' &&
|
|
||||||
RepAtom(atom)->StrOfAE[0] != '-') ||
|
|
||||||
RepAtom(atom)->StrOfAE[1] )
|
|
||||||
#endif /* DO_NOT_WRITE_PLUS_AND_MINUS_AS_PREFIX */
|
|
||||||
) {
|
) {
|
||||||
Term tright = ArgOfTerm(1, t);
|
Term tright = ArgOfTerm(1, t);
|
||||||
int bracket_right =
|
int bracket_right =
|
||||||
|
Reference in New Issue
Block a user