summaryrefslogtreecommitdiff
path: root/lib/lua/include/lauxlib.h
diff options
context:
space:
mode:
authorpixel <pixel>2007-07-27 10:05:52 +0000
committerpixel <pixel>2007-07-27 10:05:52 +0000
commit6c1ab7da376ae7f78a075dda5c5be0dabce20931 (patch)
treebc44e447c450c96140cf6b63c39a37afa8ba61fb /lib/lua/include/lauxlib.h
parenta68385b1043a2041390f65ce5cf9ed434af5e95d (diff)
Upgrading to Lua-5.1.2
Diffstat (limited to 'lib/lua/include/lauxlib.h')
-rw-r--r--lib/lua/include/lauxlib.h170
1 files changed, 101 insertions, 69 deletions
diff --git a/lib/lua/include/lauxlib.h b/lib/lua/include/lauxlib.h
index 18ba835..263ccd5 100644
--- a/lib/lua/include/lauxlib.h
+++ b/lib/lua/include/lauxlib.h
@@ -1,5 +1,5 @@
/*
-** $Id: lauxlib.h,v 1.5 2004-11-27 21:46:06 pixel Exp $
+** $Id: lauxlib.h,v 1.6 2007-07-27 10:05:52 pixel Exp $
** Auxiliary functions for building Lua libraries
** See Copyright Notice in lua.h
*/
@@ -18,50 +18,79 @@
extern "C" {
#endif
-#ifndef LUALIB_API
-#define LUALIB_API LUA_API
+#if defined(LUA_COMPAT_GETN)
+LUALIB_API int (luaL_getn) (lua_State *L, int t);
+LUALIB_API void (luaL_setn) (lua_State *L, int t, int n);
+#else
+#define luaL_getn(L,i) ((int)lua_objlen(L, i))
+#define luaL_setn(L,i,j) ((void)0) /* no op! */
#endif
-typedef struct luaL_reg {
+#if defined(LUA_COMPAT_OPENLIB)
+#define luaI_openlib luaL_openlib
+#endif
+
+
+/* extra error code for `luaL_load' */
+#define LUA_ERRFILE (LUA_ERRERR+1)
+
+
+typedef struct luaL_Reg {
const char *name;
lua_CFunction func;
-} luaL_reg;
+} luaL_Reg;
+
-LUALIB_API void luaL_openlib (lua_State *L, const char *libname,
- const luaL_reg *l, int nup);
-LUALIB_API int luaL_getmetafield (lua_State *L, int obj, const char *e);
-LUALIB_API int luaL_callmeta (lua_State *L, int obj, const char *e);
-LUALIB_API int luaL_typerror (lua_State *L, int narg, const char *tname);
-LUALIB_API int luaL_argerror (lua_State *L, int numarg, const char *extramsg);
-LUALIB_API const char *luaL_checklstring (lua_State *L, int numArg, size_t *l);
-LUALIB_API const char *luaL_optlstring (lua_State *L, int numArg,
- const char *def, size_t *l);
-LUALIB_API lua_Number luaL_checknumber (lua_State *L, int numArg);
-LUALIB_API lua_Number luaL_optnumber (lua_State *L, int nArg, lua_Number def);
+LUALIB_API void (luaI_openlib) (lua_State *L, const char *libname,
+ const luaL_Reg *l, int nup);
+LUALIB_API void (luaL_register) (lua_State *L, const char *libname,
+ const luaL_Reg *l);
+LUALIB_API int (luaL_getmetafield) (lua_State *L, int obj, const char *e);
+LUALIB_API int (luaL_callmeta) (lua_State *L, int obj, const char *e);
+LUALIB_API int (luaL_typerror) (lua_State *L, int narg, const char *tname);
+LUALIB_API int (luaL_argerror) (lua_State *L, int numarg, const char *extramsg);
+LUALIB_API const char *(luaL_checklstring) (lua_State *L, int numArg,
+ size_t *l);
+LUALIB_API const char *(luaL_optlstring) (lua_State *L, int numArg,
+ const char *def, size_t *l);
+LUALIB_API lua_Number (luaL_checknumber) (lua_State *L, int numArg);
+LUALIB_API lua_Number (luaL_optnumber) (lua_State *L, int nArg, lua_Number def);
-LUALIB_API void luaL_checkstack (lua_State *L, int sz, const char *msg);
-LUALIB_API void luaL_checktype (lua_State *L, int narg, int t);
-LUALIB_API void luaL_checkany (lua_State *L, int narg);
+LUALIB_API lua_Integer (luaL_checkinteger) (lua_State *L, int numArg);
+LUALIB_API lua_Integer (luaL_optinteger) (lua_State *L, int nArg,
+ lua_Integer def);
-LUALIB_API int luaL_newmetatable (lua_State *L, const char *tname);
-LUALIB_API void luaL_getmetatable (lua_State *L, const char *tname);
-LUALIB_API void *luaL_checkudata (lua_State *L, int ud, const char *tname);
+LUALIB_API void (luaL_checkstack) (lua_State *L, int sz, const char *msg);
+LUALIB_API void (luaL_checktype) (lua_State *L, int narg, int t);
+LUALIB_API void (luaL_checkany) (lua_State *L, int narg);
-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_newmetatable) (lua_State *L, const char *tname);
+LUALIB_API void *(luaL_checkudata) (lua_State *L, int ud, const char *tname);
-LUALIB_API int luaL_findstring (const char *st, const char *const lst[]);
+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_ref (lua_State *L, int t);
-LUALIB_API void luaL_unref (lua_State *L, int t, int ref);
+LUALIB_API int (luaL_checkoption) (lua_State *L, int narg, const char *def,
+ const char *const lst[]);
-LUALIB_API int luaL_getn (lua_State *L, int t);
-LUALIB_API void luaL_setn (lua_State *L, int t, int n);
+LUALIB_API int (luaL_ref) (lua_State *L, int t);
+LUALIB_API void (luaL_unref) (lua_State *L, int t, int ref);
+
+LUALIB_API int (luaL_loadfile) (lua_State *L, const char *filename);
+LUALIB_API int (luaL_loadbuffer) (lua_State *L, const char *buff, size_t sz,
+ const char *name);
+LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s);
+
+LUALIB_API lua_State *(luaL_newstate) (void);
+
+
+LUALIB_API const char *(luaL_gsub) (lua_State *L, const char *s, const char *p,
+ const char *r);
+
+LUALIB_API const char *(luaL_findtable) (lua_State *L, int idx,
+ const char *fname, int szhint);
-LUALIB_API int luaL_loadfile (lua_State *L, const char *filename);
-LUALIB_API int luaL_loadbuffer (lua_State *L, const char *buff, size_t sz,
- const char *name);
@@ -71,15 +100,26 @@ LUALIB_API int luaL_loadbuffer (lua_State *L, const char *buff, size_t sz,
** ===============================================================
*/
-#define luaL_argcheck(L, cond,numarg,extramsg) if (!(cond)) \
- luaL_argerror(L, numarg,extramsg)
+#define luaL_argcheck(L, cond,numarg,extramsg) \
+ ((void)((cond) || luaL_argerror(L, (numarg), (extramsg))))
#define luaL_checkstring(L,n) (luaL_checklstring(L, (n), NULL))
#define luaL_optstring(L,n,d) (luaL_optlstring(L, (n), (d), NULL))
-#define luaL_checkint(L,n) ((int)luaL_checknumber(L, n))
-#define luaL_checklong(L,n) ((long)luaL_checknumber(L, n))
-#define luaL_optint(L,n,d) ((int)luaL_optnumber(L, n,(lua_Number)(d)))
-#define luaL_optlong(L,n,d) ((long)luaL_optnumber(L, n,(lua_Number)(d)))
+#define luaL_checkint(L,n) ((int)luaL_checkinteger(L, (n)))
+#define luaL_optint(L,n,d) ((int)luaL_optinteger(L, (n), (d)))
+#define luaL_checklong(L,n) ((long)luaL_checkinteger(L, (n)))
+#define luaL_optlong(L,n,d) ((long)luaL_optinteger(L, (n), (d)))
+
+#define luaL_typename(L,i) lua_typename(L, lua_type(L,(i)))
+#define luaL_dofile(L, fn) \
+ (luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0))
+
+#define luaL_dostring(L, s) \
+ (luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0))
+
+#define luaL_getmetatable(L,n) (lua_getfield(L, LUA_REGISTRYINDEX, (n)))
+
+#define luaL_opt(L,f,n,d) (lua_isnoneornil(L,(n)) ? (d) : f(L,(n)))
/*
** {======================================================
@@ -88,10 +128,6 @@ LUALIB_API int luaL_loadbuffer (lua_State *L, const char *buff, size_t sz,
*/
-#ifndef LUAL_BUFFERSIZE
-#define LUAL_BUFFERSIZE BUFSIZ
-#endif
-
typedef struct luaL_Buffer {
char *p; /* current position in buffer */
@@ -100,45 +136,41 @@ typedef struct luaL_Buffer {
char buffer[LUAL_BUFFERSIZE];
} luaL_Buffer;
-#define luaL_putchar(B,c) \
+#define luaL_addchar(B,c) \
((void)((B)->p < ((B)->buffer+LUAL_BUFFERSIZE) || luaL_prepbuffer(B)), \
(*(B)->p++ = (char)(c)))
+/* compatibility only */
+#define luaL_putchar(B,c) luaL_addchar(B,c)
+
#define luaL_addsize(B,n) ((B)->p += (n))
-LUALIB_API void luaL_buffinit (lua_State *L, luaL_Buffer *B);
-LUALIB_API char *luaL_prepbuffer (luaL_Buffer *B);
-LUALIB_API void luaL_addlstring (luaL_Buffer *B, const char *s, size_t l);
-LUALIB_API void luaL_addstring (luaL_Buffer *B, const char *s);
-LUALIB_API void luaL_addvalue (luaL_Buffer *B);
-LUALIB_API void luaL_pushresult (luaL_Buffer *B);
+LUALIB_API void (luaL_buffinit) (lua_State *L, luaL_Buffer *B);
+LUALIB_API char *(luaL_prepbuffer) (luaL_Buffer *B);
+LUALIB_API void (luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l);
+LUALIB_API void (luaL_addstring) (luaL_Buffer *B, const char *s);
+LUALIB_API void (luaL_addvalue) (luaL_Buffer *B);
+LUALIB_API void (luaL_pushresult) (luaL_Buffer *B);
/* }====================================================== */
+/* compatibility with ref system */
+
+/* pre-defined references */
+#define LUA_NOREF (-2)
+#define LUA_REFNIL (-1)
+
+#define lua_ref(L,lock) ((lock) ? luaL_ref(L, LUA_REGISTRYINDEX) : \
+ (lua_pushstring(L, "unlocked references are obsolete"), lua_error(L), 0))
+
+#define lua_unref(L,ref) luaL_unref(L, LUA_REGISTRYINDEX, (ref))
+
+#define lua_getref(L,ref) lua_rawgeti(L, LUA_REGISTRYINDEX, (ref))
-/*
-** Compatibility macros and functions
-*/
-LUALIB_API int lua_dofile (lua_State *L, const char *filename);
-LUALIB_API int lua_dostring (lua_State *L, const char *str);
-LUALIB_API int lua_dobuffer (lua_State *L, const char *buff, size_t sz,
- const char *n);
-
-
-#define luaL_check_lstr luaL_checklstring
-#define luaL_opt_lstr luaL_optlstring
-#define luaL_check_number luaL_checknumber
-#define luaL_opt_number luaL_optnumber
-#define luaL_arg_check luaL_argcheck
-#define luaL_check_string luaL_checkstring
-#define luaL_opt_string luaL_optstring
-#define luaL_check_int luaL_checkint
-#define luaL_check_long luaL_checklong
-#define luaL_opt_int luaL_optint
-#define luaL_opt_long luaL_optlong
+#define luaL_reg luaL_Reg
#ifdef __cplusplus
}