From 9aff171f3bf0125314a29a5ca952470b2d83708e Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Tue, 11 Dec 2001 20:48:44 -0200 Subject: new type `boolean' --- lobject.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'lobject.h') diff --git a/lobject.h b/lobject.h index bf07e3db..9d197af2 100644 --- a/lobject.h +++ b/lobject.h @@ -37,7 +37,8 @@ typedef union { union Closure *cl; struct Table *h; struct lua_TObject *v; - lua_Number n; /* LUA_TNUMBER */ + lua_Number n; + int b; } Value; @@ -55,7 +56,10 @@ typedef struct lua_TObject { #define clvalue(o) ((o)->value.cl) #define hvalue(o) ((o)->value.h) #define vvalue(o) ((o)->value.v) +#define bvalue(o) ((o)->value.b) +#define l_isfalse(o) (ttype(o) == LUA_TNIL || \ + (ttype(o) == LUA_TBOOLEAN && bvalue(o) == 0)) /* Macros to set values */ #define setnvalue(obj,x) \ @@ -63,6 +67,9 @@ typedef struct lua_TObject { #define chgnvalue(obj,x) ((obj)->value.n=(x)) +#define setbvalue(obj,x) \ + { TObject *_o=(obj); _o->tt=LUA_TBOOLEAN; _o->value.b=(x); } + #define setsvalue(obj,x) \ { TObject *_o=(obj); _o->tt=LUA_TSTRING; _o->value.ts=(x); } -- cgit v1.2.3-55-g6feb