Index: trunk/ab5.0/jenga/src/common/CmdLine.cpp
===================================================================
--- trunk/ab5.0/jenga/src/common/CmdLine.cpp	(revision 441)
+++ trunk/ab5.0/jenga/src/common/CmdLine.cpp	(revision 457)
@@ -7,11 +7,21 @@
 CmdLines::CmdLines( const std::string &strCmdLine )
 {
-	for( int i=0; i<(int)strCmdLine.size() ; i++ )
+	char temporary[8192];
+	int i = 0;
+	while( i<(int)strCmdLine.size() )
 	{
+		while( strCmdLine[i] == ' ' )
+		{
+			i ++;
+		}
+
+		if( strCmdLine[i] == '\0' )
+		{
+			break;
+		}
+
 		if( strCmdLine[i] == '/' )
 		{
 			i++;
-
-			char temporary[255];
 
 			// コマンド文字列（オプション名）を抽出
@@ -35,4 +45,10 @@
 			if( (int)strCmdLine.size() > i && strCmdLine[i] != '/' )
 			{
+				if( strCmdLine[i] == ':' )
+				{
+					// ':'はコマンドとパラメータの区切り文字として認識する
+					i++;
+				}
+
 				// パラメータを抽出
 				if( strCmdLine[i] == '\"' )
@@ -70,4 +86,37 @@
 			this->push_back( CmdLine( command, parameter ) );
 		}
+		else if( strCmdLine[i] == '\"' )
+		{
+			i++;
+			//ダブルクォートの中身を取り出す
+			for( int j=0; ; j++, i++ )
+			{
+				if( strCmdLine[i] == '\"' || strCmdLine[i] == '\0' )
+				{
+					temporary[j] = 0;
+
+					if( strCmdLine[i] == '\"' ) i++;
+					break;
+				}
+				temporary[j] = strCmdLine[i];
+			}
+
+			this->push_back( CmdLine( "", temporary ) );
+		}
+		else
+		{
+			//空白またはヌル文字以前を取り出す
+			for( int j=0; ; j++, i++ )
+			{
+				if( strCmdLine[i] == ' ' || strCmdLine[i] == '\0' )
+				{
+					temporary[j] = 0;
+					break;
+				}
+				temporary[j] = strCmdLine[i];
+			}
+
+			this->push_back( CmdLine( "", temporary ) );
+		}
 	}
 }
