diff src/lua/lauxlib.h @ 11:27763b933818

raise lua sources up one level
author Robert McIntyre <rlm@mit.edu>
date Sat, 03 Mar 2012 11:07:39 -0600
parents src/lua/src/lauxlib.h@f9f4f1b99eed
children
line wrap: on
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/src/lua/lauxlib.h	Sat Mar 03 11:07:39 2012 -0600
     1.3 @@ -0,0 +1,174 @@
     1.4 +/*
     1.5 +** $Id: lauxlib.h,v 1.88.1.1 2007/12/27 13:02:25 roberto Exp $
     1.6 +** Auxiliary functions for building Lua libraries
     1.7 +** See Copyright Notice in lua.h
     1.8 +*/
     1.9 +
    1.10 +
    1.11 +#ifndef lauxlib_h
    1.12 +#define lauxlib_h
    1.13 +
    1.14 +
    1.15 +#include <stddef.h>
    1.16 +#include <stdio.h>
    1.17 +
    1.18 +#include "lua.h"
    1.19 +
    1.20 +
    1.21 +#if defined(LUA_COMPAT_GETN)
    1.22 +LUALIB_API int (luaL_getn) (lua_State *L, int t);
    1.23 +LUALIB_API void (luaL_setn) (lua_State *L, int t, int n);
    1.24 +#else
    1.25 +#define luaL_getn(L,i)          ((int)lua_objlen(L, i))
    1.26 +#define luaL_setn(L,i,j)        ((void)0)  /* no op! */
    1.27 +#endif
    1.28 +
    1.29 +#if defined(LUA_COMPAT_OPENLIB)
    1.30 +#define luaI_openlib	luaL_openlib
    1.31 +#endif
    1.32 +
    1.33 +
    1.34 +/* extra error code for `luaL_load' */
    1.35 +#define LUA_ERRFILE     (LUA_ERRERR+1)
    1.36 +
    1.37 +
    1.38 +typedef struct luaL_Reg {
    1.39 +  const char *name;
    1.40 +  lua_CFunction func;
    1.41 +} luaL_Reg;
    1.42 +
    1.43 +
    1.44 +
    1.45 +LUALIB_API void (luaI_openlib) (lua_State *L, const char *libname,
    1.46 +                                const luaL_Reg *l, int nup);
    1.47 +LUALIB_API void (luaL_register) (lua_State *L, const char *libname,
    1.48 +                                const luaL_Reg *l);
    1.49 +LUALIB_API int (luaL_getmetafield) (lua_State *L, int obj, const char *e);
    1.50 +LUALIB_API int (luaL_callmeta) (lua_State *L, int obj, const char *e);
    1.51 +LUALIB_API int (luaL_typerror) (lua_State *L, int narg, const char *tname);
    1.52 +LUALIB_API int (luaL_argerror) (lua_State *L, int numarg, const char *extramsg);
    1.53 +LUALIB_API const char *(luaL_checklstring) (lua_State *L, int numArg,
    1.54 +                                                          size_t *l);
    1.55 +LUALIB_API const char *(luaL_optlstring) (lua_State *L, int numArg,
    1.56 +                                          const char *def, size_t *l);
    1.57 +LUALIB_API lua_Number (luaL_checknumber) (lua_State *L, int numArg);
    1.58 +LUALIB_API lua_Number (luaL_optnumber) (lua_State *L, int nArg, lua_Number def);
    1.59 +
    1.60 +LUALIB_API lua_Integer (luaL_checkinteger) (lua_State *L, int numArg);
    1.61 +LUALIB_API lua_Integer (luaL_optinteger) (lua_State *L, int nArg,
    1.62 +                                          lua_Integer def);
    1.63 +
    1.64 +LUALIB_API void (luaL_checkstack) (lua_State *L, int sz, const char *msg);
    1.65 +LUALIB_API void (luaL_checktype) (lua_State *L, int narg, int t);
    1.66 +LUALIB_API void (luaL_checkany) (lua_State *L, int narg);
    1.67 +
    1.68 +LUALIB_API int   (luaL_newmetatable) (lua_State *L, const char *tname);
    1.69 +LUALIB_API void *(luaL_checkudata) (lua_State *L, int ud, const char *tname);
    1.70 +
    1.71 +LUALIB_API void (luaL_where) (lua_State *L, int lvl);
    1.72 +LUALIB_API int (luaL_error) (lua_State *L, const char *fmt, ...);
    1.73 +
    1.74 +LUALIB_API int (luaL_checkoption) (lua_State *L, int narg, const char *def,
    1.75 +                                   const char *const lst[]);
    1.76 +
    1.77 +LUALIB_API int (luaL_ref) (lua_State *L, int t);
    1.78 +LUALIB_API void (luaL_unref) (lua_State *L, int t, int ref);
    1.79 +
    1.80 +LUALIB_API int (luaL_loadfile) (lua_State *L, const char *filename);
    1.81 +LUALIB_API int (luaL_loadbuffer) (lua_State *L, const char *buff, size_t sz,
    1.82 +                                  const char *name);
    1.83 +LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s);
    1.84 +
    1.85 +LUALIB_API lua_State *(luaL_newstate) (void);
    1.86 +
    1.87 +
    1.88 +LUALIB_API const char *(luaL_gsub) (lua_State *L, const char *s, const char *p,
    1.89 +                                                  const char *r);
    1.90 +
    1.91 +LUALIB_API const char *(luaL_findtable) (lua_State *L, int idx,
    1.92 +                                         const char *fname, int szhint);
    1.93 +
    1.94 +
    1.95 +
    1.96 +
    1.97 +/*
    1.98 +** ===============================================================
    1.99 +** some useful macros
   1.100 +** ===============================================================
   1.101 +*/
   1.102 +
   1.103 +#define luaL_argcheck(L, cond,numarg,extramsg)	\
   1.104 +		((void)((cond) || luaL_argerror(L, (numarg), (extramsg))))
   1.105 +#define luaL_checkstring(L,n)	(luaL_checklstring(L, (n), NULL))
   1.106 +#define luaL_optstring(L,n,d)	(luaL_optlstring(L, (n), (d), NULL))
   1.107 +#define luaL_checkint(L,n)	((int)luaL_checkinteger(L, (n)))
   1.108 +#define luaL_optint(L,n,d)	((int)luaL_optinteger(L, (n), (d)))
   1.109 +#define luaL_checklong(L,n)	((long)luaL_checkinteger(L, (n)))
   1.110 +#define luaL_optlong(L,n,d)	((long)luaL_optinteger(L, (n), (d)))
   1.111 +
   1.112 +#define luaL_typename(L,i)	lua_typename(L, lua_type(L,(i)))
   1.113 +
   1.114 +#define luaL_dofile(L, fn) \
   1.115 +	(luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0))
   1.116 +
   1.117 +#define luaL_dostring(L, s) \
   1.118 +	(luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0))
   1.119 +
   1.120 +#define luaL_getmetatable(L,n)	(lua_getfield(L, LUA_REGISTRYINDEX, (n)))
   1.121 +
   1.122 +#define luaL_opt(L,f,n,d)	(lua_isnoneornil(L,(n)) ? (d) : f(L,(n)))
   1.123 +
   1.124 +/*
   1.125 +** {======================================================
   1.126 +** Generic Buffer manipulation
   1.127 +** =======================================================
   1.128 +*/
   1.129 +
   1.130 +
   1.131 +
   1.132 +typedef struct luaL_Buffer {
   1.133 +  char *p;			/* current position in buffer */
   1.134 +  int lvl;  /* number of strings in the stack (level) */
   1.135 +  lua_State *L;
   1.136 +  char buffer[LUAL_BUFFERSIZE];
   1.137 +} luaL_Buffer;
   1.138 +
   1.139 +#define luaL_addchar(B,c) \
   1.140 +  ((void)((B)->p < ((B)->buffer+LUAL_BUFFERSIZE) || luaL_prepbuffer(B)), \
   1.141 +   (*(B)->p++ = (char)(c)))
   1.142 +
   1.143 +/* compatibility only */
   1.144 +#define luaL_putchar(B,c)	luaL_addchar(B,c)
   1.145 +
   1.146 +#define luaL_addsize(B,n)	((B)->p += (n))
   1.147 +
   1.148 +LUALIB_API void (luaL_buffinit) (lua_State *L, luaL_Buffer *B);
   1.149 +LUALIB_API char *(luaL_prepbuffer) (luaL_Buffer *B);
   1.150 +LUALIB_API void (luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l);
   1.151 +LUALIB_API void (luaL_addstring) (luaL_Buffer *B, const char *s);
   1.152 +LUALIB_API void (luaL_addvalue) (luaL_Buffer *B);
   1.153 +LUALIB_API void (luaL_pushresult) (luaL_Buffer *B);
   1.154 +
   1.155 +
   1.156 +/* }====================================================== */
   1.157 +
   1.158 +
   1.159 +/* compatibility with ref system */
   1.160 +
   1.161 +/* pre-defined references */
   1.162 +#define LUA_NOREF       (-2)
   1.163 +#define LUA_REFNIL      (-1)
   1.164 +
   1.165 +#define lua_ref(L,lock) ((lock) ? luaL_ref(L, LUA_REGISTRYINDEX) : \
   1.166 +      (lua_pushstring(L, "unlocked references are obsolete"), lua_error(L), 0))
   1.167 +
   1.168 +#define lua_unref(L,ref)        luaL_unref(L, LUA_REGISTRYINDEX, (ref))
   1.169 +
   1.170 +#define lua_getref(L,ref)       lua_rawgeti(L, LUA_REGISTRYINDEX, (ref))
   1.171 +
   1.172 +
   1.173 +#define luaL_reg	luaL_Reg
   1.174 +
   1.175 +#endif
   1.176 +
   1.177 +