c4e981fa28588ce9ec9d5b7f3819f7348c734a64
[apps/madmutt.git] / lib-lua / lib-lua.h
1 /*
2  *  This program is free software; you can redistribute it and/or modify
3  *  it under the terms of the GNU General Public License as published by
4  *  the Free Software Foundation; either version 2 of the License, or (at
5  *  your option) any later version.
6  *
7  *  This program is distributed in the hope that it will be useful, but
8  *  WITHOUT ANY WARRANTY; without even the implied warranty of
9  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
10  *  General Public License for more details.
11  *
12  *  You should have received a copy of the GNU General Public License
13  *  along with this program; if not, write to the Free Software
14  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
15  *  MA 02110-1301, USA.
16  *
17  *  Copyright © 2007 Pierre Habouzit
18  */
19
20 #ifndef MUTT_LIB_LUA_LIB_LUA_H
21 #define MUTT_LIB_LUA_LIB_LUA_H
22
23 #ifdef HAVE_CONFIG_H
24 # include "../config.h"
25 #endif
26
27 #include <lua.h>
28 #include <lualib.h>
29 #include <lauxlib.h>
30
31 #include <lib-mime/mime-types.h>
32 #include "lua-token.h"
33
34 /* possible arguments to set_quadoption() */
35 typedef enum quadopt_t {
36     M_NO,
37     M_YES,
38     M_ASKNO,
39     M_ASKYES
40 } quadopt_t;
41
42 void luaM_initialize(void);
43 void luaM_shutdown(void);
44
45 lua_State *luaM_getruntime(void);
46
47 int luaM_dofile(const char *filename);
48 int luaM_wrap(void (*errfun)(const char *fmt, ...)
49               __attribute__((format(printf, 1, 2))),
50               int status);
51
52 quadopt_t luaM_checkquadopt(lua_State *L, int narg);
53 void luaM_pushquadopt(lua_State *Ls, int val);
54
55 const char *luaM_checkrx(lua_State *Ls, int narg);
56 rx_t *luaM_rxnew(const char* val);
57 char *luaM_pathnew(const char *val);
58 void luaM_pushaddr(lua_State *Ls, address_t *addr);
59
60 #include "madmutt.li"
61
62 #endif