aboutsummaryrefslogtreecommitdiff
path: root/lzio.h
diff options
context:
space:
mode:
Diffstat (limited to 'lzio.h')
-rw-r--r--lzio.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/lzio.h b/lzio.h
index bcf11e45..6df40748 100644
--- a/lzio.h
+++ b/lzio.h
@@ -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
29typedef struct Mbuffer { 31typedef 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