aboutsummaryrefslogtreecommitdiff
path: root/ldo.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 /ldo.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 'ldo.c')
-rw-r--r--ldo.c39
1 files changed, 19 insertions, 20 deletions
diff --git a/ldo.c b/ldo.c
index 29caf8bf..f28dca44 100644
--- a/ldo.c
+++ b/ldo.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: ldo.c,v 1.143 2001/10/17 21:12:57 roberto Exp $ 2** $Id: ldo.c,v 1.144 2001/11/27 20:56:47 roberto Exp $
3** Stack and Call structure of Lua 3** Stack and Call structure of Lua
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -10,7 +10,6 @@
10#include <stdlib.h> 10#include <stdlib.h>
11#include <string.h> 11#include <string.h>
12 12
13#define LUA_PRIVATE
14#include "lua.h" 13#include "lua.h"
15 14
16#include "ldebug.h" 15#include "ldebug.h"
@@ -58,7 +57,7 @@ void luaD_stackerror (lua_State *L) {
58 else { 57 else {
59 L->stack_last += EXTRA_STACK; /* to be used by error message */ 58 L->stack_last += EXTRA_STACK; /* to be used by error message */
60 lua_assert(L->stack_last == L->stack+L->stacksize-1); 59 lua_assert(L->stack_last == L->stack+L->stacksize-1);
61 luaD_error(L, l_s("stack overflow")); 60 luaD_error(L, "stack overflow");
62 } 61 }
63} 62}
64 63
@@ -99,7 +98,7 @@ static void dohook (lua_State *L, lua_Debug *ar, lua_Hook hook) {
99void luaD_lineHook (lua_State *L, int line, lua_Hook linehook) { 98void luaD_lineHook (lua_State *L, int line, lua_Hook linehook) {
100 if (L->allowhooks) { 99 if (L->allowhooks) {
101 lua_Debug ar; 100 lua_Debug ar;
102 ar.event = l_s("line"); 101 ar.event = "line";
103 ar._ci = L->ci; 102 ar._ci = L->ci;
104 ar.currentline = line; 103 ar.currentline = line;
105 dohook(L, &ar, linehook); 104 dohook(L, &ar, linehook);
@@ -108,7 +107,7 @@ void luaD_lineHook (lua_State *L, int line, lua_Hook linehook) {
108 107
109 108
110static void luaD_callHook (lua_State *L, lua_Hook callhook, 109static void luaD_callHook (lua_State *L, lua_Hook callhook,
111 const l_char *event) { 110 const char *event) {
112 if (L->allowhooks) { 111 if (L->allowhooks) {
113 lua_Debug ar; 112 lua_Debug ar;
114 ar.event = event; 113 ar.event = event;
@@ -146,7 +145,7 @@ void luaD_call (lua_State *L, StkId func) {
146 /* `func' is not a function; check the `function' tag method */ 145 /* `func' is not a function; check the `function' tag method */
147 Closure *tm = luaT_gettmbyObj(G(L), func, TM_FUNCTION); 146 Closure *tm = luaT_gettmbyObj(G(L), func, TM_FUNCTION);
148 if (tm == NULL) 147 if (tm == NULL)
149 luaG_typeerror(L, func, l_s("call")); 148 luaG_typeerror(L, func, "call");
150 luaD_openstack(L, func); 149 luaD_openstack(L, func);
151 setclvalue(func, tm); /* tag method is the new function to be called */ 150 setclvalue(func, tm); /* tag method is the new function to be called */
152 } 151 }
@@ -155,12 +154,12 @@ void luaD_call (lua_State *L, StkId func) {
155 ci.base = func+1; 154 ci.base = func+1;
156 callhook = L->callhook; 155 callhook = L->callhook;
157 if (callhook) 156 if (callhook)
158 luaD_callHook(L, callhook, l_s("call")); 157 luaD_callHook(L, callhook, "call");
159 firstResult = (clvalue(func)->c.isC ? 158 firstResult = (clvalue(func)->c.isC ?
160 callCclosure(L, &clvalue(func)->c) : 159 callCclosure(L, &clvalue(func)->c) :
161 luaV_execute(L, &clvalue(func)->l, func+1)); 160 luaV_execute(L, &clvalue(func)->l, func+1));
162 if (callhook) /* same hook that was active at entry */ 161 if (callhook) /* same hook that was active at entry */
163 luaD_callHook(L, callhook, l_s("return")); 162 luaD_callHook(L, callhook, "return");
164 L->ci = ci.prev; /* unchain callinfo */ 163 L->ci = ci.prev; /* unchain callinfo */
165 /* move results to `func' (to erase parameters and function) */ 164 /* move results to `func' (to erase parameters and function) */
166 while (firstResult < L->top) 165 while (firstResult < L->top)
@@ -245,21 +244,21 @@ static int protectedparser (lua_State *L, ZIO *z, int bin) {
245} 244}
246 245
247 246
248LUA_API int lua_loadfile (lua_State *L, const l_char *filename) { 247LUA_API int lua_loadfile (lua_State *L, const char *filename) {
249 ZIO z; 248 ZIO z;
250 int status; 249 int status;
251 int bin; /* flag for file mode */ 250 int bin; /* flag for file mode */
252 int nlevel; /* level on the stack of filename */ 251 int nlevel; /* level on the stack of filename */
253 FILE *f = (filename == NULL) ? stdin : fopen(filename, l_s("r")); 252 FILE *f = (filename == NULL) ? stdin : fopen(filename, "r");
254 if (f == NULL) return LUA_ERRFILE; /* unable to open file */ 253 if (f == NULL) return LUA_ERRFILE; /* unable to open file */
255 bin = (ungetc(getc(f), f) == LUA_SIGNATURE[0]); 254 bin = (ungetc(getc(f), f) == LUA_SIGNATURE[0]);
256 if (bin && f != stdin) { 255 if (bin && f != stdin) {
257 fclose(f); 256 fclose(f);
258 f = fopen(filename, l_s("rb")); /* reopen in binary mode */ 257 f = fopen(filename, "rb"); /* reopen in binary mode */
259 if (f == NULL) return LUA_ERRFILE; /* unable to reopen file */ 258 if (f == NULL) return LUA_ERRFILE; /* unable to reopen file */
260 } 259 }
261 lua_pushliteral(L, l_s("@")); 260 lua_pushliteral(L, "@");
262 lua_pushstring(L, (filename == NULL) ? l_s("(stdin)") : filename); 261 lua_pushstring(L, (filename == NULL) ? "(stdin)" : filename);
263 lua_concat(L, 2); 262 lua_concat(L, 2);
264 nlevel = lua_gettop(L); 263 nlevel = lua_gettop(L);
265 filename = lua_tostring(L, -1); /* filename = `@'..filename */ 264 filename = lua_tostring(L, -1); /* filename = `@'..filename */
@@ -272,11 +271,11 @@ LUA_API int lua_loadfile (lua_State *L, const l_char *filename) {
272} 271}
273 272
274 273
275LUA_API int lua_loadbuffer (lua_State *L, const l_char *buff, size_t size, 274LUA_API int lua_loadbuffer (lua_State *L, const char *buff, size_t size,
276 const l_char *name) { 275 const char *name) {
277 ZIO z; 276 ZIO z;
278 int status; 277 int status;
279 if (!name) name = l_s("?"); 278 if (!name) name = "?";
280 luaZ_mopen(&z, buff, size, name); 279 luaZ_mopen(&z, buff, size, name);
281 status = protectedparser(L, &z, buff[0]==LUA_SIGNATURE[0]); 280 status = protectedparser(L, &z, buff[0]==LUA_SIGNATURE[0]);
282 return status; 281 return status;
@@ -301,9 +300,9 @@ struct lua_longjmp {
301}; 300};
302 301
303 302
304static void message (lua_State *L, const l_char *s) { 303static void message (lua_State *L, const char *s) {
305 StkId top = L->top; 304 StkId top = L->top;
306 luaV_getglobal(L, luaS_newliteral(L, l_s(LUA_ERRORMESSAGE)), top); 305 luaV_getglobal(L, luaS_newliteral(L, LUA_ERRORMESSAGE), top);
307 if (ttype(top) == LUA_TFUNCTION) { 306 if (ttype(top) == LUA_TFUNCTION) {
308 incr_top; 307 incr_top;
309 setsvalue(top+1, luaS_new(L, s)); 308 setsvalue(top+1, luaS_new(L, s));
@@ -317,7 +316,7 @@ static void message (lua_State *L, const l_char *s) {
317/* 316/*
318** Reports an error, and jumps up to the available recovery label 317** Reports an error, and jumps up to the available recovery label
319*/ 318*/
320void luaD_error (lua_State *L, const l_char *s) { 319void luaD_error (lua_State *L, const char *s) {
321 if (s) message(L, s); 320 if (s) message(L, s);
322 luaD_breakrun(L, LUA_ERRRUN); 321 luaD_breakrun(L, LUA_ERRRUN);
323} 322}
@@ -330,7 +329,7 @@ void luaD_breakrun (lua_State *L, int errcode) {
330 } 329 }
331 else { 330 else {
332 if (errcode != LUA_ERRMEM) 331 if (errcode != LUA_ERRMEM)
333 message(L, l_s("unable to recover; exiting\n")); 332 message(L, "unable to recover; exiting\n");
334 exit(EXIT_FAILURE); 333 exit(EXIT_FAILURE);
335 } 334 }
336} 335}