Free Electron
ext
lua
lua
src
lzio.h
1
/*
2
** $Id: lzio.h $
3
** Buffered streams
4
** See Copyright Notice in lua.h
5
*/
6
7
8
#ifndef lzio_h
9
#define lzio_h
10
11
#include "
lua.h
"
12
13
#include "lmem.h"
14
15
16
#define EOZ (-1)
/* end of stream */
17
18
typedef
struct
Zio ZIO;
19
20
#define zgetc(z) (((z)->n--)>0 ? cast_uchar(*(z)->p++) : luaZ_fill(z))
21
22
23
typedef
struct
Mbuffer {
24
char
*buffer;
25
size_t
n;
26
size_t
buffsize;
27
} Mbuffer;
28
29
#define luaZ_initbuffer(L, buff) ((buff)->buffer = NULL, (buff)->buffsize = 0)
30
31
#define luaZ_buffer(buff) ((buff)->buffer)
32
#define luaZ_sizebuffer(buff) ((buff)->buffsize)
33
#define luaZ_bufflen(buff) ((buff)->n)
34
35
#define luaZ_buffremove(buff,i) ((buff)->n -= (i))
36
#define luaZ_resetbuffer(buff) ((buff)->n = 0)
37
38
39
#define luaZ_resizebuffer(L, buff, size) \
40
((buff)->buffer = luaM_reallocvchar(L, (buff)->buffer, \
41
(buff)->buffsize, size), \
42
(buff)->buffsize = size)
43
44
#define luaZ_freebuffer(L, buff) luaZ_resizebuffer(L, buff, 0)
45
46
47
LUAI_FUNC
void
luaZ_init (lua_State *L, ZIO *z, lua_Reader reader,
48
void
*data);
49
LUAI_FUNC
size_t
luaZ_read (ZIO* z,
void
*b,
size_t
n);
/* read next n bytes */
50
51
52
53
/* --------- Private Part ------------------ */
54
55
struct
Zio {
56
size_t
n;
/* bytes still unread */
57
const
char
*p;
/* current position in buffer */
58
lua_Reader reader;
/* reader function */
59
void
*data;
/* additional data */
60
lua_State *L;
/* Lua state (for reader) */
61
};
62
63
64
LUAI_FUNC
int
luaZ_fill (ZIO *z);
65
66
#endif
lua.h
Generated by
1.8.13