From 494c3cd485a8ac243ba96fdd8ac60b5df1b023d7 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Fri, 22 Sep 2006 18:53:39 +0000 Subject: [PATCH] LuaHelpers::RunExpression --- stepmania/src/LuaManager.cpp | 11 +++++++++++ stepmania/src/LuaManager.h | 4 ++++ 2 files changed, 15 insertions(+) diff --git a/stepmania/src/LuaManager.cpp b/stepmania/src/LuaManager.cpp index 9f29caeed2..64f423a82c 100644 --- a/stepmania/src/LuaManager.cpp +++ b/stepmania/src/LuaManager.cpp @@ -539,6 +539,17 @@ bool LuaHelpers::RunScript( Lua *L, const RString &sExpression, const RString &s return true; } +bool LuaHelpers::RunExpression( Lua *L, const RString &sExpression ) +{ + RString sFullExpression = "return " + sExpression; + + bool bSuccess = LuaHelpers::RunScript( L, sFullExpression, "", 1 ); + if( !bSuccess ) + lua_pushnil( L ); + + return bSuccess; +} + bool LuaHelpers::RunExpressionB( const RString &str ) { Lua *L = LUA->Get(); diff --git a/stepmania/src/LuaManager.h b/stepmania/src/LuaManager.h index bffdaa9c08..3431a3964c 100644 --- a/stepmania/src/LuaManager.h +++ b/stepmania/src/LuaManager.h @@ -56,6 +56,10 @@ namespace LuaHelpers * The return value is left on the Lua stack. */ bool RunScript( Lua *L, const RString &sExpression, const RString &sName = "", int iReturnValues = 0 ); + /* Run the given expression, returning a single value, and leave the return value on the + * stack. On error, push nil. */ + bool RunExpression( Lua *L, const RString &sExpression ); + bool RunScriptFile( const RString &sFile ); /* Strip "//" comments and "+". */