#include "str.h"
#include "exec.h"
#include "internal.h"
+#include <stdbool.h>
#include <string.h>
static lvar_t *lvarp;
static Tobj getval (Tobj, int);
static int getvar (Tobj, int, tnk_t *);
static void setvar (tnk_t, Tobj);
-static int boolop (Tobj);
+static bool boolop (Tobj);
static int orderop (Tobj, int, Tobj);
static Tobj arithop (Num_t *, int, Num_t *);
static void err (int, int, Tobj, int);
err (ERRNORHS, ERR4, co, i1);
switch (ctype) {
case C_OR:
- if (boolop (v1o) == TRUE)
+ if (boolop (v1o))
return Ttrue;
if ((v1o = eeval (co, TCgetnext (co, i1))) == NULL)
err (ERRNORHS, ERR4, co, TCgetnext (co, i1));
- return (boolop (v1o) == TRUE) ? Ttrue: Tfalse;
+ return boolop(v1o) ? Ttrue: Tfalse;
case C_AND:
if (boolop (v1o) == FALSE)
return Tfalse;
if ((v1o = eeval (co, TCgetnext (co, i1))) == NULL)
err (ERRNORHS, ERR4, co, TCgetnext (co, i1));
- return (boolop (v1o) == FALSE) ? Tfalse: Ttrue;
+ return !boolop(v1o) ? Tfalse: Ttrue;
case C_NOT:
- return (boolop (v1o) == TRUE) ? Tfalse: Ttrue;
+ return !boolop(v1o) ? Tfalse: Ttrue;
}
/* NOT REACHED */
return Tfalse;
i1 = TCgetfp (co, ci);
if (!(v1o = eeval (co, i1)))
err (ERRNORHS, ERR5, co, i1);
- if (boolop (v1o) == TRUE) {
+ if (boolop(v1o)) {
ci = TCgetnext (co, i1);
goto tailrec;
} else if ((ci = TCgetnext (co, TCgetnext (co, i1))) != C_NULL)
for (;;) {
if (!(v1o = eeval ((Tobj) c1o, ei)))
err (ERRNORHS, ERR5, c1o, ei);
- if (boolop (v1o) == FALSE)
+ if (!boolop(v1o))
break;
if (setjmp (*pljbufp1)) {
if (pljtype == PLJ_CONTINUE)
if (!eisnop2) {
if (!(v1o = eeval ((Tobj) c1o, ei2)))
err (ERRNORHS, ERR5, c1o, ei2);
- if (boolop (v1o) == FALSE)
+ if (!boolop(v1o))
break;
}
if (setjmp (*pljbufp1) != 0) {
}
}
-static int boolop (Tobj vo) {
+static bool boolop (Tobj vo) {
long i;
double d;
if (!vo)
- return FALSE;
+ return false;
switch (Tgettype (vo)) {
case T_INTEGER:
i = Tgetinteger (vo);
- return (i == 0) ? FALSE : TRUE;
+ return i != 0;
case T_REAL:
d = Tgetreal (vo);
- return (d == 0.0) ? FALSE : TRUE;
+ return !(d == 0.0);
case T_TABLE:
if (vo == null)
- return FALSE;
- return TRUE;
+ return false;
+ return true;
default:
- return TRUE;
+ return true;
}
}