summaryrefslogtreecommitdiff
path: root/ltm.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2001-11-28 18:13:13 -0200
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2001-11-28 18:13:13 -0200
commit72659a06050632da1a9b4c492302be46ac283f6b (patch)
treebac06b4ea523ba5443564d0869e392180d4b7b77 /ltm.c
parentdfaf8c5291fa8aef5bedbfa375853475364ac76e (diff)
downloadlua-72659a06050632da1a9b4c492302be46ac283f6b.tar.gz
lua-72659a06050632da1a9b4c492302be46ac283f6b.tar.bz2
lua-72659a06050632da1a9b4c492302be46ac283f6b.zip
no more explicit support for wide-chars; too much troble...
Diffstat (limited to 'ltm.c')
-rw-r--r--ltm.c43
1 files changed, 21 insertions, 22 deletions
diff --git a/ltm.c b/ltm.c
index a58934fa..ef0f89e1 100644
--- a/ltm.c
+++ b/ltm.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: ltm.c,v 1.78 2001/08/31 19:46:07 roberto Exp $ 2** $Id: ltm.c,v 1.80 2001/10/11 21:41:21 roberto Exp $
3** Tag methods 3** Tag methods
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -8,7 +8,6 @@
8#include <stdio.h> 8#include <stdio.h>
9#include <string.h> 9#include <string.h>
10 10
11#define LUA_PRIVATE
12#include "lua.h" 11#include "lua.h"
13 12
14#include "ldo.h" 13#include "ldo.h"
@@ -20,16 +19,16 @@
20#include "ltm.h" 19#include "ltm.h"
21 20
22 21
23const l_char *const luaT_eventname[] = { /* ORDER TM */ 22const char *const luaT_eventname[] = { /* ORDER TM */
24 l_s("gettable"), l_s("settable"), l_s("index"), l_s("getglobal"), 23 "gettable", "settable", "index", "getglobal",
25 l_s("setglobal"), l_s("add"), l_s("sub"), l_s("mul"), l_s("div"), 24 "setglobal", "add", "sub", "mul", "div",
26 l_s("pow"), l_s("unm"), l_s("lt"), l_s("concat"), l_s("gc"), 25 "pow", "unm", "lt", "concat", "gc",
27 l_s("function"), 26 "function",
28 NULL 27 NULL
29}; 28};
30 29
31 30
32static int findevent (const l_char *name) { 31static int findevent (const char *name) {
33 int i; 32 int i;
34 for (i=0; luaT_eventname[i]; i++) 33 for (i=0; luaT_eventname[i]; i++)
35 if (strcmp(luaT_eventname[i], name) == 0) 34 if (strcmp(luaT_eventname[i], name) == 0)
@@ -38,10 +37,10 @@ static int findevent (const l_char *name) {
38} 37}
39 38
40 39
41static int luaI_checkevent (lua_State *L, const l_char *name) { 40static int luaI_checkevent (lua_State *L, const char *name) {
42 int e = findevent(name); 41 int e = findevent(name);
43 if (e < 0) 42 if (e < 0)
44 luaO_verror(L, l_s("`%.50s' is not a valid event name"), name); 43 luaO_verror(L, "`%.50s' is not a valid event name", name);
45 return e; 44 return e;
46} 45}
47 46
@@ -66,9 +65,9 @@ static int luaT_validevent (int t, int e) { /* ORDER LUA_T */
66 65
67 66
68void luaT_init (lua_State *L) { 67void luaT_init (lua_State *L) {
69 static const l_char *const typenames[NUM_TAGS] = { 68 static const char *const typenames[NUM_TAGS] = {
70 l_s("userdata"), l_s("nil"), l_s("number"), l_s("string"), 69 "userdata", "nil", "number", "string",
71 l_s("table"), l_s("function") 70 "table", "function"
72 }; 71 };
73 int i; 72 int i;
74 for (i=0; i<NUM_TAGS; i++) 73 for (i=0; i<NUM_TAGS; i++)
@@ -76,12 +75,12 @@ void luaT_init (lua_State *L) {
76} 75}
77 76
78 77
79int luaT_newtag (lua_State *L, const l_char *name, int basictype) { 78int luaT_newtag (lua_State *L, const char *name, int basictype) {
80 int tag; 79 int tag;
81 int i; 80 int i;
82 TString *ts = NULL; 81 TString *ts = NULL;
83 luaM_growvector(L, G(L)->TMtable, G(L)->ntag, G(L)->sizeTM, struct TM, 82 luaM_growvector(L, G(L)->TMtable, G(L)->ntag, G(L)->sizeTM, struct TM,
84 MAX_INT, l_s("tag table overflow")); 83 MAX_INT, "tag table overflow");
85 tag = G(L)->ntag; 84 tag = G(L)->ntag;
86 if (name) { 85 if (name) {
87 const TObject *v; 86 const TObject *v;
@@ -104,7 +103,7 @@ int luaT_newtag (lua_State *L, const l_char *name, int basictype) {
104 103
105static void checktag (lua_State *L, int tag) { 104static void checktag (lua_State *L, int tag) {
106 if (!(0 <= tag && tag < G(L)->ntag)) 105 if (!(0 <= tag && tag < G(L)->ntag))
107 luaO_verror(L, l_s("%d is not a valid tag"), tag); 106 luaO_verror(L, "%d is not a valid tag", tag);
108} 107}
109 108
110 109
@@ -118,7 +117,7 @@ int luaT_tag (const TObject *o) {
118} 117}
119 118
120 119
121const l_char *luaT_typename (global_State *G, const TObject *o) { 120const char *luaT_typename (global_State *G, const TObject *o) {
122 int t = ttype(o); 121 int t = ttype(o);
123 int tag; 122 int tag;
124 TString *ts; 123 TString *ts;
@@ -139,7 +138,7 @@ const l_char *luaT_typename (global_State *G, const TObject *o) {
139} 138}
140 139
141 140
142LUA_API void lua_gettagmethod (lua_State *L, int t, const l_char *event) { 141LUA_API void lua_gettagmethod (lua_State *L, int t, const char *event) {
143 int e; 142 int e;
144 lua_lock(L); 143 lua_lock(L);
145 e = luaI_checkevent(L, event); 144 e = luaI_checkevent(L, event);
@@ -154,16 +153,16 @@ LUA_API void lua_gettagmethod (lua_State *L, int t, const l_char *event) {
154} 153}
155 154
156 155
157LUA_API void lua_settagmethod (lua_State *L, int t, const l_char *event) { 156LUA_API void lua_settagmethod (lua_State *L, int t, const char *event) {
158 int e; 157 int e;
159 lua_lock(L); 158 lua_lock(L);
160 e = luaI_checkevent(L, event); 159 e = luaI_checkevent(L, event);
161 checktag(L, t); 160 checktag(L, t);
162 if (!luaT_validevent(t, e)) 161 if (!luaT_validevent(t, e))
163 luaO_verror(L, l_s("cannot change `%.20s' tag method for type `%.20s'%.20s"), 162 luaO_verror(L, "cannot change `%.20s' tag method for type `%.20s'%.20s",
164 luaT_eventname[e], typenamebytag(G(L), t), 163 luaT_eventname[e], typenamebytag(G(L), t),
165 (t == LUA_TTABLE || t == LUA_TUSERDATA) ? 164 (t == LUA_TTABLE || t == LUA_TUSERDATA) ?
166 l_s(" with default tag") : l_s("")); 165 " with default tag" : "");
167 switch (ttype(L->top - 1)) { 166 switch (ttype(L->top - 1)) {
168 case LUA_TNIL: 167 case LUA_TNIL:
169 luaT_gettm(G(L), t, e) = NULL; 168 luaT_gettm(G(L), t, e) = NULL;
@@ -172,7 +171,7 @@ LUA_API void lua_settagmethod (lua_State *L, int t, const l_char *event) {
172 luaT_gettm(G(L), t, e) = clvalue(L->top - 1); 171 luaT_gettm(G(L), t, e) = clvalue(L->top - 1);
173 break; 172 break;
174 default: 173 default:
175 luaD_error(L, l_s("tag method must be a function (or nil)")); 174 luaD_error(L, "tag method must be a function (or nil)");
176 } 175 }
177 L->top--; 176 L->top--;
178 lua_unlock(L); 177 lua_unlock(L);