| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- /*
- ** 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 <http://www.gnu.org/licenses/>.
- */
- /***********************************************************************************************
- *** 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;
- }
|