diff options
Diffstat (limited to 'lzio.h')
-rw-r--r-- | lzio.h | 18 |
1 files changed, 15 insertions, 3 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lzio.h,v 1.16 2003/08/25 19:51:54 roberto Exp roberto $ | 2 | ** $Id: lzio.h,v 1.17 2003/08/25 20:00:50 roberto Exp roberto $ |
3 | ** Buffered streams | 3 | ** Buffered streams |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -10,6 +10,8 @@ | |||
10 | 10 | ||
11 | #include "lua.h" | 11 | #include "lua.h" |
12 | 12 | ||
13 | #include "lmem.h" | ||
14 | |||
13 | 15 | ||
14 | #define EOZ (-1) /* end of stream */ | 16 | #define EOZ (-1) /* end of stream */ |
15 | 17 | ||
@@ -28,7 +30,8 @@ int luaZ_lookahead (ZIO *z); | |||
28 | 30 | ||
29 | typedef struct Mbuffer { | 31 | typedef struct Mbuffer { |
30 | char *buffer; | 32 | char *buffer; |
31 | size_t buffsize; | 33 | int n; |
34 | int buffsize; | ||
32 | } Mbuffer; | 35 | } Mbuffer; |
33 | 36 | ||
34 | 37 | ||
@@ -36,8 +39,12 @@ char *luaZ_openspace (lua_State *L, Mbuffer *buff, size_t n); | |||
36 | 39 | ||
37 | #define luaZ_initbuffer(L, buff) ((buff)->buffer = NULL, (buff)->buffsize = 0) | 40 | #define luaZ_initbuffer(L, buff) ((buff)->buffer = NULL, (buff)->buffsize = 0) |
38 | 41 | ||
39 | #define luaZ_sizebuffer(buff) ((buff)->buffsize) | ||
40 | #define luaZ_buffer(buff) ((buff)->buffer) | 42 | #define luaZ_buffer(buff) ((buff)->buffer) |
43 | #define luaZ_sizebuffer(buff) ((buff)->buffsize) | ||
44 | #define luaZ_bufflen(buff) ((buff)->n) | ||
45 | |||
46 | #define luaZ_resetbuffer(buff) ((buff)->n = 0) | ||
47 | |||
41 | 48 | ||
42 | #define luaZ_resizebuffer(L, buff, size) \ | 49 | #define luaZ_resizebuffer(L, buff, size) \ |
43 | (luaM_reallocvector(L, (buff)->buffer, (buff)->buffsize, size, char), \ | 50 | (luaM_reallocvector(L, (buff)->buffer, (buff)->buffsize, size, char), \ |
@@ -45,6 +52,11 @@ char *luaZ_openspace (lua_State *L, Mbuffer *buff, size_t n); | |||
45 | 52 | ||
46 | #define luaZ_freebuffer(L, buff) luaZ_resizebuffer(L, buff, 0) | 53 | #define luaZ_freebuffer(L, buff) luaZ_resizebuffer(L, buff, 0) |
47 | 54 | ||
55 | #define luaZ_save(L,b,c) { \ | ||
56 | luaM_growvector(L, b->buffer, b->n, b->buffsize, char, \ | ||
57 | MAX_INT, "token too long"); \ | ||
58 | b->buffer[b->n++] = cast(char, c); } | ||
59 | |||
48 | 60 | ||
49 | /* --------- Private Part ------------------ */ | 61 | /* --------- Private Part ------------------ */ |
50 | 62 | ||