Fixed: variable_parser compilation
This commit is contained in:
parent
6c595f6c3c
commit
458203979c
6 changed files with 364 additions and 434 deletions
|
@ -27,6 +27,7 @@
|
||||||
#endif // _MSC_VER > 1000
|
#endif // _MSC_VER > 1000
|
||||||
|
|
||||||
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
|
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
|
||||||
|
#define NOMINMAX
|
||||||
|
|
||||||
#include <afxwin.h> // MFC core and standard components
|
#include <afxwin.h> // MFC core and standard components
|
||||||
#include <afxext.h> // MFC extensions
|
#include <afxext.h> // MFC extensions
|
||||||
|
|
|
@ -23,20 +23,14 @@
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
{
|
{
|
||||||
#ifdef max
|
|
||||||
# undef max
|
|
||||||
#endif
|
|
||||||
#include "lualib.h"
|
#include "lualib.h"
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef NL_OS_WINDOWS
|
// to get rid of you_must_not_use_assert___use_nl_assert___read_debug_h_file messages
|
||||||
# ifndef NL_EXTENDED_FOR_SCOPE
|
#include <cassert>
|
||||||
# undef for
|
#undef assert
|
||||||
# endif
|
#define assert nlassert
|
||||||
#endif
|
|
||||||
#undef new
|
|
||||||
#include <luabind/luabind.hpp>
|
#include <luabind/luabind.hpp>
|
||||||
#define new NL_NEW
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace NLMISC;
|
using namespace NLMISC;
|
||||||
|
@ -57,30 +51,91 @@ void CLuaStackChecker::decrementExceptionContextCounter()
|
||||||
nlassert(_ExceptionContextCounter > 0);
|
nlassert(_ExceptionContextCounter > 0);
|
||||||
-- _ExceptionContextCounter;
|
-- _ExceptionContextCounter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef LUA_NEVRAX_VERSION
|
||||||
|
ILuaIDEInterface *LuaDebuggerIDE = NULL;
|
||||||
|
static bool LuaDebuggerVisible = false;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef NL_OS_WINDOWS
|
||||||
|
HMODULE LuaDebuggerModule = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void luaDebuggerMainLoop()
|
||||||
|
{
|
||||||
|
#ifdef LUA_NEVRAX_VERSION
|
||||||
|
if (!LuaDebuggerIDE) return;
|
||||||
|
if (!LuaDebuggerVisible)
|
||||||
|
{
|
||||||
|
LuaDebuggerIDE->showDebugger(true);
|
||||||
|
LuaDebuggerIDE->expandProjectTree();
|
||||||
|
LuaDebuggerIDE->sortFiles();
|
||||||
|
LuaDebuggerVisible = true;
|
||||||
|
}
|
||||||
|
LuaDebuggerIDE->doMainLoop();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static std::allocator<uint8> l_stlAlloc;
|
||||||
|
|
||||||
|
|
||||||
|
static void l_free_func(void *block, int oldSize)
|
||||||
|
{
|
||||||
|
l_stlAlloc.deallocate((uint8 *) block, oldSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void *l_realloc_func(void *b, int os, int s)
|
||||||
|
{
|
||||||
|
if (os == s) return b;
|
||||||
|
void *newB = l_stlAlloc.allocate(s);
|
||||||
|
memcpy(newB, b, std::min(os, s));
|
||||||
|
l_free_func(b, os);
|
||||||
|
return newB;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const int MinGCThreshold = 128; // min value at which garbage collector will be triggered (in kilobytes)
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
CLuaState::CLuaState()
|
CLuaState::CLuaState()
|
||||||
{
|
{
|
||||||
|
_State = NULL;
|
||||||
|
|
||||||
#ifdef LUA_NEVRAX_VERSION
|
#ifdef LUA_NEVRAX_VERSION
|
||||||
_State = lua_open(NULL, NULL);
|
_GCThreshold = MinGCThreshold;
|
||||||
#else
|
|
||||||
_State = lua_open();
|
|
||||||
#endif
|
#endif
|
||||||
nlassert(_State);
|
|
||||||
|
if (!_State)
|
||||||
|
{
|
||||||
|
#ifdef LUA_NEVRAX_VERSION
|
||||||
|
_State = lua_open(l_realloc_func, l_free_func);
|
||||||
|
#else
|
||||||
|
_State = lua_open();
|
||||||
|
#endif
|
||||||
|
nlassert(_State);
|
||||||
|
}
|
||||||
|
|
||||||
// *** Load base libs
|
// *** Load base libs
|
||||||
{
|
{
|
||||||
CLuaStackChecker lsc(this);
|
CLuaStackChecker lsc(this);
|
||||||
|
#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 501
|
||||||
|
luaL_openlibs(_State);
|
||||||
|
#else
|
||||||
luaopen_base (_State);
|
luaopen_base (_State);
|
||||||
luaopen_table (_State);
|
luaopen_table (_State);
|
||||||
luaopen_io (_State);
|
luaopen_io (_State);
|
||||||
luaopen_string (_State);
|
luaopen_string (_State);
|
||||||
luaopen_math (_State);
|
luaopen_math (_State);
|
||||||
luaopen_debug (_State);
|
luaopen_debug (_State);
|
||||||
|
#endif
|
||||||
|
|
||||||
// open are buggy????
|
// open are buggy????
|
||||||
clear();
|
clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
// *** Register basics
|
// *** Register basics
|
||||||
CLuaStackChecker lsc(this);
|
CLuaStackChecker lsc(this);
|
||||||
|
|
||||||
|
@ -88,15 +143,15 @@ CLuaState::CLuaState()
|
||||||
pushLightUserData((void *) this);
|
pushLightUserData((void *) this);
|
||||||
newTable();
|
newTable();
|
||||||
push("classes");
|
push("classes");
|
||||||
newTable(); // registry class
|
newTable(); // registry class
|
||||||
setTable(-3);
|
setTable(-3);
|
||||||
setTable(LUA_REGISTRYINDEX);
|
setTable(LUA_REGISTRYINDEX);
|
||||||
|
|
||||||
// add pointer from lua state to this CLuaState object
|
// add pointer from lua state to this CLuaState object
|
||||||
// do: LUA_REGISTRYINDEX.(lightuserdata*)_State= this
|
// do: LUA_REGISTRYINDEX.(lightuserdata*)_State= this
|
||||||
pushLightUserData((void *) _State); // NB : as creator of the state, we make the assumption that
|
pushLightUserData((void *) _State); // NB : as creator of the state, we make the assumption that
|
||||||
// no one will be using this pointer in the registry (cf. ref manual about registry)
|
// no one will be using this pointer in the registry (cf. ref manual about registry)
|
||||||
pushLightUserData((void *) this);
|
pushLightUserData((void *) this);
|
||||||
setTable(LUA_REGISTRYINDEX);
|
setTable(LUA_REGISTRYINDEX);
|
||||||
|
|
||||||
// Create the Table that contains Function cache for small script execution
|
// Create the Table that contains Function cache for small script execution
|
||||||
|
@ -111,7 +166,7 @@ CLuaState::CLuaState()
|
||||||
|
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
CLuaStackRestorer::CLuaStackRestorer(CLuaState *state, int finalSize) : _State(state), _FinalSize(finalSize)
|
CLuaStackRestorer::CLuaStackRestorer(CLuaState *state, int finalSize) : _State(state), _FinalSize(finalSize)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,11 +177,43 @@ CLuaStackRestorer::~CLuaStackRestorer()
|
||||||
_State->setTop(_FinalSize);
|
_State->setTop(_FinalSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef NL_OS_WINDOWS
|
||||||
|
static int NoOpReportHook( int /* reportType */, char * /* message */, int * /* returnValue */ )
|
||||||
|
{
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
CLuaState::~CLuaState()
|
CLuaState::~CLuaState()
|
||||||
{
|
{
|
||||||
nlassert(_State);
|
nlassert(_State);
|
||||||
lua_close(_State);
|
|
||||||
|
#ifdef LUA_NEVRAX_VERSION
|
||||||
|
if (!LuaDebuggerIDE)
|
||||||
|
#else
|
||||||
|
if (1)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
lua_close(_State);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
#ifdef LUA_NEVRAX_VERSION
|
||||||
|
LuaDebuggerIDE->stopDebug(); // this will also close the lua state
|
||||||
|
LuaDebuggerIDE = NULL;
|
||||||
|
LuaDebuggerVisible = false;
|
||||||
|
#ifdef NL_OS_WINDOWS
|
||||||
|
nlassert(LuaDebuggerModule)
|
||||||
|
_CrtSetReportHook(NoOpReportHook); // prevent dump of memory leaks at this point
|
||||||
|
//::FreeLibrary(LuaDebuggerModule); // don't free the library now (seems that it destroy, the main window, causing
|
||||||
|
// a crash when the app window is destroyed for real...
|
||||||
|
// -> FreeLibrary will be called when the application is closed
|
||||||
|
LuaDebuggerModule = 0;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
// Clear Small Script Cache
|
// Clear Small Script Cache
|
||||||
_SmallScriptPool= 0;
|
_SmallScriptPool= 0;
|
||||||
|
@ -135,7 +222,7 @@ CLuaState::~CLuaState()
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
CLuaState *CLuaState::fromStatePointer(lua_State *state)
|
CLuaState *CLuaState::fromStatePointer(lua_State *state)
|
||||||
{
|
{
|
||||||
nlassert(state);
|
nlassert(state);
|
||||||
int initialStackSize = lua_gettop(state);
|
int initialStackSize = lua_gettop(state);
|
||||||
lua_checkstack(state, initialStackSize + 2);
|
lua_checkstack(state, initialStackSize + 2);
|
||||||
|
@ -161,9 +248,10 @@ struct CLuaReader
|
||||||
|
|
||||||
void CLuaState::loadScript(const std::string &code, const std::string &dbgSrc)
|
void CLuaState::loadScript(const std::string &code, const std::string &dbgSrc)
|
||||||
{
|
{
|
||||||
|
if (code.empty()) return;
|
||||||
struct CHelper
|
struct CHelper
|
||||||
{
|
{
|
||||||
static const char *luaChunkReaderFromString(lua_State *L, void *ud, size_t *sz)
|
static const char *luaChunkReaderFromString(lua_State * /* L */, void *ud, size_t *sz)
|
||||||
{
|
{
|
||||||
CLuaReader *rd = (CLuaReader *) ud;
|
CLuaReader *rd = (CLuaReader *) ud;
|
||||||
if (!rd->Done)
|
if (!rd->Done)
|
||||||
|
@ -182,6 +270,7 @@ void CLuaState::loadScript(const std::string &code, const std::string &dbgSrc)
|
||||||
CLuaReader rd;
|
CLuaReader rd;
|
||||||
rd.Str = &code;
|
rd.Str = &code;
|
||||||
rd.Done = false;
|
rd.Done = false;
|
||||||
|
|
||||||
int result = lua_load(_State, CHelper::luaChunkReaderFromString, (void *) &rd, dbgSrc.c_str());
|
int result = lua_load(_State, CHelper::luaChunkReaderFromString, (void *) &rd, dbgSrc.c_str());
|
||||||
if (result !=0)
|
if (result !=0)
|
||||||
{
|
{
|
||||||
|
@ -190,17 +279,17 @@ void CLuaState::loadScript(const std::string &code, const std::string &dbgSrc)
|
||||||
pop();
|
pop();
|
||||||
// throw error
|
// throw error
|
||||||
throw ELuaParseError(err);
|
throw ELuaParseError(err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
void CLuaState::executeScriptInternal(const std::string &code, const std::string &dbgSrc, int numRet)
|
void CLuaState::executeScriptInternal(const std::string &code, const std::string &dbgSrc, int numRet)
|
||||||
{
|
{
|
||||||
CLuaStackChecker lsc(this, numRet);
|
CLuaStackChecker lsc(this, numRet);
|
||||||
|
|
||||||
// load the script
|
// load the script
|
||||||
loadScript(code, dbgSrc);
|
loadScript(code, dbgSrc);
|
||||||
|
|
||||||
// execute
|
// execute
|
||||||
if (pcall(0, numRet) != 0)
|
if (pcall(0, numRet) != 0)
|
||||||
{
|
{
|
||||||
|
@ -240,7 +329,16 @@ bool CLuaState::executeFile(const std::string &pathName)
|
||||||
CIFile inputFile;
|
CIFile inputFile;
|
||||||
if(!inputFile.open(pathName))
|
if(!inputFile.open(pathName))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
#ifdef LUA_NEVRAX_VERSION
|
||||||
|
if (LuaDebuggerIDE)
|
||||||
|
{
|
||||||
|
std::string path = NLMISC::CPath::getCurrentPath() + "/" + pathName.c_str();
|
||||||
|
path = CPath::standardizeDosPath(path);
|
||||||
|
LuaDebuggerIDE->addFile(path.c_str());
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// load the script text
|
// load the script text
|
||||||
string script;
|
string script;
|
||||||
/*
|
/*
|
||||||
|
@ -253,9 +351,9 @@ bool CLuaState::executeFile(const std::string &pathName)
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
script.resize(NLMISC::CFile::getFileSize(pathName));
|
script.resize(NLMISC::CFile::getFileSize(pathName));
|
||||||
inputFile.serialBuffer((uint8 *) &script[0], script.size());
|
inputFile.serialBuffer((uint8 *) &script[0], (uint)script.size());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// execute the script text, with dbgSrc==filename (use @ for lua internal purpose)
|
// execute the script text, with dbgSrc==filename (use @ for lua internal purpose)
|
||||||
executeScriptInternal(script, string("@") + NLMISC::CFile::getFilename(pathName));
|
executeScriptInternal(script, string("@") + NLMISC::CFile::getFilename(pathName));
|
||||||
|
|
||||||
|
@ -265,15 +363,16 @@ bool CLuaState::executeFile(const std::string &pathName)
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
void CLuaState::executeSmallScript(const std::string &script)
|
void CLuaState::executeSmallScript(const std::string &script)
|
||||||
{
|
{
|
||||||
|
if (script.empty()) return;
|
||||||
// *** if the small script has not already been called before, parse it now
|
// *** if the small script has not already been called before, parse it now
|
||||||
TSmallScriptCache::iterator it= _SmallScriptCache.find(script);
|
TSmallScriptCache::iterator it= _SmallScriptCache.find(script);
|
||||||
if(it==_SmallScriptCache.end())
|
if(it==_SmallScriptCache.end())
|
||||||
{
|
{
|
||||||
CLuaStackChecker lsc(this);
|
CLuaStackChecker lsc(this);
|
||||||
|
|
||||||
// add it to a function
|
// add it to a function
|
||||||
loadScript(script, script);
|
loadScript(script, script);
|
||||||
|
|
||||||
// Assign the method to the NEL table: NELSmallScriptTable[_SmallScriptPool]= function
|
// Assign the method to the NEL table: NELSmallScriptTable[_SmallScriptPool]= function
|
||||||
push(_NELSmallScriptTableName); // 1:function 2:NelTableName
|
push(_NELSmallScriptTableName); // 1:function 2:NelTableName
|
||||||
getTable(LUA_REGISTRYINDEX); // 1:function 2:NelTable
|
getTable(LUA_REGISTRYINDEX); // 1:function 2:NelTable
|
||||||
|
@ -289,7 +388,7 @@ void CLuaState::executeSmallScript(const std::string &script)
|
||||||
}
|
}
|
||||||
|
|
||||||
// *** Execute the function associated to the script
|
// *** Execute the function associated to the script
|
||||||
CLuaStackChecker lsc(this);
|
CLuaStackChecker lsc(this);
|
||||||
push(_NELSmallScriptTableName); // 1:NelTableName
|
push(_NELSmallScriptTableName); // 1:NelTableName
|
||||||
getTable(LUA_REGISTRYINDEX); // 1:NelTable
|
getTable(LUA_REGISTRYINDEX); // 1:NelTable
|
||||||
// get the function at the given index in the "NELSmallScriptTable" table
|
// get the function at the given index in the "NELSmallScriptTable" table
|
||||||
|
@ -311,12 +410,11 @@ void CLuaState::executeSmallScript(const std::string &script)
|
||||||
// Stack: 1:NelTable
|
// Stack: 1:NelTable
|
||||||
pop(); // ....
|
pop(); // ....
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
void CLuaState::registerFunc(const char *name, lua_CFunction function)
|
void CLuaState::registerFunc(const char *name, lua_CFunction function)
|
||||||
{
|
{
|
||||||
lua_register(_State, name, function);
|
lua_register(_State, name, function);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -355,7 +453,7 @@ void CLuaState::push(TLuaWrappedFunction function)
|
||||||
lua_pushstring(ls, e.what());
|
lua_pushstring(ls, e.what());
|
||||||
// TODO : see if this is safe to call lua error there" ... (it does a long jump)
|
// TODO : see if this is safe to call lua error there" ... (it does a long jump)
|
||||||
lua_error(ls);
|
lua_error(ls);
|
||||||
}
|
}
|
||||||
return numResults;
|
return numResults;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -446,16 +544,16 @@ int CLuaState::pcallByName(const char *functionName, int nargs, int nresults
|
||||||
nlassert(functionName);
|
nlassert(functionName);
|
||||||
nlassert(isTable(funcTableIndex));
|
nlassert(isTable(funcTableIndex));
|
||||||
pushValue(funcTableIndex);
|
pushValue(funcTableIndex);
|
||||||
push(functionName);
|
push(functionName);
|
||||||
getTable(-2);
|
getTable(-2);
|
||||||
remove(-2); // get rid of the table
|
remove(-2); // get rid of the table
|
||||||
nlassert(getTop() >= nargs); // not enough arguments on the stack
|
nlassert(getTop() >= nargs); // not enough arguments on the stack
|
||||||
// insert function before its arguments
|
// insert function before its arguments
|
||||||
insert(- 1 - nargs);
|
insert(- 1 - nargs);
|
||||||
int result = pcall(nargs, nresults, errfunc);
|
int result = pcall(nargs, nresults, errfunc);
|
||||||
int currSize = getTop();
|
int currSize = getTop();
|
||||||
if (result == 0)
|
if (result == 0)
|
||||||
{
|
{
|
||||||
nlassert(currSize == initialStackSize - nargs + nresults);
|
nlassert(currSize == initialStackSize - nargs + nresults);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -488,7 +586,7 @@ void CLuaState::dumpStack()
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
void CLuaState::getStackAsString(std::string &dest)
|
void CLuaState::getStackAsString(std::string &dest)
|
||||||
{
|
{
|
||||||
dest = NLMISC::toString("Stack size = %d\n", getTop());
|
dest = NLMISC::toString("Stack size = %d\n", getTop());
|
||||||
CLuaStackChecker lsc(this);
|
CLuaStackChecker lsc(this);
|
||||||
for(int k = 1; k <= getTop(); ++k)
|
for(int k = 1; k <= getTop(); ++k)
|
||||||
{
|
{
|
||||||
|
@ -512,10 +610,10 @@ CLuaStackChecker::~CLuaStackChecker()
|
||||||
if (assertWanted)
|
if (assertWanted)
|
||||||
{
|
{
|
||||||
nlwarning("Lua stack size error : expected size is %d, current size is %d", _FinalWantedSize, currSize);
|
nlwarning("Lua stack size error : expected size is %d, current size is %d", _FinalWantedSize, currSize);
|
||||||
_State->dumpStack();
|
_State->dumpStack();
|
||||||
nlassert(0);
|
nlassert(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -527,37 +625,102 @@ CLuaStackChecker::~CLuaStackChecker()
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
void ELuaWrappedFunctionException::init(CLuaState *ls, const std::string &reason)
|
void ELuaWrappedFunctionException::init(CLuaState *ls, const std::string &reason)
|
||||||
{
|
{
|
||||||
/* // Print first Lua Stack Context
|
// Print first Lua Stack Context
|
||||||
CInterfaceManager *pIM= CInterfaceManager::getInstance();
|
/*
|
||||||
|
CInterfaceManager *pIM= CInterfaceManager::getInstance();
|
||||||
if(ls)
|
if(ls)
|
||||||
{
|
{
|
||||||
ls->getStackContext(_Reason, 1); // 1 because 0 is the current C function => return 1 for script called
|
ls->getStackContext(_Reason, 1); // 1 because 0 is the current C function => return 1 for script called
|
||||||
// enclose with cool colors
|
// enclose with cool colors
|
||||||
pIM->formatLuaStackContext(_Reason);
|
pIM->formatLuaStackContext(_Reason);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
// Append the reason
|
// Append the reason
|
||||||
_Reason+= reason;*/
|
_Reason+= reason;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
ELuaWrappedFunctionException::ELuaWrappedFunctionException(CLuaState *luaState)
|
ELuaWrappedFunctionException::ELuaWrappedFunctionException(CLuaState *luaState)
|
||||||
{
|
{
|
||||||
init(luaState, "");
|
init(luaState, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
ELuaWrappedFunctionException::ELuaWrappedFunctionException(CLuaState *luaState, const std::string &reason)
|
ELuaWrappedFunctionException::ELuaWrappedFunctionException(CLuaState *luaState, const std::string &reason)
|
||||||
{
|
{
|
||||||
init(luaState, reason);
|
init(luaState, reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
ELuaWrappedFunctionException::ELuaWrappedFunctionException(CLuaState *luaState, const char *format, ...)
|
ELuaWrappedFunctionException::ELuaWrappedFunctionException(CLuaState *luaState, const char *format, ...)
|
||||||
{
|
{
|
||||||
|
//H_AUTO(Lua_ELuaWrappedFunctionException_ELuaWrappedFunctionException)
|
||||||
std::string reason;
|
std::string reason;
|
||||||
NLMISC_CONVERT_VARGS (reason, format, NLMISC::MaxCStringSize);
|
NLMISC_CONVERT_VARGS (reason, format, NLMISC::MaxCStringSize);
|
||||||
init(luaState, reason);
|
init(luaState, reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//================================================================================
|
||||||
|
void CLuaState::newTable()
|
||||||
|
{
|
||||||
|
nlverify( lua_checkstack(_State, 1) );
|
||||||
|
lua_newtable(_State);
|
||||||
|
}
|
||||||
|
|
||||||
|
//================================================================================
|
||||||
|
int CLuaState::getGCCount()
|
||||||
|
{
|
||||||
|
return lua_getgccount(_State);
|
||||||
|
}
|
||||||
|
|
||||||
|
//================================================================================
|
||||||
|
int CLuaState::getGCThreshold()
|
||||||
|
{
|
||||||
|
//H_AUTO(Lua_CLuaState_getGCThreshold)
|
||||||
|
#ifdef LUA_NEVRAX_VERSION
|
||||||
|
return _GCThreshold;
|
||||||
|
#else
|
||||||
|
# if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 501
|
||||||
|
return lua_gc(_State, LUA_GCCOUNT, 0);
|
||||||
|
# else
|
||||||
|
return lua_getgcthreshold(_State);
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
//================================================================================
|
||||||
|
void CLuaState::setGCThreshold(int kb)
|
||||||
|
{
|
||||||
|
//H_AUTO(Lua_CLuaState_setGCThreshold)
|
||||||
|
#ifdef LUA_NEVRAX_VERSION
|
||||||
|
_GCThreshold = kb;
|
||||||
|
handleGC();
|
||||||
|
#else
|
||||||
|
# if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 501
|
||||||
|
lua_gc(_State, LUA_GCCOLLECT, kb);
|
||||||
|
# else
|
||||||
|
lua_setgcthreshold(_State, kb);
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
//================================================================================
|
||||||
|
void CLuaState::handleGC()
|
||||||
|
{
|
||||||
|
//H_AUTO(Lua_CLuaState_handleGC)
|
||||||
|
#ifdef LUA_NEVRAX_VERSION
|
||||||
|
// must handle gc manually with the refcounted version
|
||||||
|
int gcCount = getGCCount();
|
||||||
|
if (gcCount >= _GCThreshold)
|
||||||
|
{
|
||||||
|
nlwarning("Triggering GC : memory in use = %d kb, current threshold = %d kb", gcCount, _GCThreshold);
|
||||||
|
lua_setgcthreshold(_State, 0);
|
||||||
|
gcCount = getGCCount();
|
||||||
|
_GCThreshold = std::max(MinGCThreshold, gcCount * 2);
|
||||||
|
nlwarning("After GC : memory in use = %d kb, threshold = %d kb", gcCount, _GCThreshold);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#include "nel/misc/types_nl.h"
|
#include "nel/misc/types_nl.h"
|
||||||
#include "nel/misc/smart_ptr.h"
|
#include "nel/misc/smart_ptr.h"
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
{
|
{
|
||||||
#include <lua.h>
|
#include <lua.h>
|
||||||
}
|
}
|
||||||
|
@ -53,17 +53,17 @@ private:
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//**************************************************************************
|
// **************************************************************************
|
||||||
/** Helper class to restore the lua stack to the desired size when this object goes out of scope
|
/** Helper class to restore the lua stack to the desired size when this object goes out of scope
|
||||||
*/
|
*/
|
||||||
class CLuaStackRestorer
|
class CLuaStackRestorer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CLuaStackRestorer(CLuaState *state, int finalSize);
|
CLuaStackRestorer(CLuaState *state, int finalSize);
|
||||||
~CLuaStackRestorer();
|
~CLuaStackRestorer();
|
||||||
private:
|
private:
|
||||||
int _FinalSize;
|
int _FinalSize;
|
||||||
CLuaState *_State;
|
CLuaState *_State;
|
||||||
};
|
};
|
||||||
|
|
||||||
////////////////
|
////////////////
|
||||||
|
@ -74,7 +74,7 @@ class ELuaError : public NLMISC::Exception
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ELuaError() { CLuaStackChecker::incrementExceptionContextCounter(); }
|
ELuaError() { CLuaStackChecker::incrementExceptionContextCounter(); }
|
||||||
virtual ~ELuaError() { CLuaStackChecker::decrementExceptionContextCounter(); }
|
virtual ~ELuaError() throw() { CLuaStackChecker::decrementExceptionContextCounter(); }
|
||||||
ELuaError(const std::string &reason) : Exception(reason) { CLuaStackChecker::incrementExceptionContextCounter(); }
|
ELuaError(const std::string &reason) : Exception(reason) { CLuaStackChecker::incrementExceptionContextCounter(); }
|
||||||
// what(), plus append the Reason
|
// what(), plus append the Reason
|
||||||
virtual std::string luaWhat() const throw() {return NLMISC::toString("LUAError: %s", what());}
|
virtual std::string luaWhat() const throw() {return NLMISC::toString("LUAError: %s", what());}
|
||||||
|
@ -86,21 +86,23 @@ class ELuaParseError : public ELuaError
|
||||||
public:
|
public:
|
||||||
ELuaParseError() {}
|
ELuaParseError() {}
|
||||||
ELuaParseError(const std::string &reason) : ELuaError(reason) {}
|
ELuaParseError(const std::string &reason) : ELuaError(reason) {}
|
||||||
|
virtual ~ELuaParseError() throw() { }
|
||||||
// what(), plus append the Reason
|
// what(), plus append the Reason
|
||||||
virtual std::string luaWhat() const throw() {return NLMISC::toString("ELuaParseError: %s", what());}
|
virtual std::string luaWhat() const throw() {return NLMISC::toString("ELuaParseError: %s", what());}
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Exception thrown when something when wrong inside a wrapped function called by lua
|
/** Exception thrown when something went wrong inside a wrapped function called by lua
|
||||||
*/
|
*/
|
||||||
class ELuaWrappedFunctionException : public ELuaError
|
class ELuaWrappedFunctionException : public ELuaError
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ELuaWrappedFunctionException(CLuaState *luaState);
|
ELuaWrappedFunctionException(CLuaState *luaState);
|
||||||
ELuaWrappedFunctionException(CLuaState *luaState, const std::string &reason);
|
ELuaWrappedFunctionException(CLuaState *luaState, const std::string &reason);
|
||||||
ELuaWrappedFunctionException(CLuaState *luaState, const char *format, ...);
|
ELuaWrappedFunctionException(CLuaState *luaState, const char *format, ...);
|
||||||
virtual const char *what() const {return _Reason.c_str();}
|
virtual ~ELuaWrappedFunctionException() throw() { }
|
||||||
|
virtual const char *what() const throw() {return _Reason.c_str();}
|
||||||
protected:
|
protected:
|
||||||
void init(CLuaState *ls, const std::string &reason);
|
void init(CLuaState *ls, const std::string &reason);
|
||||||
protected:
|
protected:
|
||||||
std::string _Reason;
|
std::string _Reason;
|
||||||
};
|
};
|
||||||
|
@ -111,6 +113,7 @@ class ELuaExecuteError : public ELuaError
|
||||||
public:
|
public:
|
||||||
ELuaExecuteError() {}
|
ELuaExecuteError() {}
|
||||||
ELuaExecuteError(const std::string &reason) : ELuaError(reason) {}
|
ELuaExecuteError(const std::string &reason) : ELuaError(reason) {}
|
||||||
|
virtual ~ELuaExecuteError() throw() { }
|
||||||
// what(), plus append the Reason
|
// what(), plus append the Reason
|
||||||
virtual std::string luaWhat() const throw() {return NLMISC::toString("ELuaExecuteError: %s", what());}
|
virtual std::string luaWhat() const throw() {return NLMISC::toString("ELuaExecuteError: %s", what());}
|
||||||
};
|
};
|
||||||
|
@ -142,11 +145,13 @@ typedef int (* TLuaWrappedFunction) (CLuaState &ls);
|
||||||
|
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
/** C++ version of a lua state
|
/** C++ version of a lua state
|
||||||
*/
|
*/
|
||||||
class CLuaState : public NLMISC::CRefCount
|
class CLuaState : public NLMISC::CRefCount
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
typedef NLMISC::CRefPtr<CLuaState> TRefPtr;
|
||||||
|
|
||||||
// Create a new environement
|
// Create a new environement
|
||||||
CLuaState();
|
CLuaState();
|
||||||
~CLuaState();
|
~CLuaState();
|
||||||
|
@ -157,7 +162,7 @@ public:
|
||||||
// register a wrapped function
|
// register a wrapped function
|
||||||
void registerFunc(const char *name, TLuaWrappedFunction function);
|
void registerFunc(const char *name, TLuaWrappedFunction function);
|
||||||
// @}
|
// @}
|
||||||
|
|
||||||
|
|
||||||
/// \name Script execution
|
/// \name Script execution
|
||||||
// @{
|
// @{
|
||||||
|
@ -179,7 +184,6 @@ public:
|
||||||
bool executeScriptNoThrow(const std::string &code, int numRet = 0);
|
bool executeScriptNoThrow(const std::string &code, int numRet = 0);
|
||||||
|
|
||||||
/** Load a Script from a File (maybe in a BNP), and execute it
|
/** Load a Script from a File (maybe in a BNP), and execute it
|
||||||
* The script is executed, so it may contains only function/variable declaration
|
|
||||||
* \return false if file not found
|
* \return false if file not found
|
||||||
* \throw ELuaParseError, ELuaExecuteError
|
* \throw ELuaParseError, ELuaExecuteError
|
||||||
*/
|
*/
|
||||||
|
@ -241,7 +245,7 @@ public:
|
||||||
const void *toPointer(int index = -1);
|
const void *toPointer(int index = -1);
|
||||||
/** Helper functions : get value of the wanted type in the top table after conversion
|
/** Helper functions : get value of the wanted type in the top table after conversion
|
||||||
* A default value is used if the stack entry is NULL.
|
* A default value is used if the stack entry is NULL.
|
||||||
* If conversion fails then an exception is thrown (with optionnal msg)
|
* If conversion fails then an exception is thrown (with optional msg)
|
||||||
*/
|
*/
|
||||||
bool getTableBooleanValue(const char *name, bool defaultValue= false);
|
bool getTableBooleanValue(const char *name, bool defaultValue= false);
|
||||||
double getTableNumberValue(const char *name, double defaultValue= 0);
|
double getTableNumberValue(const char *name, double defaultValue= 0);
|
||||||
|
@ -258,7 +262,8 @@ public:
|
||||||
void pushLightUserData(void *); // push a light user data (use newUserData to push a full userdata)
|
void pushLightUserData(void *); // push a light user data (use newUserData to push a full userdata)
|
||||||
// metatables
|
// metatables
|
||||||
bool getMetaTable(int index = -1);
|
bool getMetaTable(int index = -1);
|
||||||
bool setMetaTable(int index = -1);
|
bool setMetaTable(int index = -1); // set the metatable at top of stack to the object at 'index' (usually -2), then pop the metatable
|
||||||
|
// even if asignment failed
|
||||||
// comparison
|
// comparison
|
||||||
bool equal(int index1, int index2);
|
bool equal(int index1, int index2);
|
||||||
bool rawEqual(int index1, int index2);
|
bool rawEqual(int index1, int index2);
|
||||||
|
@ -284,15 +289,15 @@ public:
|
||||||
void call(int nargs, int nresults);
|
void call(int nargs, int nresults);
|
||||||
int pcall(int nargs, int nresults, int errfunc = 0);
|
int pcall(int nargs, int nresults, int errfunc = 0);
|
||||||
/** Helper : Execute a function by name. Lookup for the function is done in the table at the index 'funcTableIndex'
|
/** Helper : Execute a function by name. Lookup for the function is done in the table at the index 'funcTableIndex'
|
||||||
* the behaviour is the same than with call of pcall.
|
* the behaviour is the same than with call of pcall.
|
||||||
*/
|
*/
|
||||||
int pcallByName(const char *functionName, int nargs, int nresults, int funcTableIndex = LUA_GLOBALSINDEX, int errfunc = 0);
|
int pcallByName(const char *functionName, int nargs, int nresults, int funcTableIndex = LUA_GLOBALSINDEX, int errfunc = 0);
|
||||||
|
|
||||||
// push a C closure (pop n element from the stack and associate with the function)
|
// push a C closure (pop n element from the stack and associate with the function)
|
||||||
void pushCClosure(lua_CFunction function, int n);
|
void pushCClosure(lua_CFunction function, int n);
|
||||||
// @}
|
// @}
|
||||||
|
|
||||||
|
|
||||||
/// \name Misc
|
/// \name Misc
|
||||||
// @{
|
// @{
|
||||||
/** Retrieve pointer to a CLuaState environment from its lua_State pointer, or NULL
|
/** Retrieve pointer to a CLuaState environment from its lua_State pointer, or NULL
|
||||||
|
@ -305,16 +310,19 @@ public:
|
||||||
// an assertion is raised if the index is not valid
|
// an assertion is raised if the index is not valid
|
||||||
void checkIndex(int index);
|
void checkIndex(int index);
|
||||||
|
|
||||||
// registering C function to use with a lua state pointer
|
// registering C function to use with a lua state pointer
|
||||||
void registerFunc(const char *name, lua_CFunction function);
|
void registerFunc(const char *name, lua_CFunction function);
|
||||||
|
|
||||||
// Garbage collector
|
// Garbage collector
|
||||||
int getGCCount(); // get memory in use in KB
|
int getGCCount(); // get memory in use in KB
|
||||||
int getGCThreshold(); // get max memory in KB
|
int getGCThreshold(); // get max memory in KB
|
||||||
void setGCThreshold(int kb); // set max memory in KB
|
void setGCThreshold(int kb); // set max memory in KB (no-op with ref-counted version)
|
||||||
|
|
||||||
|
// handle garbage collector for ref-counted version of lua (no-op with standard version, in which case gc handling is automatic)
|
||||||
|
void handleGC();
|
||||||
|
|
||||||
/** For Debug: get the Stack context of execution (filename / line)
|
/** For Debug: get the Stack context of execution (filename / line)
|
||||||
* \param stackLevel: get the context of execution of the given stackLevel.
|
* \param stackLevel: get the context of execution of the given stackLevel.
|
||||||
* 0 for the current function
|
* 0 for the current function
|
||||||
* 1 for the function that called 0
|
* 1 for the function that called 0
|
||||||
* 2 ....
|
* 2 ....
|
||||||
|
@ -327,8 +335,9 @@ public:
|
||||||
|
|
||||||
// for debug : dump the current content of the stack (no recursion)
|
// for debug : dump the current content of the stack (no recursion)
|
||||||
void dumpStack();
|
void dumpStack();
|
||||||
|
static void dumpStack(lua_State *ls);
|
||||||
void getStackAsString(std::string &dest);
|
void getStackAsString(std::string &dest);
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
lua_State *_State;
|
lua_State *_State;
|
||||||
|
@ -341,13 +350,20 @@ private:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// this object isn't intended to be copied
|
// this object isn't intended to be copied
|
||||||
CLuaState(const CLuaState &other) { nlassert(0); }
|
CLuaState(const CLuaState &/* other */):NLMISC::CRefCount() { nlassert(0); }
|
||||||
CLuaState &operator=(const CLuaState &other) { nlassert(0); return *this; }
|
CLuaState &operator=(const CLuaState &/* other */) { nlassert(0); return *this; }
|
||||||
|
|
||||||
void executeScriptInternal(const std::string &code, const std::string &dbgSrc, int numRet = 0);
|
void executeScriptInternal(const std::string &code, const std::string &dbgSrc, int numRet = 0);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Access to lua function
|
||||||
|
// one should not include lua.h directly because if a debugger is present, lua
|
||||||
|
// function pointer will be taken from a dynamic library.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//=============================================================================================
|
//=============================================================================================
|
||||||
// include implementation
|
// include implementation
|
||||||
#define RZ_INCLUDE_LUA_HELPER_INLINE
|
#define RZ_INCLUDE_LUA_HELPER_INLINE
|
||||||
|
|
|
@ -41,7 +41,7 @@ inline void CLuaState::checkIndex(int index)
|
||||||
{
|
{
|
||||||
// NB : more restrictive test that in the documentation there, because
|
// NB : more restrictive test that in the documentation there, because
|
||||||
// we don't expose the check stack function
|
// we don't expose the check stack function
|
||||||
nlassert( (index!=0 && abs(index) <= getTop())
|
nlassert( (index!=0 && abs(index) <= getTop())
|
||||||
|| index == LUA_REGISTRYINDEX
|
|| index == LUA_REGISTRYINDEX
|
||||||
|| index == LUA_GLOBALSINDEX
|
|| index == LUA_GLOBALSINDEX
|
||||||
);
|
);
|
||||||
|
@ -248,7 +248,7 @@ inline const void *CLuaState::toPointer(int index)
|
||||||
inline void CLuaState::push(bool value)
|
inline void CLuaState::push(bool value)
|
||||||
{
|
{
|
||||||
nlverify( lua_checkstack(_State, 1) );
|
nlverify( lua_checkstack(_State, 1) );
|
||||||
lua_pushboolean(_State, (int) value);
|
lua_pushboolean(_State, (int) value);
|
||||||
}
|
}
|
||||||
|
|
||||||
//================================================================================
|
//================================================================================
|
||||||
|
@ -347,50 +347,25 @@ inline void CLuaState::concat(int numElem)
|
||||||
lua_concat(_State, numElem);
|
lua_concat(_State, numElem);
|
||||||
}
|
}
|
||||||
|
|
||||||
//================================================================================
|
|
||||||
inline int CLuaState::getGCCount()
|
|
||||||
{
|
|
||||||
return lua_getgccount(_State);
|
|
||||||
}
|
|
||||||
|
|
||||||
//================================================================================
|
|
||||||
inline int CLuaState::getGCThreshold()
|
|
||||||
{
|
|
||||||
return lua_getgcthreshold(_State);
|
|
||||||
}
|
|
||||||
|
|
||||||
//================================================================================
|
|
||||||
inline void CLuaState::setGCThreshold(int kb)
|
|
||||||
{
|
|
||||||
lua_setgcthreshold(_State, kb);
|
|
||||||
}
|
|
||||||
|
|
||||||
//================================================================================
|
|
||||||
inline void CLuaState::newTable()
|
|
||||||
{
|
|
||||||
nlverify( lua_checkstack(_State, 1) );
|
|
||||||
lua_newtable(_State);
|
|
||||||
}
|
|
||||||
|
|
||||||
//================================================================================
|
//================================================================================
|
||||||
inline void CLuaState::getTable(int index)
|
inline void CLuaState::getTable(int index)
|
||||||
{
|
{
|
||||||
checkIndex(index);
|
checkIndex(index);
|
||||||
nlassert(isTable(index));
|
nlassert(isTable(index) || isUserData(index));
|
||||||
lua_gettable(_State, index);
|
lua_gettable(_State, index);
|
||||||
}
|
}
|
||||||
|
|
||||||
//================================================================================
|
//================================================================================
|
||||||
inline void CLuaState::rawGet(int index)
|
inline void CLuaState::rawGet(int index)
|
||||||
{
|
{
|
||||||
checkIndex(index);
|
checkIndex(index);
|
||||||
lua_rawget(_State, index);
|
lua_rawget(_State, index);
|
||||||
}
|
}
|
||||||
|
|
||||||
//================================================================================
|
//================================================================================
|
||||||
inline void CLuaState::setTable(int index)
|
inline void CLuaState::setTable(int index)
|
||||||
{
|
{
|
||||||
checkIndex(index);
|
checkIndex(index);
|
||||||
nlassert(getTop() >= 2);
|
nlassert(getTop() >= 2);
|
||||||
nlassert(isTable(index));
|
nlassert(isTable(index));
|
||||||
lua_settable(_State, index);
|
lua_settable(_State, index);
|
||||||
|
@ -399,41 +374,43 @@ inline void CLuaState::setTable(int index)
|
||||||
//================================================================================
|
//================================================================================
|
||||||
inline void CLuaState::rawSet(int index)
|
inline void CLuaState::rawSet(int index)
|
||||||
{
|
{
|
||||||
checkIndex(index);
|
checkIndex(index);
|
||||||
lua_rawset(_State, index);
|
lua_rawset(_State, index);
|
||||||
}
|
}
|
||||||
|
|
||||||
//================================================================================
|
//================================================================================
|
||||||
inline bool CLuaState::next(int index)
|
inline bool CLuaState::next(int index)
|
||||||
{
|
{
|
||||||
checkIndex(index);
|
//H_AUTO(Lua_CLuaState_next)
|
||||||
|
checkIndex(index);
|
||||||
return lua_next(_State, index) != 0;
|
return lua_next(_State, index) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//================================================================================
|
//================================================================================
|
||||||
inline void CLuaState::rawSetI(int index, int n)
|
inline void CLuaState::rawSetI(int index, int n)
|
||||||
{
|
{
|
||||||
checkIndex(index);
|
//H_AUTO(Lua_CLuaState_rawSetI)
|
||||||
|
checkIndex(index);
|
||||||
lua_rawseti(_State, index, n);
|
lua_rawseti(_State, index, n);
|
||||||
}
|
}
|
||||||
|
|
||||||
//================================================================================
|
//================================================================================
|
||||||
inline void CLuaState::rawGetI(int index, int n)
|
inline void CLuaState::rawGetI(int index, int n)
|
||||||
{
|
{
|
||||||
checkIndex(index);
|
checkIndex(index);
|
||||||
lua_rawgeti(_State, index, n);
|
lua_rawgeti(_State, index, n);
|
||||||
}
|
}
|
||||||
|
|
||||||
//================================================================================
|
//================================================================================
|
||||||
inline void CLuaState::call(int nargs, int nresults)
|
inline void CLuaState::call(int nargs, int nresults)
|
||||||
{
|
{
|
||||||
nlassert(getTop() >= nargs);
|
nlassert(getTop() >= nargs);
|
||||||
lua_call(_State, nargs, nresults);
|
lua_call(_State, nargs, nresults);
|
||||||
}
|
}
|
||||||
|
|
||||||
//================================================================================
|
//================================================================================
|
||||||
inline int CLuaState::pcall(int nargs, int nresults, int errfunc)
|
inline int CLuaState::pcall(int nargs, int nresults, int errfunc)
|
||||||
{
|
{
|
||||||
return lua_pcall(_State, nargs, nresults, errfunc);
|
return lua_pcall(_State, nargs, nresults, errfunc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,10 @@
|
||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="9.00"
|
Version="9,00"
|
||||||
Name="variable_parser"
|
Name="variable_parser"
|
||||||
ProjectGUID="{294FC08E-91F1-4838-AA4D-13A457E227E9}"
|
ProjectGUID="{294FC08E-91F1-4838-AA4D-13A457E227E9}"
|
||||||
RootNamespace="variable_parser"
|
RootNamespace="variable_parser"
|
||||||
Keyword="MFCProj"
|
|
||||||
TargetFrameworkVersion="131072"
|
|
||||||
>
|
>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
|
@ -40,20 +38,10 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
PreprocessorDefinitions="NDEBUG"
|
|
||||||
MkTypLibCompatible="true"
|
|
||||||
SuppressStartupBanner="true"
|
|
||||||
TargetEnvironment="1"
|
|
||||||
TypeLibraryName=".\Release/variable_parser.tlb"
|
|
||||||
HeaderFileName=""
|
|
||||||
/>
|
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="2"
|
Optimization="2"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="../../../../../code/nel/include"
|
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
|
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
|
@ -61,10 +49,6 @@
|
||||||
RuntimeTypeInfo="true"
|
RuntimeTypeInfo="true"
|
||||||
UsePrecompiledHeader="2"
|
UsePrecompiledHeader="2"
|
||||||
PrecompiledHeaderThrough="stdafx.h"
|
PrecompiledHeaderThrough="stdafx.h"
|
||||||
PrecompiledHeaderFile=".\Release/variable_parser.pch"
|
|
||||||
AssemblerListingLocation=".\Release/"
|
|
||||||
ObjectFile=".\Release/"
|
|
||||||
ProgramDataBaseFileName=".\Release/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
/>
|
/>
|
||||||
|
@ -85,7 +69,6 @@
|
||||||
OutputFile="variable_parser_r.exe"
|
OutputFile="variable_parser_r.exe"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
ProgramDatabaseFile=".\Release/variable_parser_r.pdb"
|
|
||||||
SubSystem="2"
|
SubSystem="2"
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="0"
|
DataExecutionPrevention="0"
|
||||||
|
@ -100,107 +83,6 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
|
||||||
Name="VCBscMakeTool"
|
|
||||||
SuppressStartupBanner="true"
|
|
||||||
OutputFile=".\Release/variable_parser.bsc"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCFxCopTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAppVerifierTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"
|
|
||||||
/>
|
|
||||||
</Configuration>
|
|
||||||
<Configuration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
OutputDirectory=".\Debug"
|
|
||||||
IntermediateDirectory=".\Debug"
|
|
||||||
ConfigurationType="1"
|
|
||||||
UseOfMFC="2"
|
|
||||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
|
||||||
CharacterSet="2"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
PreprocessorDefinitions="_DEBUG"
|
|
||||||
MkTypLibCompatible="true"
|
|
||||||
SuppressStartupBanner="true"
|
|
||||||
TargetEnvironment="1"
|
|
||||||
TypeLibraryName=".\Debug/variable_parser.tlb"
|
|
||||||
HeaderFileName=""
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="0"
|
|
||||||
AdditionalIncludeDirectories="../../../../../code/nel/include"
|
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
|
|
||||||
MinimalRebuild="true"
|
|
||||||
BasicRuntimeChecks="3"
|
|
||||||
RuntimeLibrary="3"
|
|
||||||
UsePrecompiledHeader="2"
|
|
||||||
PrecompiledHeaderThrough="stdafx.h"
|
|
||||||
PrecompiledHeaderFile=".\Debug/variable_parser.pch"
|
|
||||||
AssemblerListingLocation=".\Debug/"
|
|
||||||
ObjectFile=".\Debug/"
|
|
||||||
ProgramDataBaseFileName=".\Debug/"
|
|
||||||
WarningLevel="3"
|
|
||||||
SuppressStartupBanner="true"
|
|
||||||
DebugInformationFormat="4"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedResourceCompilerTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
PreprocessorDefinitions="_DEBUG"
|
|
||||||
Culture="1033"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
AdditionalDependencies="nlmisc_d.lib"
|
|
||||||
OutputFile="variable_parser_d.exe"
|
|
||||||
LinkIncremental="2"
|
|
||||||
SuppressStartupBanner="true"
|
|
||||||
GenerateDebugInformation="true"
|
|
||||||
ProgramDatabaseFile=".\Debug/variable_parser_d.pdb"
|
|
||||||
SubSystem="2"
|
|
||||||
RandomizedBaseAddress="1"
|
|
||||||
DataExecutionPrevention="0"
|
|
||||||
TargetMachine="1"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCALinkTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManifestTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXDCMakeTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCBscMakeTool"
|
|
||||||
SuppressStartupBanner="true"
|
|
||||||
OutputFile=".\Debug/variable_parser.bsc"
|
|
||||||
/>
|
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
|
@ -232,33 +114,22 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
PreprocessorDefinitions="NDEBUG"
|
|
||||||
MkTypLibCompatible="true"
|
|
||||||
SuppressStartupBanner="true"
|
|
||||||
TargetEnvironment="3"
|
|
||||||
TypeLibraryName=".\Release/variable_parser.tlb"
|
|
||||||
HeaderFileName=""
|
|
||||||
/>
|
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="2"
|
Optimization="3"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="2"
|
||||||
AdditionalIncludeDirectories="../../../../../code/nel/include"
|
EnableIntrinsicFunctions="true"
|
||||||
|
FavorSizeOrSpeed="1"
|
||||||
|
OmitFramePointers="true"
|
||||||
|
EnableFiberSafeOptimizations="true"
|
||||||
|
AdditionalIncludeDirectories=""
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
|
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
BufferSecurityCheck="false"
|
||||||
RuntimeTypeInfo="true"
|
|
||||||
UsePrecompiledHeader="2"
|
UsePrecompiledHeader="2"
|
||||||
PrecompiledHeaderThrough="stdafx.h"
|
PrecompiledHeaderThrough="stdafx.h"
|
||||||
PrecompiledHeaderFile=".\Release/variable_parser.pch"
|
|
||||||
AssemblerListingLocation=".\Release/"
|
|
||||||
ObjectFile=".\Release/"
|
|
||||||
ProgramDataBaseFileName=".\Release/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
SuppressStartupBanner="true"
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
@ -273,14 +144,10 @@
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="nlmisc_r.lib"
|
|
||||||
OutputFile="variable_parser_r.exe"
|
OutputFile="variable_parser_r.exe"
|
||||||
LinkIncremental="1"
|
|
||||||
SuppressStartupBanner="true"
|
|
||||||
ProgramDatabaseFile=".\Release/variable_parser_r.pdb"
|
|
||||||
SubSystem="2"
|
SubSystem="2"
|
||||||
RandomizedBaseAddress="1"
|
OptimizeReferences="2"
|
||||||
DataExecutionPrevention="0"
|
EnableCOMDATFolding="2"
|
||||||
TargetMachine="17"
|
TargetMachine="17"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
|
@ -293,9 +160,76 @@
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="Debug|Win32"
|
||||||
|
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||||
|
IntermediateDirectory="$(ConfigurationName)"
|
||||||
|
ConfigurationType="1"
|
||||||
|
UseOfMFC="2"
|
||||||
|
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||||
|
CharacterSet="2"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
Optimization="0"
|
||||||
|
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
|
||||||
|
MinimalRebuild="true"
|
||||||
|
BasicRuntimeChecks="3"
|
||||||
|
RuntimeLibrary="3"
|
||||||
|
UsePrecompiledHeader="2"
|
||||||
|
PrecompiledHeaderThrough="stdafx.h"
|
||||||
|
WarningLevel="3"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
OutputFile=".\Release/variable_parser.bsc"
|
DebugInformationFormat="4"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
PreprocessorDefinitions="_DEBUG"
|
||||||
|
Culture="1033"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLinkerTool"
|
||||||
|
OutputFile="variable_parser_d.exe"
|
||||||
|
LinkIncremental="2"
|
||||||
|
GenerateDebugInformation="true"
|
||||||
|
SubSystem="2"
|
||||||
|
TargetMachine="1"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManifestTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
|
@ -328,29 +262,15 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
PreprocessorDefinitions="_DEBUG"
|
|
||||||
MkTypLibCompatible="true"
|
|
||||||
SuppressStartupBanner="true"
|
|
||||||
TargetEnvironment="3"
|
|
||||||
TypeLibraryName=".\Debug/variable_parser.tlb"
|
|
||||||
HeaderFileName=""
|
|
||||||
/>
|
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories="../../../../../code/nel/include"
|
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
|
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
|
||||||
MinimalRebuild="true"
|
MinimalRebuild="true"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="3"
|
RuntimeLibrary="3"
|
||||||
UsePrecompiledHeader="2"
|
UsePrecompiledHeader="2"
|
||||||
PrecompiledHeaderThrough="stdafx.h"
|
PrecompiledHeaderThrough="stdafx.h"
|
||||||
PrecompiledHeaderFile=".\Debug/variable_parser.pch"
|
|
||||||
AssemblerListingLocation=".\Debug/"
|
|
||||||
ObjectFile=".\Debug/"
|
|
||||||
ProgramDataBaseFileName=".\Debug/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
DebugInformationFormat="3"
|
DebugInformationFormat="3"
|
||||||
|
@ -368,12 +288,10 @@
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="nlmisc_d.lib"
|
|
||||||
OutputFile="variable_parser_d.exe"
|
OutputFile="variable_parser_d.exe"
|
||||||
LinkIncremental="2"
|
LinkIncremental="2"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile=".\Debug/variable_parser_d.pdb"
|
|
||||||
SubSystem="2"
|
SubSystem="2"
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="0"
|
DataExecutionPrevention="0"
|
||||||
|
@ -388,11 +306,6 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
|
||||||
Name="VCBscMakeTool"
|
|
||||||
SuppressStartupBanner="true"
|
|
||||||
OutputFile=".\Debug/variable_parser.bsc"
|
|
||||||
/>
|
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
|
@ -414,42 +327,6 @@
|
||||||
<File
|
<File
|
||||||
RelativePath="lua_helper.cpp"
|
RelativePath="lua_helper.cpp"
|
||||||
>
|
>
|
||||||
<FileConfiguration
|
|
||||||
Name="Release|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
AdditionalIncludeDirectories=""
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
AdditionalIncludeDirectories=""
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Release|x64"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
AdditionalIncludeDirectories=""
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|x64"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
AdditionalIncludeDirectories=""
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="StdAfx.cpp"
|
RelativePath="StdAfx.cpp"
|
||||||
|
@ -465,7 +342,7 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Debug|Win32"
|
Name="Release|x64"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
|
@ -475,7 +352,7 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Release|x64"
|
Name="Debug|Win32"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
|
@ -498,118 +375,14 @@
|
||||||
<File
|
<File
|
||||||
RelativePath="variable_parser.cpp"
|
RelativePath="variable_parser.cpp"
|
||||||
>
|
>
|
||||||
<FileConfiguration
|
|
||||||
Name="Release|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
AdditionalIncludeDirectories=""
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
AdditionalIncludeDirectories=""
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Release|x64"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
AdditionalIncludeDirectories=""
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|x64"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
AdditionalIncludeDirectories=""
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="variable_parser.rc"
|
RelativePath="variable_parser.rc"
|
||||||
>
|
>
|
||||||
<FileConfiguration
|
|
||||||
Name="Release|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Release|x64"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|x64"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="variable_parserDlg.cpp"
|
RelativePath="variable_parserDlg.cpp"
|
||||||
>
|
>
|
||||||
<FileConfiguration
|
|
||||||
Name="Release|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
AdditionalIncludeDirectories=""
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
AdditionalIncludeDirectories=""
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Release|x64"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
AdditionalIncludeDirectories=""
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|x64"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
AdditionalIncludeDirectories=""
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
|
|
|
@ -198,7 +198,7 @@ void CVariableParserDlg::OnLUABrowse()
|
||||||
|
|
||||||
void CleanString( CSString &str )
|
void CleanString( CSString &str )
|
||||||
{
|
{
|
||||||
int i = str.size();
|
int i = (int)str.size();
|
||||||
bool ok = false;
|
bool ok = false;
|
||||||
|
|
||||||
while ( !ok && ( i > 0 ) )
|
while ( !ok && ( i > 0 ) )
|
||||||
|
@ -288,7 +288,7 @@ void CVariableParserDlg::BuildParseParameters( ParseParameters& params, uint lig
|
||||||
params.push_back( "" );
|
params.push_back( "" );
|
||||||
CString str = m_variables[colonne][0].c_str();
|
CString str = m_variables[colonne][0].c_str();
|
||||||
|
|
||||||
for ( uint j=m_nomVariables.size(); j>0; j-- )
|
for ( uint j=(uint)m_nomVariables.size(); j>0; j-- )
|
||||||
{
|
{
|
||||||
str.Replace( toString( "C%d", j-1 ).c_str(), params[j-1].c_str() );
|
str.Replace( toString( "C%d", j-1 ).c_str(), params[j-1].c_str() );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue