bug: zio mixes a 255 as first char in a buffer with EOZ

This commit is contained in:
Roberto Ierusalimschy committed 2003-03-20 13:00:56 -03:00
1 parent 15dbb53461
commit b518d14071
3 files changed
+13 -7

No files matched your search

+5
View File
@@ -329,3 +329,8 @@ Fri Feb 28 14:20:33 EST 2003
>> GC metamethod calls could mess C/Lua stack syncronization >> GC metamethod calls could mess C/Lua stack syncronization
(by Roberto; since 5.0b) (by Roberto; since 5.0b)
** lzio.h/zlio.c
Thu Mar 20 11:40:12 EST 2003
>> zio mixes a 255 as first char in a buffer with EOZ
(by lhf; since 5.0a)
+3 -3
View File
@@ -1,5 +1,5 @@
/* /*
** $Id: lzio.c,v 1.22 2002/10/08 18:46:08 roberto Exp roberto $ ** $Id: lzio.c,v 1.23 2002/12/04 17:38:31 roberto Exp roberto $
** a generic input stream interface ** a generic input stream interface
** See Copyright Notice in lua.h ** See Copyright Notice in lua.h
*/ */
@@ -22,7 +22,7 @@ int luaZ_fill (ZIO *z) {
if (buff == NULL || size == 0) return EOZ; if (buff == NULL || size == 0) return EOZ;
z->n = size - 1; z->n = size - 1;
z->p = buff; z->p = buff;
return *(z->p++); return char2int(*(z->p++));
} }
@@ -33,7 +33,7 @@ int luaZ_lookahead (ZIO *z) {
z->n++; z->n++;
z->p--; z->p--;
} }
return *z->p; return char2int(*z->p);
} }
+5 -4
View File
@@ -1,5 +1,5 @@
/* /*
** $Id: lzio.h,v 1.13 2002/08/05 18:45:02 roberto Exp roberto $ ** $Id: lzio.h,v 1.14 2002/10/08 18:46:08 roberto Exp roberto $
** Buffered streams ** Buffered streams
** See Copyright Notice in lua.h ** See Copyright Notice in lua.h
*/ */
@@ -15,9 +15,10 @@
typedef struct Zio ZIO; typedef struct Zio ZIO;
#define zgetc(z) (((z)->n--)>0 ? \
cast(int, cast(unsigned char, *(z)->p++)) : \ #define char2int(c) cast(int, cast(unsigned char, (c)))
luaZ_fill(z))
#define zgetc(z) (((z)->n--)>0 ? char2int(*(z)->p++) : luaZ_fill(z))
#define zname(z) ((z)->name) #define zname(z) ((z)->name)