File Annotation

Not logged in
dcdd144598 2011-02-23        kinaba: #include "stdafx.h"
dcdd144598 2011-02-23        kinaba: #include "cmdarg.h"
dcdd144598 2011-02-23        kinaba: #include "string.h"
dcdd144598 2011-02-23        kinaba: using namespace ki;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: //=========================================================================
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: Argv::Argv( const TCHAR* cmd )
dcdd144598 2011-02-23        kinaba: {
dcdd144598 2011-02-23        kinaba: 	TCHAR *p, endc;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	buf_ = (p=new TCHAR[::lstrlen(cmd)+1]);
dcdd144598 2011-02-23        kinaba: 	::lstrcpy( p, cmd );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 	while( *p != TEXT('\0') )
dcdd144598 2011-02-23        kinaba: 	{
dcdd144598 2011-02-23        kinaba: 		// 引数を区切る空白をスキップ
dcdd144598 2011-02-23        kinaba: 		while( *p == TEXT(' ') )
dcdd144598 2011-02-23        kinaba: 			++p;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 		// " だったら、その旨記録してさらに一個進める
dcdd144598 2011-02-23        kinaba: 		if( *p == TEXT('\"') )
dcdd144598 2011-02-23        kinaba: 			endc=TEXT('\"'), ++p;
dcdd144598 2011-02-23        kinaba: 		else
dcdd144598 2011-02-23        kinaba: 			endc=TEXT(' ');
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 		// 文字列終端なら終了
dcdd144598 2011-02-23        kinaba: 		if( *p == TEXT('\0') )
dcdd144598 2011-02-23        kinaba: 			break;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 		// 引数リストへ保存
dcdd144598 2011-02-23        kinaba: 		arg_.Add( p );
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 		// 引数の終わりへ…
dcdd144598 2011-02-23        kinaba: 		while( *p!=endc && *p!=TEXT('\0') )
dcdd144598 2011-02-23        kinaba: 			++p;
dcdd144598 2011-02-23        kinaba: 
dcdd144598 2011-02-23        kinaba: 		// 終わりは'\0'にすることによって、引数を区切る
dcdd144598 2011-02-23        kinaba: 		if( *p != TEXT('\0') )
dcdd144598 2011-02-23        kinaba: 			*p++ = TEXT('\0');
dcdd144598 2011-02-23        kinaba: 	}
dcdd144598 2011-02-23        kinaba: }