diff --git a/EXE_GdbObjects.cpp b/EXE_GdbObjects.cpp index 2af43a7..b347a47 100644 --- a/EXE_GdbObjects.cpp +++ b/EXE_GdbObjects.cpp @@ -219,12 +219,30 @@ ExeGetPrevName( int nId, const string& sName) return pGeomDB->GetPrevName( nId, sName) ; } +//----------------------------------------------------------------------------- +bool +ExeGetNameInGroup( int nGroupId, const string& sName, INTVECTOR& vIds) +{ + IGeomDB* pGeomDB = GetCurrGeomDB() ; + VERIFY_GEOMDB( pGeomDB, false) + if ( ! pGeomDB->ExistsObj( nGroupId)) + return false ; + // recupero gli oggetti con il nome desiderato + vIds.clear() ; + int nId = pGeomDB->GetFirstNameInGroup( nGroupId, sName) ; + while ( nId != GDB_ID_NULL) { + vIds.push_back( nId) ; + nId = pGeomDB->GetNextName( nId, sName) ; + } + return true ; +} + //----------------------------------------------------------------------------- bool ExeGetInfoInGroup( int nGroupId, const string& sKey, INTVECTOR& vIds) { IGeomDB* pGeomDB = GetCurrGeomDB() ; - VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL) + VERIFY_GEOMDB( pGeomDB, false) if ( ! pGeomDB->ExistsObj( nGroupId)) return false ; // recupero gli oggetti con l'info desiderata diff --git a/LUA_GdbObjects.cpp b/LUA_GdbObjects.cpp index e845d03..ecf592f 100644 --- a/LUA_GdbObjects.cpp +++ b/LUA_GdbObjects.cpp @@ -208,31 +208,6 @@ LuaGetPrev( lua_State* L) return 1 ; } -//------------------------------------------------------------------------------- -static int -LuaGetNameInGroup( lua_State* L) -{ - // 2 parametri : GroupId, sName - int nGroupId = GDB_ID_NULL ; - LuaGetParam( L, 1, nGroupId) ; - string sName ; - LuaGetParam( L, 2, sName) ; - LuaClearStack( L) ; - // recupero tutti gli oggetti del gruppo con il nome o suo inizio desiderato - INTVECTOR vId ; - int nId = ExeGetFirstNameInGroup( nGroupId, sName) ; - while ( nId != GDB_ID_NULL) { - vId.push_back ( nId) ; - nId = ExeGetNextName( nId, sName) ; - } - // restituisco il risultato - if ( ! vId.empty()) - LuaSetParam( L, vId) ; - else - LuaSetParam( L) ; - return 1 ; -} - //------------------------------------------------------------------------------- static int LuaGetFirstNameInGroup( lua_State* L) @@ -313,6 +288,27 @@ LuaGetPrevName( lua_State* L) return 1 ; } +//------------------------------------------------------------------------------- +static int +LuaGetNameInGroup( lua_State* L) +{ + // 2 parametri : GroupId, sName + int nGroupId = GDB_ID_NULL ; + LuaGetParam( L, 1, nGroupId) ; + string sName ; + LuaGetParam( L, 2, sName) ; + LuaClearStack( L) ; + // recupero tutti gli oggetti del gruppo con il nome o suo inizio desiderato + INTVECTOR vIds ; + bool bOk = ExeGetNameInGroup( nGroupId, sName, vIds) ; + // restituisco il risultato + if ( bOk) + LuaSetParam( L, vIds) ; + else + LuaSetParam( L) ; + return 1 ; +} + //------------------------------------------------------------------------------- static int LuaGetInfoInGroup( lua_State* L) @@ -327,7 +323,7 @@ LuaGetInfoInGroup( lua_State* L) INTVECTOR vIds ; bool bOk = ExeGetInfoInGroup( nGroupId, sKey, vIds) ; // restituisco il risultato - if ( bOk && ! vIds.empty()) + if ( bOk) LuaSetParam( L, vIds) ; else LuaSetParam( L) ; @@ -653,11 +649,11 @@ LuaInstallGdbObjects( LuaMgr& luaMgr) bOk = bOk && luaMgr.RegisterFunction( "EgtGetNext", LuaGetNext) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetLastInGroup", LuaGetLastInGroup) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetPrev", LuaGetPrev) ; - bOk = bOk && luaMgr.RegisterFunction( "EgtGetNameInGroup", LuaGetNameInGroup) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetFirstNameInGroup", LuaGetFirstNameInGroup) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetNextName", LuaGetNextName) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetLastNameInGroup", LuaGetLastNameInGroup) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetPrevName", LuaGetPrevName) ; + bOk = bOk && luaMgr.RegisterFunction( "EgtGetNameInGroup", LuaGetNameInGroup) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetInfoInGroup", LuaGetInfoInGroup) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetFirstGroupInGroup", LuaGetFirstGroupInGroup) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetNextGroup", LuaGetNextGroup) ;