| ** $Id: lzio.c,v 1.31.1.1 2007/12/27 13:02:25 roberto Exp $ |
| ** a generic input stream interface |
| ** See Copyright Notice in lua.h |
| buff = z->reader(L, z->data, &size); |
| if (buff == NULL || size == 0) return EOZ; |
| return char2int(*(z->p++)); |
| int luaZ_lookahead (ZIO *z) { |
| z->n++; /* luaZ_fill removed first byte; put back it */ |
| void luaZ_init (lua_State *L, ZIO *z, lua_Reader reader, void *data) { |
| /* --------------------------------------------------------------- read --- */ |
| size_t luaZ_read (ZIO *z, void *b, size_t n) { |
| if (luaZ_lookahead(z) == EOZ) |
| return n; /* return number of missing bytes */ |
| m = (n <= z->n) ? n : z->n; /* min. between n and z->n */ |
| /* ------------------------------------------------------------------------ */ |
| char *luaZ_openspace (lua_State *L, Mbuffer *buff, size_t n) { |
| if (n > buff->buffsize) { |
| if (n < LUA_MINBUFFER) n = LUA_MINBUFFER; |
| luaZ_resizebuffer(L, buff, n); |