00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "Common/Str.h"
00012
00013
00014 KStr::KStr( char* pString, const char* pFormat, ... )
00015 {
00016 KStr sString;
00017 va_list arg_ptr;
00018 s32 Size = 0;
00019 char* pTmpString;
00020 char* pTmpString2;
00021 char* pStartTmpString;
00022 const char* pStr;
00023
00024 m_pString = NULL;
00025 m_Length = 0;
00026
00027
00028 pTmpString = strdup( pString );
00029 pStartTmpString = pTmpString2 = pTmpString;
00030
00031 va_start( arg_ptr, pFormat );
00032 pStr = pFormat;
00033
00034 while( *pTmpString2 )
00035 {
00036 if( *pTmpString2 == '%' )
00037 {
00038 *pTmpString2 = '\0';
00039 sString += KStr( pStartTmpString );
00040 pTmpString2 ++;
00041 switch( *pTmpString2 )
00042 {
00043 case 's':
00044 sString += KStr( pStr );
00045 pStr = va_arg( arg_ptr, const char* );
00046 pStartTmpString = pTmpString2 + 1;
00047 break;
00048 }
00049 }
00050 pTmpString2 ++;
00051 }
00052
00053 sString += KStr( pStartTmpString );
00054
00055 if( pTmpString )
00056 free( pTmpString );
00057
00058 *this = sString;
00059 }