gateway: simplify stopping the cleanup timer
[olsrd.git] / lib / tas / src / lua / lauxlib.h
1
2 /*
3 ** $Id: lauxlib.h,v 1.60 2003/04/03 13:35:34 roberto Exp $
4 ** Auxiliary functions for building Lua libraries
5 ** See Copyright Notice in lua.h
6 */
7
8
9 #ifndef lauxlib_h
10 #define lauxlib_h
11
12
13 #include <stddef.h>
14 #include <stdio.h>
15
16 #include "lua.h"
17
18
19 #ifndef LUALIB_API
20 #define LUALIB_API      LUA_API
21 #endif
22
23
24
25 typedef struct luaL_reg {
26   const char *name;
27   lua_CFunction func;
28 } luaL_reg;
29
30
31 LUALIB_API void luaL_openlib(lua_State * L, const char *libname, const luaL_reg * l, int nup);
32 LUALIB_API int luaL_getmetafield(lua_State * L, int obj, const char *e);
33 LUALIB_API int luaL_callmeta(lua_State * L, int obj, const char *e);
34 LUALIB_API int luaL_typerror(lua_State * L, int narg, const char *tname) __attribute__ ((noreturn));
35 LUALIB_API int luaL_argerror(lua_State * L, int numarg, const char *extramsg) __attribute__ ((noreturn));
36 LUALIB_API const char *luaL_checklstring(lua_State * L, int numArg, size_t * l);
37 LUALIB_API const char *luaL_optlstring(lua_State * L, int numArg, const char *def, size_t * l);
38 LUALIB_API lua_Number luaL_checknumber(lua_State * L, int numArg);
39 LUALIB_API lua_Number luaL_optnumber(lua_State * L, int nArg, lua_Number def);
40
41 LUALIB_API void luaL_checkstack(lua_State * L, int sz, const char *msg);
42 LUALIB_API void luaL_checktype(lua_State * L, int narg, int t);
43 LUALIB_API void luaL_checkany(lua_State * L, int narg);
44
45 LUALIB_API int luaL_newmetatable(lua_State * L, const char *tname);
46 LUALIB_API void luaL_getmetatable(lua_State * L, const char *tname);
47 LUALIB_API void *luaL_checkudata(lua_State * L, int ud, const char *tname);
48
49 LUALIB_API void luaL_where(lua_State * L, int lvl);
50 LUALIB_API int luaL_error(lua_State * L, const char *fmt, ...) __attribute__ ((noreturn));
51
52 LUALIB_API int luaL_findstring(const char *st, const char *const lst[]);
53
54 LUALIB_API int luaL_ref(lua_State * L, int t);
55 LUALIB_API void luaL_unref(lua_State * L, int t, int ref);
56
57 LUALIB_API int luaL_getn(lua_State * L, int t);
58 LUALIB_API void luaL_setn(lua_State * L, int t, int n);
59
60 LUALIB_API int luaL_loadfile(lua_State * L, const char *filename);
61 LUALIB_API int luaL_loadbuffer(lua_State * L, const char *buff, size_t sz, const char *name);
62
63
64
65 /*
66 ** ===============================================================
67 ** some useful macros
68 ** ===============================================================
69 */
70
71 #define luaL_argcheck(L, cond,numarg,extramsg) do { if (!(cond))         \
72             luaL_argerror(L, numarg,extramsg); } while (0)
73 #define luaL_checkstring(L,n)   luaL_checklstring(L, (n), NULL)
74 #define luaL_optstring(L,n,d)   luaL_optlstring(L, (n), (d), NULL)
75 #define luaL_checkint(L,n)      luaL_checknumber(L, n)
76 #define luaL_checklong(L,n)     luaL_checknumber(L, n)
77 #define luaL_optint(L,n,d)      luaL_optnumber(L, n,(lua_Number)(d))
78 #define luaL_optlong(L,n,d)     luaL_optnumber(L, n,(lua_Number)(d))
79
80
81 /*
82 ** {======================================================
83 ** Generic Buffer manipulation
84 ** =======================================================
85 */
86
87
88 #ifndef LUAL_BUFFERSIZE
89 #define LUAL_BUFFERSIZE   BUFSIZ
90 #endif
91
92
93 typedef struct luaL_Buffer {
94   char *p;                             /* current position in buffer */
95   int lvl;                             /* number of strings in the stack (level) */
96   lua_State *L;
97   char buffer[LUAL_BUFFERSIZE];
98 } luaL_Buffer;
99
100 #define luaL_putchar(B,c) \
101   ((void)((B)->p < ((B)->buffer+LUAL_BUFFERSIZE) || luaL_prepbuffer(B)), \
102    (*(B)->p++ = (char)(c)))
103
104 #define luaL_addsize(B,n)       ((B)->p += (n))
105
106 LUALIB_API void luaL_buffinit(lua_State * L, luaL_Buffer * B);
107 LUALIB_API char *luaL_prepbuffer(luaL_Buffer * B);
108 LUALIB_API void luaL_addlstring(luaL_Buffer * B, const char *s, size_t l);
109 LUALIB_API void luaL_addstring(luaL_Buffer * B, const char *s);
110 LUALIB_API void luaL_addvalue(luaL_Buffer * B);
111 LUALIB_API void luaL_pushresult(luaL_Buffer * B);
112
113
114 /* }====================================================== */
115
116
117
118 /*
119 ** Compatibility macros and functions
120 */
121
122 LUALIB_API int lua_dofile(lua_State * L, const char *filename);
123 LUALIB_API int lua_dostring(lua_State * L, const char *str);
124 LUALIB_API int lua_dobuffer(lua_State * L, const char *buff, size_t sz, const char *n);
125
126
127 #define luaL_check_lstr         luaL_checklstring
128 #define luaL_opt_lstr   luaL_optlstring
129 #define luaL_check_number       luaL_checknumber
130 #define luaL_opt_number luaL_optnumber
131 #define luaL_arg_check  luaL_argcheck
132 #define luaL_check_string       luaL_checkstring
133 #define luaL_opt_string luaL_optstring
134 #define luaL_check_int  luaL_checkint
135 #define luaL_check_long luaL_checklong
136 #define luaL_opt_int    luaL_optint
137 #define luaL_opt_long   luaL_optlong
138
139
140 #endif