summaryrefslogtreecommitdiff
path: root/src/script.cpp
diff options
context:
space:
mode:
authorWeblate <42@minetest.ru>2013-06-01 13:18:52 +0200
committerWeblate <42@minetest.ru>2013-06-01 13:18:52 +0200
commit1dfc2e02b3c358af4bb20bb3cb60ac7bd3ed1124 (patch)
tree54660f353f3342f89b6259ea6a5dfedfa20dc16f /src/script.cpp
parentec039a3d123120f9918812b13f5971e94546b9af (diff)
parent64627817fcca52f20948c24b60ce192b218f6ce2 (diff)
downloadminetest-1dfc2e02b3c358af4bb20bb3cb60ac7bd3ed1124.tar.gz
minetest-1dfc2e02b3c358af4bb20bb3cb60ac7bd3ed1124.tar.bz2
minetest-1dfc2e02b3c358af4bb20bb3cb60ac7bd3ed1124.zip
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'src/script.cpp')
-rw-r--r--src/script.cpp126
1 files changed, 0 insertions, 126 deletions
diff --git a/src/script.cpp b/src/script.cpp
deleted file mode 100644
index 4619fa636..000000000
--- a/src/script.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
-Minetest
-Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 2.1 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public License along
-with this program; if not, write to the Free Software Foundation, Inc.,
-51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-*/
-
-#include "script.h"
-#include <cstdarg>
-#include <cstring>
-#include <cstdio>
-#include <cstdlib>
-#include "log.h"
-#include <iostream>
-
-extern "C" {
-#include <lua.h>
-#include <lualib.h>
-#include <lauxlib.h>
-}
-
-LuaError::LuaError(lua_State *L, const std::string &s)
-{
- m_s = "LuaError: ";
- m_s += s + "\n";
- m_s += script_get_backtrace(L);
-}
-
-std::string script_get_backtrace(lua_State *L)
-{
- std::string s;
- lua_getfield(L, LUA_GLOBALSINDEX, "debug");
- if(lua_istable(L, -1)){
- lua_getfield(L, -1, "traceback");
- if(lua_isfunction(L, -1)){
- lua_call(L, 0, 1);
- if(lua_isstring(L, -1)){
- s += lua_tostring(L, -1);
- }
- lua_pop(L, 1);
- }
- else{
- lua_pop(L, 1);
- }
- }
- lua_pop(L, 1);
- return s;
-}
-
-void script_error(lua_State *L, const char *fmt, ...)
-{
- va_list argp;
- va_start(argp, fmt);
- char buf[10000];
- vsnprintf(buf, 10000, fmt, argp);
- va_end(argp);
- //errorstream<<"SCRIPT ERROR: "<<buf;
- throw LuaError(L, buf);
-}
-
-int luaErrorHandler(lua_State *L) {
- lua_getfield(L, LUA_GLOBALSINDEX, "debug");
- if (!lua_istable(L, -1)) {
- lua_pop(L, 1);
- return 1;
- }
- lua_getfield(L, -1, "traceback");
- if (!lua_isfunction(L, -1)) {
- lua_pop(L, 2);
- return 1;
- }
- lua_pushvalue(L, 1);
- lua_pushinteger(L, 2);
- lua_call(L, 2, 1);
- return 1;
-}
-
-bool script_load(lua_State *L, const char *path)
-{
- verbosestream<<"Loading and running script from "<<path<<std::endl;
-
- lua_pushcfunction(L, luaErrorHandler);
- int errorhandler = lua_gettop(L);
-
- int ret = luaL_loadfile(L, path) || lua_pcall(L, 0, 0, errorhandler);
- if(ret){
- errorstream<<"========== ERROR FROM LUA ==========="<<std::endl;
- errorstream<<"Failed to load and run script from "<<std::endl;
- errorstream<<path<<":"<<std::endl;
- errorstream<<std::endl;
- errorstream<<lua_tostring(L, -1)<<std::endl;
- errorstream<<std::endl;
- errorstream<<"=======END OF ERROR FROM LUA ========"<<std::endl;
- lua_pop(L, 1); // Pop error message from stack
- lua_pop(L, 1); // Pop the error handler from stack
- return false;
- }
- lua_pop(L, 1); // Pop the error handler from stack
- return true;
-}
-
-lua_State* script_init()
-{
- lua_State *L = luaL_newstate();
- luaL_openlibs(L);
- return L;
-}
-
-void script_deinit(lua_State *L)
-{
- lua_close(L);
-}
-
-