summaryrefslogtreecommitdiff
path: root/src/lundump.h
blob: 5de3c46e4a5e169c32e06f6313c6bb6b503edd55 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
** $Id: lundump.h,v 1.38 2005/09/02 01:54:47 lhf Exp $
** load pre-compiled Lua chunks
** See Copyright Notice in lua.h
*/

#ifndef lundump_h
#define lundump_h

#include "lobject.h"
#include "lzio.h"

/* make it work with Lua 5.0 */
#ifndef LUA_VERSION_NUM
#define LUAI_FUNC
#define lua_Writer	lua_Chunkwriter
#endif

/* load one chunk; from lundump.c */
LUAI_FUNC Proto* luaU_undump (lua_State* L, ZIO* Z, Mbuffer* buff, const char* name);

/* make header; from lundump.c */
LUAI_FUNC void luaU_header (char* h);

/* dump one chunk; from ldump.c */
LUAI_FUNC int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, void* data, int strip);

/* print one chunk; from print.c */
LUAI_FUNC void luaU_print (const Proto* f, int full);

/* for header of binary files -- this is Lua 5.1 */
#define LUAC_VERSION		0x51

/* for header of binary files -- this is the official format */
#define LUAC_FORMAT		0

/* size of header of binary files */
#define LUAC_HEADERSIZE		12

/* make it work with Lua 5.0 */
#ifndef LUA_VERSION_NUM
#define LUA_SIGNATURE		"\033Lua"
#define TValue			TObject
#define rawtsvalue		tsvalue
#define linedefined		lineDefined
#define lastlinedefined		lineDefined
#define setptvalue2s(L,t,f)
#undef	setsvalue2n
#define setsvalue2n(L,x,y)	setsvalue(x,y)
#define LUA_QL(x)		"'" x "'"
#define LUA_QS			LUA_QL("%s")
#undef	LUAC_VERSION
#define LUAC_VERSION		0x50
#ifdef lapi_c
#define luaU_dump(L,f,w,d) 	(luaU_dump)(L,f,w,d,0)
#endif
#ifdef ldo_c
#define luaU_undump(L,z,b)	(luaU_undump)(L,z,b,z->name)
#endif
#endif

#endif