2 ** $Id: lbuffer.c,v 1.9 1999/02/26 15:48:55 roberto Exp $
3 ** Auxiliary functions for building Lua libraries
4 ** See Copyright Notice in lua.h
15 /*-------------------------------------------------------
17 -------------------------------------------------------*/
23 #define openspace(size) if (L->Mbuffnext+(size) > L->Mbuffsize) Openspace(size)
25 static void Openspace (int size
) {
26 lua_State
*l
= L
; /* to optimize */
28 l
->Mbuffsize
= l
->Mbuffnext
+size
;
29 luaM_growvector(l
->Mbuffer
, l
->Mbuffnext
, size
, char, arrEM
, MAX_INT
);
33 char *luaL_openspace (int size
) {
35 return L
->Mbuffer
+L
->Mbuffnext
;
39 void luaL_addchar (int c
) {
41 L
->Mbuffer
[L
->Mbuffnext
++] = (char)c
;
45 void luaL_resetbuffer (void) {
46 L
->Mbuffnext
= L
->Mbuffbase
;
50 void luaL_addsize (int n
) {
54 int luaL_getsize (void) {
55 return L
->Mbuffnext
-L
->Mbuffbase
;
58 int luaL_newbuffer (int size
) {
59 int old
= L
->Mbuffbase
;
61 L
->Mbuffbase
= L
->Mbuffnext
;
66 void luaL_oldbuffer (int old
) {
67 L
->Mbuffnext
= L
->Mbuffbase
;
72 char *luaL_buffer (void) {
73 return L
->Mbuffer
+L
->Mbuffbase
;