xref: /f-stack/app/redis-5.0.5/deps/lua/src/lstring.h (revision 572c4311)
1*572c4311Sfengbojiang /*
2*572c4311Sfengbojiang ** $Id: lstring.h,v 1.43.1.1 2007/12/27 13:02:25 roberto Exp $
3*572c4311Sfengbojiang ** String table (keep all strings handled by Lua)
4*572c4311Sfengbojiang ** See Copyright Notice in lua.h
5*572c4311Sfengbojiang */
6*572c4311Sfengbojiang 
7*572c4311Sfengbojiang #ifndef lstring_h
8*572c4311Sfengbojiang #define lstring_h
9*572c4311Sfengbojiang 
10*572c4311Sfengbojiang 
11*572c4311Sfengbojiang #include "lgc.h"
12*572c4311Sfengbojiang #include "lobject.h"
13*572c4311Sfengbojiang #include "lstate.h"
14*572c4311Sfengbojiang 
15*572c4311Sfengbojiang 
16*572c4311Sfengbojiang #define sizestring(s)	(sizeof(union TString)+((s)->len+1)*sizeof(char))
17*572c4311Sfengbojiang 
18*572c4311Sfengbojiang #define sizeudata(u)	(sizeof(union Udata)+(u)->len)
19*572c4311Sfengbojiang 
20*572c4311Sfengbojiang #define luaS_new(L, s)	(luaS_newlstr(L, s, strlen(s)))
21*572c4311Sfengbojiang #define luaS_newliteral(L, s)	(luaS_newlstr(L, "" s, \
22*572c4311Sfengbojiang                                  (sizeof(s)/sizeof(char))-1))
23*572c4311Sfengbojiang 
24*572c4311Sfengbojiang #define luaS_fix(s)	l_setbit((s)->tsv.marked, FIXEDBIT)
25*572c4311Sfengbojiang 
26*572c4311Sfengbojiang LUAI_FUNC void luaS_resize (lua_State *L, int newsize);
27*572c4311Sfengbojiang LUAI_FUNC Udata *luaS_newudata (lua_State *L, size_t s, Table *e);
28*572c4311Sfengbojiang LUAI_FUNC TString *luaS_newlstr (lua_State *L, const char *str, size_t l);
29*572c4311Sfengbojiang 
30*572c4311Sfengbojiang 
31*572c4311Sfengbojiang #endif
32