Lua 5.1.4: lzio.h


L0001    /*
L0002    ** $Id: lzio.h,v 1.21.1.1 2007/12/27 13:02:25 roberto Exp $
L0003    ** Buffered streams
L0004    ** See Copyright Notice in lua.h
L0005    */
L0006    
L0007    
L0008    #ifndef lzio_h
L0009    #define lzio_h
L0010    
L0011    #include "lua.h"
L0012    
L0013    #include "lmem.h"
L0014    
L0015    
L0016    #define EOZ	(-1)			/* end of stream */
L0017    
L0018    typedef struct Zio ZIO;
L0019    
L0020    #define char2int(c)	cast(int, cast(unsigned char, (c)))
L0021    
L0022    #define zgetc(z)  (((z)->n--)>0 ?  char2int(*(z)->p++) : luaZ_fill(z))
L0023    
L0024    typedef struct Mbuffer {
L0025      char *buffer;
L0026      size_t n;
L0027      size_t buffsize;
L0028    } Mbuffer;
L0029    
L0030    #define luaZ_initbuffer(L, buff) ((buff)->buffer = NULL, (buff)->buffsize = 0)
L0031    
L0032    #define luaZ_buffer(buff)	((buff)->buffer)
L0033    #define luaZ_sizebuffer(buff)	((buff)->buffsize)
L0034    #define luaZ_bufflen(buff)	((buff)->n)
L0035    
L0036    #define luaZ_resetbuffer(buff) ((buff)->n = 0)
L0037    
L0038    
L0039    #define luaZ_resizebuffer(L, buff, size) \
L0040    	(luaM_reallocvector(L, (buff)->buffer, (buff)->buffsize, size, char), \
L0041    	(buff)->buffsize = size)
L0042    
L0043    #define luaZ_freebuffer(L, buff)	luaZ_resizebuffer(L, buff, 0)
L0044    
L0045    
L0046    LUAI_FUNC char *luaZ_openspace (lua_State *L, Mbuffer *buff, size_t n);
L0047    LUAI_FUNC void luaZ_init (lua_State *L, ZIO *z, lua_Reader reader,
L0048                                            void *data);
L0049    LUAI_FUNC size_t luaZ_read (ZIO* z, void* b, size_t n);	/* read next n bytes */
L0050    LUAI_FUNC int luaZ_lookahead (ZIO *z);
L0051    
L0052    
L0053    
L0054    /* --------- Private Part ------------------ */
L0055    
L0056    struct Zio {
L0057      size_t n;			/* bytes still unread */
L0058      const char *p;		/* current position in buffer */
L0059      lua_Reader reader;
L0060      void* data;			/* additional data */
L0061      lua_State *L;			/* Lua state (for reader) */
L0062    };
L0063    
L0064    
L0065    LUAI_FUNC int luaZ_fill (ZIO *z);
L0066    
L0067    #endif

Generated by pretty.lua