From f56bb35301836e56582a575a75864392a0177875 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20P=2E=20Tjern=C3=B8?= Date: Mon, 2 Dec 2013 19:31:46 -0800 Subject: Fix line endings. WHAMMY. --- mp/src/fgdlib/wckeyvalues.cpp | 564 +++++++++++++++++++++--------------------- 1 file changed, 282 insertions(+), 282 deletions(-) (limited to 'mp/src/fgdlib/wckeyvalues.cpp') diff --git a/mp/src/fgdlib/wckeyvalues.cpp b/mp/src/fgdlib/wckeyvalues.cpp index d802eb42..83e52007 100644 --- a/mp/src/fgdlib/wckeyvalues.cpp +++ b/mp/src/fgdlib/wckeyvalues.cpp @@ -1,282 +1,282 @@ -//========= Copyright Valve Corporation, All rights reserved. ============// -// -// Purpose: -// -//============================================================================= - -#include "fgdlib/WCKeyValues.h" - -// memdbgon must be the last include file in a .cpp file!!! -#include - - -//----------------------------------------------------------------------------- -// Purpose: Destructor. -//----------------------------------------------------------------------------- -MDkeyvalue::~MDkeyvalue(void) -{ -} - - -//----------------------------------------------------------------------------- -// Purpose: Assignment operator. -//----------------------------------------------------------------------------- -MDkeyvalue &MDkeyvalue::operator =(const MDkeyvalue &other) -{ - V_strcpy_safe(szKey, other.szKey); - V_strcpy_safe(szValue, other.szValue); - - return(*this); -} - -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- -void WCKVBase_Vector::RemoveKeyAt(int nIndex) -{ - Assert(nIndex >= 0); - Assert(nIndex < (int)m_KeyValues.Count()); - - if ((nIndex >= 0) && (nIndex < (int)m_KeyValues.Count())) - { - m_KeyValues.Remove(nIndex); - } -} - -//----------------------------------------------------------------------------- -// Purpose: Adds the key to the keyvalue array. Allows duplicate keys. -// -// NOTE: This should only be used for keyvalue lists that do not require -// unique key names! If you use this function then you should use GetCount -// and GetKey/Value by index rather than GetValue by key name. -//----------------------------------------------------------------------------- -void WCKVBase_Vector::AddKeyValue(const char *pszKey, const char *pszValue) -{ - if (!pszKey || !pszValue) - { - return; - } - - char szTmpKey[KEYVALUE_MAX_KEY_LENGTH]; - char szTmpValue[KEYVALUE_MAX_VALUE_LENGTH]; - - V_strcpy_safe(szTmpKey, pszKey); - V_strcpy_safe(szTmpValue, pszValue); - - StripEdgeWhiteSpace(szTmpKey); - StripEdgeWhiteSpace(szTmpValue); - - // - // Add the keyvalue to our list. - // - MDkeyvalue newkv; - V_strcpy_safe(newkv.szKey, szTmpKey); - V_strcpy_safe(newkv.szValue, szTmpValue); - m_KeyValues.AddToTail(newkv); -} - -int WCKVBase_Vector::FindByKeyName( const char *pKeyName ) const -{ - for ( int i=0; i < m_KeyValues.Count(); i++ ) - { - if ( V_stricmp( m_KeyValues[i].szKey, pKeyName ) == 0 ) - return i; - } - return GetInvalidIndex(); -} - -void WCKVBase_Vector::InsertKeyValue( const MDkeyvalue &kv ) -{ - m_KeyValues.AddToTail( kv ); -} - - -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- -void WCKVBase_Dict::RemoveKeyAt(int nIndex) -{ - m_KeyValues.RemoveAt(nIndex); -} - - -int WCKVBase_Dict::FindByKeyName( const char *pKeyName ) const -{ - return m_KeyValues.Find( pKeyName ); -} - -void WCKVBase_Dict::InsertKeyValue( const MDkeyvalue &kv ) -{ - m_KeyValues.Insert( kv.szKey, kv ); -} - - -//----------------------------------------------------------------------------- -// Purpose: Constructor. Sets the initial size of the keyvalue array. -//----------------------------------------------------------------------------- -template -WCKeyValuesT::WCKeyValuesT(void) -{ -} - - -//----------------------------------------------------------------------------- -// Purpose: Destructor. Deletes the contents of this keyvalue array. -//----------------------------------------------------------------------------- -template -WCKeyValuesT::~WCKeyValuesT(void) -{ - //int i = 0; - //while (i < m_KeyValues.GetSize()) - //{ - // delete m_KeyValues.GetAt(i++); - //} - - RemoveAll(); -} - - -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- -template -const char *WCKeyValuesT::GetValue(const char *pszKey, int *piIndex) const -{ - int i = FindByKeyName( pszKey ); - if ( i == GetInvalidIndex() ) - { - return NULL; - } - else - { - if(piIndex) - piIndex[0] = i; - - return m_KeyValues[i].szValue; - } -} - - -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- -template -void WCKeyValuesT::RemoveKey(const char *pszKey) -{ - SetValue(pszKey, (const char *)NULL); -} - - -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- -template -void WCKeyValuesT::SetValue(const char *pszKey, int iValue) -{ - char szValue[100]; - itoa(iValue, szValue, 10); - - SetValue(pszKey, szValue); -} - - -//----------------------------------------------------------------------------- -// Purpose: Strips leading and trailing whitespace from the string. -// Input : psz - -//----------------------------------------------------------------------------- -void StripEdgeWhiteSpace(char *psz) -{ - if (!psz || !*psz) - return; - - char *pszBase = psz; - - while (V_isspace(*psz)) - { - psz++; - } - - int iLen = strlen(psz) - 1; - - if ( iLen >= 0 ) - { - while (V_isspace(psz[iLen])) - { - psz[iLen--] = 0; - } - } - - if (psz != pszBase) - { - memmove(pszBase, psz, iLen + 2); - } -} - - -//----------------------------------------------------------------------------- -// Purpose: -// Input : pszKey - -// pszValue - -//----------------------------------------------------------------------------- -template -void WCKeyValuesT::SetValue(const char *pszKey, const char *pszValue) -{ - char szTmpKey[KEYVALUE_MAX_KEY_LENGTH]; - char szTmpValue[KEYVALUE_MAX_VALUE_LENGTH]; - - V_strcpy_safe(szTmpKey, pszKey); - - if (pszValue != NULL) - { - V_strcpy_safe(szTmpValue, pszValue); - } - else - { - szTmpValue[0] = 0; - } - - StripEdgeWhiteSpace(szTmpKey); - StripEdgeWhiteSpace(szTmpValue); - - int i = FindByKeyName( szTmpKey ); - if ( i == GetInvalidIndex() ) - { - if ( pszValue ) - { - // - // Add the keyvalue to our list. - // - MDkeyvalue newkv; - Q_strncpy( newkv.szKey, szTmpKey, sizeof( newkv.szKey ) ); - Q_strncpy( newkv.szValue, szTmpValue, sizeof( newkv.szValue ) ); - InsertKeyValue( newkv ); - } - } - else - { - if (pszValue != NULL) - { - V_strncpy(m_KeyValues[i].szValue, szTmpValue, sizeof(m_KeyValues[i].szValue)); - } - // - // If we are setting to a NULL value, delete the key. - // - else - { - RemoveKeyAt( i ); - } - } -} - - -//----------------------------------------------------------------------------- -// Purpose: -//----------------------------------------------------------------------------- -template -void WCKeyValuesT::RemoveAll(void) -{ - m_KeyValues.RemoveAll(); -} - - -// Explicit instantiations. -template class WCKeyValuesT; -template class WCKeyValuesT; - - - +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//============================================================================= + +#include "fgdlib/WCKeyValues.h" + +// memdbgon must be the last include file in a .cpp file!!! +#include + + +//----------------------------------------------------------------------------- +// Purpose: Destructor. +//----------------------------------------------------------------------------- +MDkeyvalue::~MDkeyvalue(void) +{ +} + + +//----------------------------------------------------------------------------- +// Purpose: Assignment operator. +//----------------------------------------------------------------------------- +MDkeyvalue &MDkeyvalue::operator =(const MDkeyvalue &other) +{ + V_strcpy_safe(szKey, other.szKey); + V_strcpy_safe(szValue, other.szValue); + + return(*this); +} + +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +void WCKVBase_Vector::RemoveKeyAt(int nIndex) +{ + Assert(nIndex >= 0); + Assert(nIndex < (int)m_KeyValues.Count()); + + if ((nIndex >= 0) && (nIndex < (int)m_KeyValues.Count())) + { + m_KeyValues.Remove(nIndex); + } +} + +//----------------------------------------------------------------------------- +// Purpose: Adds the key to the keyvalue array. Allows duplicate keys. +// +// NOTE: This should only be used for keyvalue lists that do not require +// unique key names! If you use this function then you should use GetCount +// and GetKey/Value by index rather than GetValue by key name. +//----------------------------------------------------------------------------- +void WCKVBase_Vector::AddKeyValue(const char *pszKey, const char *pszValue) +{ + if (!pszKey || !pszValue) + { + return; + } + + char szTmpKey[KEYVALUE_MAX_KEY_LENGTH]; + char szTmpValue[KEYVALUE_MAX_VALUE_LENGTH]; + + V_strcpy_safe(szTmpKey, pszKey); + V_strcpy_safe(szTmpValue, pszValue); + + StripEdgeWhiteSpace(szTmpKey); + StripEdgeWhiteSpace(szTmpValue); + + // + // Add the keyvalue to our list. + // + MDkeyvalue newkv; + V_strcpy_safe(newkv.szKey, szTmpKey); + V_strcpy_safe(newkv.szValue, szTmpValue); + m_KeyValues.AddToTail(newkv); +} + +int WCKVBase_Vector::FindByKeyName( const char *pKeyName ) const +{ + for ( int i=0; i < m_KeyValues.Count(); i++ ) + { + if ( V_stricmp( m_KeyValues[i].szKey, pKeyName ) == 0 ) + return i; + } + return GetInvalidIndex(); +} + +void WCKVBase_Vector::InsertKeyValue( const MDkeyvalue &kv ) +{ + m_KeyValues.AddToTail( kv ); +} + + +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +void WCKVBase_Dict::RemoveKeyAt(int nIndex) +{ + m_KeyValues.RemoveAt(nIndex); +} + + +int WCKVBase_Dict::FindByKeyName( const char *pKeyName ) const +{ + return m_KeyValues.Find( pKeyName ); +} + +void WCKVBase_Dict::InsertKeyValue( const MDkeyvalue &kv ) +{ + m_KeyValues.Insert( kv.szKey, kv ); +} + + +//----------------------------------------------------------------------------- +// Purpose: Constructor. Sets the initial size of the keyvalue array. +//----------------------------------------------------------------------------- +template +WCKeyValuesT::WCKeyValuesT(void) +{ +} + + +//----------------------------------------------------------------------------- +// Purpose: Destructor. Deletes the contents of this keyvalue array. +//----------------------------------------------------------------------------- +template +WCKeyValuesT::~WCKeyValuesT(void) +{ + //int i = 0; + //while (i < m_KeyValues.GetSize()) + //{ + // delete m_KeyValues.GetAt(i++); + //} + + RemoveAll(); +} + + +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +template +const char *WCKeyValuesT::GetValue(const char *pszKey, int *piIndex) const +{ + int i = FindByKeyName( pszKey ); + if ( i == GetInvalidIndex() ) + { + return NULL; + } + else + { + if(piIndex) + piIndex[0] = i; + + return m_KeyValues[i].szValue; + } +} + + +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +template +void WCKeyValuesT::RemoveKey(const char *pszKey) +{ + SetValue(pszKey, (const char *)NULL); +} + + +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +template +void WCKeyValuesT::SetValue(const char *pszKey, int iValue) +{ + char szValue[100]; + itoa(iValue, szValue, 10); + + SetValue(pszKey, szValue); +} + + +//----------------------------------------------------------------------------- +// Purpose: Strips leading and trailing whitespace from the string. +// Input : psz - +//----------------------------------------------------------------------------- +void StripEdgeWhiteSpace(char *psz) +{ + if (!psz || !*psz) + return; + + char *pszBase = psz; + + while (V_isspace(*psz)) + { + psz++; + } + + int iLen = strlen(psz) - 1; + + if ( iLen >= 0 ) + { + while (V_isspace(psz[iLen])) + { + psz[iLen--] = 0; + } + } + + if (psz != pszBase) + { + memmove(pszBase, psz, iLen + 2); + } +} + + +//----------------------------------------------------------------------------- +// Purpose: +// Input : pszKey - +// pszValue - +//----------------------------------------------------------------------------- +template +void WCKeyValuesT::SetValue(const char *pszKey, const char *pszValue) +{ + char szTmpKey[KEYVALUE_MAX_KEY_LENGTH]; + char szTmpValue[KEYVALUE_MAX_VALUE_LENGTH]; + + V_strcpy_safe(szTmpKey, pszKey); + + if (pszValue != NULL) + { + V_strcpy_safe(szTmpValue, pszValue); + } + else + { + szTmpValue[0] = 0; + } + + StripEdgeWhiteSpace(szTmpKey); + StripEdgeWhiteSpace(szTmpValue); + + int i = FindByKeyName( szTmpKey ); + if ( i == GetInvalidIndex() ) + { + if ( pszValue ) + { + // + // Add the keyvalue to our list. + // + MDkeyvalue newkv; + Q_strncpy( newkv.szKey, szTmpKey, sizeof( newkv.szKey ) ); + Q_strncpy( newkv.szValue, szTmpValue, sizeof( newkv.szValue ) ); + InsertKeyValue( newkv ); + } + } + else + { + if (pszValue != NULL) + { + V_strncpy(m_KeyValues[i].szValue, szTmpValue, sizeof(m_KeyValues[i].szValue)); + } + // + // If we are setting to a NULL value, delete the key. + // + else + { + RemoveKeyAt( i ); + } + } +} + + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +template +void WCKeyValuesT::RemoveAll(void) +{ + m_KeyValues.RemoveAll(); +} + + +// Explicit instantiations. +template class WCKeyValuesT; +template class WCKeyValuesT; + + + -- cgit v1.2.3