diff options
-rw-r--r-- | llex.c | 12 | ||||
-rw-r--r-- | lzio.h | 10 |
2 files changed, 13 insertions, 9 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: llex.c,v 1.124 2003/08/29 16:48:14 roberto Exp roberto $ | 2 | ** $Id: llex.c,v 1.125 2003/09/04 20:00:28 roberto Exp roberto $ |
3 | ** Lexical Analyzer | 3 | ** Lexical Analyzer |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -24,7 +24,15 @@ | |||
24 | 24 | ||
25 | #define next(ls) (ls->current = zgetc(ls->z)) | 25 | #define next(ls) (ls->current = zgetc(ls->z)) |
26 | 26 | ||
27 | #define save(ls,c) luaZ_save(ls->L,ls->buff,c) | 27 | |
28 | #define MINLEXBUF 32 | ||
29 | |||
30 | #define save(ls,c) { \ | ||
31 | Mbuffer *b = ls->buff; \ | ||
32 | if (b->n + 1 > b->buffsize) \ | ||
33 | luaZ_resizebuffer(ls->L, b, ((b->buffsize*2) + MINLEXBUF)); \ | ||
34 | b->buffer[b->n++] = cast(char, c); } | ||
35 | |||
28 | 36 | ||
29 | 37 | ||
30 | #define currIsNewline(ls) (ls->current == '\n' || ls->current == '\r') | 38 | #define currIsNewline(ls) (ls->current == '\n' || ls->current == '\r') |
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lzio.h,v 1.17 2003/08/25 20:00:50 roberto Exp roberto $ | 2 | ** $Id: lzio.h,v 1.18 2003/08/28 14:38:46 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 | */ |
@@ -30,8 +30,8 @@ int luaZ_lookahead (ZIO *z); | |||
30 | 30 | ||
31 | typedef struct Mbuffer { | 31 | typedef struct Mbuffer { |
32 | char *buffer; | 32 | char *buffer; |
33 | int n; | 33 | size_t n; |
34 | int buffsize; | 34 | size_t buffsize; |
35 | } Mbuffer; | 35 | } Mbuffer; |
36 | 36 | ||
37 | 37 | ||
@@ -52,10 +52,6 @@ char *luaZ_openspace (lua_State *L, Mbuffer *buff, size_t n); | |||
52 | 52 | ||
53 | #define luaZ_freebuffer(L, buff) luaZ_resizebuffer(L, buff, 0) | 53 | #define luaZ_freebuffer(L, buff) luaZ_resizebuffer(L, buff, 0) |
54 | 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 | 55 | ||
60 | 56 | ||
61 | /* --------- Private Part ------------------ */ | 57 | /* --------- Private Part ------------------ */ |