3 ** String table (keep all strings handled by Lua)
4 ** See Copyright Notice in lua.h
16 ** Memory-allocation error message must be preallocated (it cannot
17 ** be created after memory is exhausted)
19 #define MEMERRMSG "not enough memory"
23 ** Size of a TString: Size of the header plus space for the string
24 ** itself (including final '\0').
26 #define sizelstring(l) (offsetof(TString, contents) + ((l) + 1) * sizeof(char))
28 #define luaS_newliteral(L, s) (luaS_newlstr(L, "" s, \
29 (sizeof(s)/sizeof(char))-1))
33 ** test whether a string is a reserved word
35 #define isreserved(s) ((s)->tt == LUA_VSHRSTR && (s)->extra > 0)
39 ** equality for short strings, which are always internalized
41 #define eqshrstr(a,b) check_exp((a)->tt == LUA_VSHRSTR, (a) == (b))
44 LUAI_FUNC
unsigned int luaS_hash(const char *str
, size_t l
, unsigned int seed
);
45 LUAI_FUNC
unsigned int luaS_hashlongstr(TString
*ts
);
46 LUAI_FUNC
int luaS_eqlngstr(TString
*a
, TString
*b
);
47 LUAI_FUNC
void luaS_resize(lua_State
*L
, int newsize
);
48 LUAI_FUNC
void luaS_clearcache(global_State
*g
);
49 LUAI_FUNC
void luaS_init(lua_State
*L
);
50 LUAI_FUNC
void luaS_remove(lua_State
*L
, TString
*ts
);
51 LUAI_FUNC Udata
*luaS_newudata(lua_State
*L
, size_t s
, int nuvalue
);
52 LUAI_FUNC TString
*luaS_newlstr(lua_State
*L
, const char *str
, size_t l
);
53 LUAI_FUNC TString
*luaS_new(lua_State
*L
, const char *str
);
54 LUAI_FUNC TString
*luaS_createlngstrobj(lua_State
*L
, size_t l
);