mirror of https://github.com/rusefi/lua.git
luaL_findstring -> luaL_checkoption
This commit is contained in:
parent
38da9d568a
commit
e8a7ecb982
13
lauxlib.c
13
lauxlib.c
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
** $Id: lauxlib.c,v 1.132 2005/05/16 21:19:00 roberto Exp roberto $
|
||||
** $Id: lauxlib.c,v 1.133 2005/05/17 19:49:15 roberto Exp roberto $
|
||||
** Auxiliary functions for building Lua libraries
|
||||
** See Copyright Notice in lua.h
|
||||
*/
|
||||
|
@ -95,12 +95,15 @@ LUALIB_API int luaL_error (lua_State *L, const char *fmt, ...) {
|
|||
/* }====================================================== */
|
||||
|
||||
|
||||
LUALIB_API int luaL_findstring (const char *name, const char *const list[]) {
|
||||
LUALIB_API int luaL_checkoption (lua_State *L, int narg, const char *def,
|
||||
const char *const lst[]) {
|
||||
const char *name = (def) ? luaL_optstring(L, narg, def) :
|
||||
luaL_checkstring(L, narg);
|
||||
int i;
|
||||
for (i=0; list[i]; i++)
|
||||
if (strcmp(list[i], name) == 0)
|
||||
for (i=0; lst[i]; i++)
|
||||
if (strcmp(lst[i], name) == 0)
|
||||
return i;
|
||||
return -1; /* name not found */
|
||||
return luaL_error(L, "invalid option " LUA_QS, name);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
** $Id: lauxlib.h,v 1.75 2005/03/29 16:20:48 roberto Exp roberto $
|
||||
** $Id: lauxlib.h,v 1.76 2005/05/20 19:09:05 roberto Exp roberto $
|
||||
** Auxiliary functions for building Lua libraries
|
||||
** See Copyright Notice in lua.h
|
||||
*/
|
||||
|
@ -59,7 +59,8 @@ LUALIB_API void *(luaL_checkudata) (lua_State *L, int ud, const char *tname);
|
|||
LUALIB_API void (luaL_where) (lua_State *L, int lvl);
|
||||
LUALIB_API int (luaL_error) (lua_State *L, const char *fmt, ...);
|
||||
|
||||
LUALIB_API int (luaL_findstring) (const char *st, const char *const lst[]);
|
||||
LUALIB_API int (luaL_checkoption) (lua_State *L, int narg, const char *def,
|
||||
const char *const lst[]);
|
||||
|
||||
LUALIB_API const char *(luaL_searchpath) (lua_State *L, const char *name,
|
||||
const char *path);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
** $Id: lbaselib.c,v 1.176 2005/05/17 19:49:15 roberto Exp roberto $
|
||||
** $Id: lbaselib.c,v 1.177 2005/05/20 15:53:42 roberto Exp roberto $
|
||||
** Basic library
|
||||
** See Copyright Notice in lua.h
|
||||
*/
|
||||
|
@ -192,9 +192,8 @@ static int luaB_collectgarbage (lua_State *L) {
|
|||
"count", "step", "setpause", "setstepmul", NULL};
|
||||
static const int optsnum[] = {LUA_GCSTOP, LUA_GCRESTART, LUA_GCCOLLECT,
|
||||
LUA_GCCOUNT, LUA_GCSTEP, LUA_GCSETPAUSE, LUA_GCSETSTEPMUL};
|
||||
int o = luaL_findstring(luaL_optstring(L, 1, "collect"), opts);
|
||||
int o = luaL_checkoption(L, 1, "collect", opts);
|
||||
int ex = luaL_optinteger(L, 2, 0);
|
||||
luaL_argcheck(L, o >= 0, 1, "invalid option");
|
||||
lua_pushinteger(L, lua_gc(L, optsnum[o], ex));
|
||||
return 1;
|
||||
}
|
||||
|
|
8
liolib.c
8
liolib.c
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
** $Id: liolib.c,v 2.59 2005/03/18 18:01:14 roberto Exp roberto $
|
||||
** $Id: liolib.c,v 2.60 2005/05/16 21:19:00 roberto Exp roberto $
|
||||
** Standard I/O (and system) library
|
||||
** See Copyright Notice in lua.h
|
||||
*/
|
||||
|
@ -400,9 +400,8 @@ static int f_seek (lua_State *L) {
|
|||
static const int mode[] = {SEEK_SET, SEEK_CUR, SEEK_END};
|
||||
static const char *const modenames[] = {"set", "cur", "end", NULL};
|
||||
FILE *f = tofile(L);
|
||||
int op = luaL_findstring(luaL_optstring(L, 2, "cur"), modenames);
|
||||
int op = luaL_checkoption(L, 2, "cur", modenames);
|
||||
lua_Integer offset = luaL_optinteger(L, 3, 0);
|
||||
luaL_argcheck(L, op != -1, 2, "invalid mode");
|
||||
op = fseek(f, offset, mode[op]);
|
||||
if (op)
|
||||
return pushresult(L, 0, NULL); /* error */
|
||||
|
@ -417,8 +416,7 @@ static int f_setvbuf (lua_State *L) {
|
|||
static const int mode[] = {_IONBF, _IOFBF, _IOLBF};
|
||||
static const char *const modenames[] = {"no", "full", "line", NULL};
|
||||
FILE *f = tofile(L);
|
||||
int op = luaL_findstring(luaL_checkstring(L, 2), modenames);
|
||||
luaL_argcheck(L, op != -1, 2, "invalid mode");
|
||||
int op = luaL_checkoption(L, 2, NULL, modenames);
|
||||
return pushresult(L, setvbuf(f, NULL, mode[op], 0) == 0, NULL);
|
||||
}
|
||||
|
||||
|
|
5
loslib.c
5
loslib.c
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
** $Id: loslib.c,v 1.8 2005/05/16 21:19:00 roberto Exp roberto $
|
||||
** $Id: loslib.c,v 1.9 2005/05/17 19:49:15 roberto Exp roberto $
|
||||
** Standard Operating System library
|
||||
** See Copyright Notice in lua.h
|
||||
*/
|
||||
|
@ -197,9 +197,8 @@ static int io_setloc (lua_State *L) {
|
|||
static const char *const catnames[] = {"all", "collate", "ctype", "monetary",
|
||||
"numeric", "time", NULL};
|
||||
const char *l = lua_tostring(L, 1);
|
||||
int op = luaL_findstring(luaL_optstring(L, 2, "all"), catnames);
|
||||
int op = luaL_checkoption(L, 2, "all", catnames);
|
||||
luaL_argcheck(L, l || lua_isnoneornil(L, 1), 1, "string expected");
|
||||
luaL_argcheck(L, op != -1, 2, "invalid option");
|
||||
lua_pushstring(L, setlocale(cat[op], l));
|
||||
return 1;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue