mirror of
https://github.com/lua/lua.git
synced 2025-01-28 06:03:00 +08:00
when possible, library functions accept nil as none
This commit is contained in:
parent
405e3a4597
commit
d1f220217b
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
** $Id: lauxlib.c,v 1.61 2002/03/07 18:15:10 roberto Exp roberto $
|
** $Id: lauxlib.c,v 1.62 2002/03/20 12:54:08 roberto Exp roberto $
|
||||||
** Auxiliary functions for building Lua libraries
|
** Auxiliary functions for building Lua libraries
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
@ -93,7 +93,7 @@ LUALIB_API const char *luaL_check_lstr (lua_State *L, int narg, size_t *len) {
|
|||||||
|
|
||||||
|
|
||||||
LUALIB_API const char *luaL_opt_lstr (lua_State *L, int narg, const char *def, size_t *len) {
|
LUALIB_API const char *luaL_opt_lstr (lua_State *L, int narg, const char *def, size_t *len) {
|
||||||
if (lua_isnone(L, narg)) {
|
if (lua_isnoneornil(L, narg)) {
|
||||||
if (len)
|
if (len)
|
||||||
*len = (def ? strlen(def) : 0);
|
*len = (def ? strlen(def) : 0);
|
||||||
return def;
|
return def;
|
||||||
@ -111,7 +111,7 @@ LUALIB_API lua_Number luaL_check_number (lua_State *L, int narg) {
|
|||||||
|
|
||||||
|
|
||||||
LUALIB_API lua_Number luaL_opt_number (lua_State *L, int narg, lua_Number def) {
|
LUALIB_API lua_Number luaL_opt_number (lua_State *L, int narg, lua_Number def) {
|
||||||
if (lua_isnone(L, narg)) return def;
|
if (lua_isnoneornil(L, narg)) return def;
|
||||||
else return luaL_check_number(L, narg);
|
else return luaL_check_number(L, narg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
** $Id: lbaselib.c,v 1.60 2002/03/20 12:54:08 roberto Exp roberto $
|
** $Id: lbaselib.c,v 1.61 2002/03/27 12:49:53 roberto Exp roberto $
|
||||||
** Basic library
|
** Basic library
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
@ -620,7 +620,7 @@ static void set2 (lua_State *L, int i, int j) {
|
|||||||
|
|
||||||
static int sort_comp (lua_State *L, int a, int b) {
|
static int sort_comp (lua_State *L, int a, int b) {
|
||||||
/* WARNING: the caller (auxsort) must ensure stack space */
|
/* WARNING: the caller (auxsort) must ensure stack space */
|
||||||
if (!lua_isnil(L, 2)) { /* function? */
|
if (!lua_isnoneornil(L, 2)) { /* function? */
|
||||||
int res;
|
int res;
|
||||||
lua_pushvalue(L, 2);
|
lua_pushvalue(L, 2);
|
||||||
lua_pushvalue(L, a-1); /* -1 to compensate function */
|
lua_pushvalue(L, a-1); /* -1 to compensate function */
|
||||||
|
4
ldblib.c
4
ldblib.c
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
** $Id: ldblib.c,v 1.43 2002/02/07 17:24:32 roberto Exp roberto $
|
** $Id: ldblib.c,v 1.44 2002/03/20 12:54:08 roberto Exp roberto $
|
||||||
** Interface from Lua to its debug API
|
** Interface from Lua to its debug API
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
@ -141,7 +141,7 @@ static void linef (lua_State *L, lua_Debug *ar) {
|
|||||||
static void sethook (lua_State *L, const char *key, lua_Hook hook,
|
static void sethook (lua_State *L, const char *key, lua_Hook hook,
|
||||||
lua_Hook (*sethookf)(lua_State * L, lua_Hook h)) {
|
lua_Hook (*sethookf)(lua_State * L, lua_Hook h)) {
|
||||||
lua_settop(L, 1);
|
lua_settop(L, 1);
|
||||||
if (lua_isnil(L, 1))
|
if (lua_isnoneornil(L, 1))
|
||||||
(*sethookf)(L, NULL);
|
(*sethookf)(L, NULL);
|
||||||
else if (lua_isfunction(L, 1))
|
else if (lua_isfunction(L, 1))
|
||||||
(*sethookf)(L, hook);
|
(*sethookf)(L, hook);
|
||||||
|
9
liolib.c
9
liolib.c
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
** $Id: liolib.c,v 1.131 2002/02/08 22:39:56 roberto Exp roberto $
|
** $Id: liolib.c,v 1.132 2002/03/20 12:54:08 roberto Exp roberto $
|
||||||
** Standard I/O (and system) library
|
** Standard I/O (and system) library
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
@ -406,7 +406,7 @@ static int io_seek (lua_State *L) {
|
|||||||
|
|
||||||
|
|
||||||
static int io_flush (lua_State *L) {
|
static int io_flush (lua_State *L) {
|
||||||
FILE *f = (lua_isnone(L, 1)) ? (FILE *)(NULL) :
|
FILE *f = (lua_isnoneornil(L, 1)) ? (FILE *)(NULL) :
|
||||||
(FILE *)(luaL_check_userdata(L, 1, FILEHANDLE));
|
(FILE *)(luaL_check_userdata(L, 1, FILEHANDLE));
|
||||||
return pushresult(L, fflush(f) == 0);
|
return pushresult(L, fflush(f) == 0);
|
||||||
}
|
}
|
||||||
@ -541,7 +541,7 @@ static int io_date (lua_State *L) {
|
|||||||
|
|
||||||
|
|
||||||
static int io_time (lua_State *L) {
|
static int io_time (lua_State *L) {
|
||||||
if (lua_isnone(L, 1)) /* called without args? */
|
if (lua_isnoneornil(L, 1)) /* called without args? */
|
||||||
lua_pushnumber(L, time(NULL)); /* return current time */
|
lua_pushnumber(L, time(NULL)); /* return current time */
|
||||||
else {
|
else {
|
||||||
time_t t;
|
time_t t;
|
||||||
@ -581,8 +581,7 @@ static int io_setloc (lua_State *L) {
|
|||||||
"numeric", "time", NULL};
|
"numeric", "time", NULL};
|
||||||
const char *l = lua_tostring(L, 1);
|
const char *l = lua_tostring(L, 1);
|
||||||
int op = luaL_findstring(luaL_opt_string(L, 2, "all"), catnames);
|
int op = luaL_findstring(luaL_opt_string(L, 2, "all"), catnames);
|
||||||
luaL_arg_check(L, l || lua_isnil(L, 1) || lua_isnone(L, 1), 1,
|
luaL_arg_check(L, l || lua_isnoneornil(L, 1), 1, "string expected");
|
||||||
"string expected");
|
|
||||||
luaL_arg_check(L, op != -1, 2, "invalid option");
|
luaL_arg_check(L, op != -1, 2, "invalid option");
|
||||||
lua_pushstring(L, setlocale(cat[op], l));
|
lua_pushstring(L, setlocale(cat[op], l));
|
||||||
return 1;
|
return 1;
|
||||||
|
3
lua.h
3
lua.h
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
** $Id: lua.h,v 1.123 2002/03/18 18:18:35 roberto Exp roberto $
|
** $Id: lua.h,v 1.124 2002/03/27 12:49:53 roberto Exp roberto $
|
||||||
** Lua - An Extensible Extension Language
|
** Lua - An Extensible Extension Language
|
||||||
** TeCGraf: Grupo de Tecnologia em Computacao Grafica, PUC-Rio, Brazil
|
** TeCGraf: Grupo de Tecnologia em Computacao Grafica, PUC-Rio, Brazil
|
||||||
** e-mail: info@lua.org
|
** e-mail: info@lua.org
|
||||||
@ -229,6 +229,7 @@ LUA_API void lua_newuserdatabox (lua_State *L, void *u);
|
|||||||
#define lua_isnil(L,n) (lua_type(L,n) == LUA_TNIL)
|
#define lua_isnil(L,n) (lua_type(L,n) == LUA_TNIL)
|
||||||
#define lua_isboolean(L,n) (lua_type(L,n) == LUA_TBOOLEAN)
|
#define lua_isboolean(L,n) (lua_type(L,n) == LUA_TBOOLEAN)
|
||||||
#define lua_isnone(L,n) (lua_type(L,n) == LUA_TNONE)
|
#define lua_isnone(L,n) (lua_type(L,n) == LUA_TNONE)
|
||||||
|
#define lua_isnoneornil(L, n) (lua_type(L,n) <= 0)
|
||||||
|
|
||||||
#define lua_pushliteral(L, s) lua_pushlstring(L, "" s, \
|
#define lua_pushliteral(L, s) lua_pushlstring(L, "" s, \
|
||||||
(sizeof(s)/sizeof(char))-1)
|
(sizeof(s)/sizeof(char))-1)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user