summaryrefslogtreecommitdiff
path: root/src/lstring.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lstring.h')
-rw-r--r--src/lstring.h35
1 files changed, 22 insertions, 13 deletions
diff --git a/src/lstring.h b/src/lstring.h
index 6b214a21..67ede68d 100644
--- a/src/lstring.h
+++ b/src/lstring.h
@@ -1,5 +1,5 @@
/*
-** $Id: lstring.h,v 1.7 1998/03/06 16:54:42 roberto Exp $
+** $Id: lstring.h,v 1.24 2000/10/30 17:49:19 roberto Exp $
** String table (keep all strings handled by Lua)
** See Copyright Notice in lua.h
*/
@@ -9,20 +9,29 @@
#include "lobject.h"
+#include "lstate.h"
-void luaS_init (void);
-TaggedString *luaS_createudata (void *udata, int tag);
-TaggedString *luaS_collector (void);
-void luaS_free (TaggedString *l);
-TaggedString *luaS_newlstr (char *str, long l);
-TaggedString *luaS_new (char *str);
-TaggedString *luaS_newfixedstring (char *str);
-void luaS_rawsetglobal (TaggedString *ts, TObject *newval);
-char *luaS_travsymbol (int (*fn)(TObject *));
-int luaS_globaldefined (char *name);
-TaggedString *luaS_collectudata (void);
-void luaS_freeall (void);
+/*
+** any TString with mark>=FIXMARK is never collected.
+** Marks>=RESERVEDMARK are used to identify reserved words.
+*/
+#define FIXMARK 2
+#define RESERVEDMARK 3
+
+
+#define sizestring(l) ((long)sizeof(TString) + \
+ ((long)(l+1)-TSPACK)*(long)sizeof(char))
+
+
+void luaS_init (lua_State *L);
+void luaS_resize (lua_State *L, stringtable *tb, int newsize);
+TString *luaS_newudata (lua_State *L, size_t s, void *udata);
+TString *luaS_createudata (lua_State *L, void *udata, int tag);
+void luaS_freeall (lua_State *L);
+TString *luaS_newlstr (lua_State *L, const char *str, size_t l);
+TString *luaS_new (lua_State *L, const char *str);
+TString *luaS_newfixed (lua_State *L, const char *str);
#endif