/* ** Command & Conquer Renegade(tm) ** Copyright 2025 Electronic Arts Inc. ** ** This program is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 3 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 General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with this program. If not, see . */ /*********************************************************************************************** *** Confidential - Westwood Studios *** *********************************************************************************************** * * * Project Name : LevelEdit * * * * $Archive:: /Commando/Code/Tools/LevelEdit/ProfileSection.cpp $Author:: Patrick_s * * * * $Modtime:: 2/23/99 10:26a $Revision:: 1 * * * *---------------------------------------------------------------------------------------------* * Functions: * * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ #include "StdAfx.H" #include "ProfileSection.H" ///////////////////////////////////////////////////////////////////////////// // // Get_Next_Key // bool ProfileSectionClass::Get_Next_Key ( CString *key_name, CString *key_value ) { // Assume failure bool ret_val = false; // State OK? ASSERT (m_pszCurrentKey); if (m_pszCurrentKey && (m_pszCurrentKey[0] != 0)) { // Make a temporary local copy of the key data TCHAR local_copy[256]; ::lstrcpyn (local_copy, m_pszCurrentKey, sizeof (local_copy)); // Get a pointer to the divider LPTSTR temp_string = ::strchr (local_copy, '='); temp_string[0] = 0; temp_string += 1; // // Strip off the comments (if any) // LPTSTR comment = ::strchr (local_copy, ';'); if (comment != NULL) { comment[0] = 0; } comment = ::strchr (temp_string, ';'); if (comment != NULL) { comment[0] = 0; } // Did the caller want the key name back? if (key_name != NULL) { // Everything on the left side of the divider is the key name *key_name = local_copy; key_name->TrimLeft (); key_name->TrimRight (); } // Did the caller want the key value back? if (key_value != NULL) { // Everything on the right side of the divider is the key value *key_value = temp_string; key_value->TrimLeft (); key_value->TrimRight (); } // Advance the pointer to point to the next key in the section m_pszCurrentKey += ::lstrlen (m_pszCurrentKey) + 1; // Success! ret_val = true; } // Return the TRUE/FALSE result code return ret_val; }