lua

A copy of the Lua development repository
Log | Files | Refs | README

commit e869d17eb1309bfd81802a21b546a76e7ed6c38a
parent 9a0221ef5887b25bb5e8cc734cedd7418250c8cd
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date:   Mon, 29 Jun 1998 15:23:45 -0300

functions should return explicit "nil"s.

Diffstat:
Mlbuiltin.c | 12++++++++----
Mlstrlib.c | 4+++-
2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/lbuiltin.c b/lbuiltin.c @@ -1,5 +1,5 @@ /* -** $Id: lbuiltin.c,v 1.30 1998/06/19 16:14:09 roberto Exp roberto $ +** $Id: lbuiltin.c,v 1.31 1998/06/19 18:47:06 roberto Exp roberto $ ** Built-in functions ** See Copyright Notice in lua.h */ @@ -54,6 +54,7 @@ static void nextvar (void) pushstring(g); luaA_pushobject(&g->u.s.globalval); } + else lua_pushnil(); } @@ -90,6 +91,7 @@ static void next (void) luaA_pushobject(&n->ref); luaA_pushobject(&n->val); } + else lua_pushnil(); } @@ -214,8 +216,8 @@ static void tonumber (void) luaL_arg_check(0 <= base && base <= 36, 2, "base out of range"); n = strtol(s, &s, base); while (isspace(*s)) s++; /* skip trailing spaces */ - if (*s) return; /* invalid format: return nil */ - lua_pushnumber(n); + if (*s) lua_pushnil(); /* invalid format: return nil */ + else lua_pushnumber(n); } } @@ -303,8 +305,10 @@ static void luaI_call (void) lua_seterrormethod(); } if (status != 0) { /* error in call? */ - if (strchr(options, 'x')) + if (strchr(options, 'x')) { + lua_pushnil(); return; /* return nil to signal the error */ + } else lua_error(NULL); } diff --git a/lstrlib.c b/lstrlib.c @@ -1,5 +1,5 @@ /* -** $Id: lstrlib.c,v 1.15 1998/06/19 16:14:09 roberto Exp roberto $ +** $Id: lstrlib.c,v 1.16 1998/06/24 13:33:00 roberto Exp roberto $ ** Standard library for strings and pattern-matching ** See Copyright Notice in lua.h */ @@ -346,6 +346,7 @@ static void str_find (void) if (s2) { lua_pushnumber(s2-s+1); lua_pushnumber(s2-s+strlen(p)); + return; } } else { @@ -363,6 +364,7 @@ static void str_find (void) } } while (s1++<cap.src_end && !anchor); } + lua_pushnil(); /* if arives here, it didn't find */ }