diff --git a/Common/LuaBindings.cpp b/Common/LuaBindings.cpp index 62d1d285ecd1637a74fbdf26eb976f974c147392..af0d3cf8feea020678f4c360dd93efacc1016f96 100644 --- a/Common/LuaBindings.cpp +++ b/Common/LuaBindings.cpp @@ -3,6 +3,7 @@ #include <iostream> #include <string> #include "Gmsh.h" +#include "Context.h" #include "MVertex.h" #include "MElement.h" #include "Bindings.h" @@ -14,6 +15,7 @@ #include "dgConservationLawAdvection.h" #include "dgConservationLawPerfectGas.h" #include "dgConservationLawWaveEquation.h" + extern "C" { #include "lua.h" #include "lualib.h" @@ -104,7 +106,7 @@ int binding::readFile(const char *filename) { int s = luaL_loadfile(L, filename); if ( s==0 ) { - Msg::Info("lua executes %s\n",filename); + Msg::Info("lua executes %s",filename); s = lua_pcall(L, 0, LUA_MULTRET, 0); } report_errors(L, s); @@ -112,9 +114,13 @@ int binding::readFile(const char *filename) return (s==0); } -void binding::interactiveSession(){ +void binding::interactiveSession() +{ + int lock = CTX::instance()->lock; + CTX::instance()->lock = 0; + Msg::Info("Starting interactive lua session, press Ctrl-D to exit"); - #ifdef HAVE_READLINE +#ifdef HAVE_READLINE using_history(); while (const char *line=readline("lua> ")){ char *expansion; @@ -129,13 +135,14 @@ void binding::interactiveSession(){ free(expansion); } clear_history(); - #else +#else std::string line; while(std::cout<<"lua> ", getline(std::cin,line) ){ report_errors(L, luaL_dostring(L, line.c_str())); } - #endif +#endif + CTX::instance()->lock = lock; } binding::binding(){