From 468fbdbde749d5fe221adebf115f9594067b8da4 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Wed, 24 Jun 1998 10:33:00 -0300 Subject: [PATCH] details --- lstate.h | 10 +++++++--- lstrlib.c | 8 ++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/lstate.h b/lstate.h index 303349f0..129dc43b 100644 --- a/lstate.h +++ b/lstate.h @@ -1,5 +1,5 @@ /* -** $Id: lstate.h,v 1.9 1998/06/02 20:37:04 roberto Exp roberto $ +** $Id: lstate.h,v 1.10 1998/06/19 16:14:09 roberto Exp roberto $ ** Global State ** See Copyright Notice in lua.h */ @@ -7,6 +7,8 @@ #ifndef lstate_h #define lstate_h +#include + #include "lobject.h" #include "lua.h" @@ -39,9 +41,11 @@ typedef struct { } stringtable; +enum Status {LOCK, HOLD, FREE, COLLECTED}; + struct ref { TObject o; - enum {LOCK, HOLD, FREE, COLLECTED} status; + enum Status status; }; @@ -49,7 +53,7 @@ struct lua_State { /* thread-specific state */ struct Stack stack; /* Lua stack */ struct C_Lua_Stack Cstack; /* C2lua struct */ - void *errorJmp; /* current error recover point */ + jmp_buf *errorJmp; /* current error recover point */ char *Mbuffer; /* global buffer */ char *Mbuffbase; /* current first position of Mbuffer */ int Mbuffsize; /* size of Mbuffer */ diff --git a/lstrlib.c b/lstrlib.c index 58fbd708..72188723 100644 --- a/lstrlib.c +++ b/lstrlib.c @@ -1,5 +1,5 @@ /* -** $Id: lstrlib.c,v 1.14 1998/05/31 22:20:45 roberto Exp roberto $ +** $Id: lstrlib.c,v 1.15 1998/06/19 16:14:09 roberto Exp roberto $ ** Standard library for strings and pattern-matching ** See Copyright Notice in lua.h */ @@ -302,19 +302,19 @@ static char *match (char *s, char *p, struct Capture *cap) switch (*ep) { case '*': { /* repetition */ char *res; - if (s1 && s1>s && (res = match(s1, p, cap))) + if (s1 && s1>s && ((res=match(s1, p, cap)) != NULL)) return res; p=ep+1; goto init; /* else return match(s, ep+1, cap); */ } case '?': { /* optional */ char *res; - if (s1 && (res = match(s1, ep+1, cap))) + if (s1 && ((res=match(s1, ep+1, cap)) != NULL)) return res; p=ep+1; goto init; /* else return match(s, ep+1, cap); */ } case '-': { /* repetition */ char *res; - if ((res = match(s, ep+1, cap)) != 0) + if ((res = match(s, ep+1, cap)) != NULL) return res; else if (s1 && s1>s) { s = s1;