mudgangster

Tiny, scriptable MUD client
Log | Files | Refs | README

lstring.h (1455B)


      1 /*
      2 ** $Id: lstring.h,v 1.61.1.1 2017/04/19 17:20:42 roberto Exp $
      3 ** String table (keep all strings handled by Lua)
      4 ** See Copyright Notice in lua.h
      5 */
      6 
      7 #ifndef lstring_h
      8 #define lstring_h
      9 
     10 #include "lgc.h"
     11 #include "lobject.h"
     12 #include "lstate.h"
     13 
     14 
     15 #define sizelstring(l)  (sizeof(union UTString) + ((l) + 1) * sizeof(char))
     16 
     17 #define sizeludata(l)	(sizeof(union UUdata) + (l))
     18 #define sizeudata(u)	sizeludata((u)->len)
     19 
     20 #define luaS_newliteral(L, s)	(luaS_newlstr(L, "" s, \
     21                                  (sizeof(s)/sizeof(char))-1))
     22 
     23 
     24 /*
     25 ** test whether a string is a reserved word
     26 */
     27 #define isreserved(s)	((s)->tt == LUA_TSHRSTR && (s)->extra > 0)
     28 
     29 
     30 /*
     31 ** equality for short strings, which are always internalized
     32 */
     33 #define eqshrstr(a,b)	check_exp((a)->tt == LUA_TSHRSTR, (a) == (b))
     34 
     35 
     36 LUAI_FUNC unsigned int luaS_hash (const char *str, size_t l, unsigned int seed);
     37 LUAI_FUNC unsigned int luaS_hashlongstr (TString *ts);
     38 LUAI_FUNC int luaS_eqlngstr (TString *a, TString *b);
     39 LUAI_FUNC void luaS_resize (lua_State *L, int newsize);
     40 LUAI_FUNC void luaS_clearcache (global_State *g);
     41 LUAI_FUNC void luaS_init (lua_State *L);
     42 LUAI_FUNC void luaS_remove (lua_State *L, TString *ts);
     43 LUAI_FUNC Udata *luaS_newudata (lua_State *L, size_t s);
     44 LUAI_FUNC TString *luaS_newlstr (lua_State *L, const char *str, size_t l);
     45 LUAI_FUNC TString *luaS_new (lua_State *L, const char *str);
     46 LUAI_FUNC TString *luaS_createlngstrobj (lua_State *L, size_t l);
     47 
     48 
     49 #endif