53 lines
1.4 KiB
C++
53 lines
1.4 KiB
C++
#include <proto/command.hpp>
|
|
|
|
void CommandLine::createCommands(String commandLine)
|
|
{
|
|
// String commandLine(::GetCommandLine());
|
|
char *strPtr=(char*)commandLine;
|
|
|
|
mBlockCmds.remove();
|
|
strPtr=::strtok(commandLine," \0");
|
|
if(!strPtr)return;
|
|
mBlockCmds.insert(&String(strPtr));
|
|
while(TRUE)
|
|
{
|
|
strPtr=::strtok(0," \0");
|
|
if(!strPtr)break;
|
|
mBlockCmds.insert(&String(strPtr));
|
|
}
|
|
}
|
|
|
|
String CommandLine::argument(void)const
|
|
{
|
|
if(!mBlockCmds.size())return String();
|
|
return const_cast<Block<String>&>(mBlockCmds)[mArgIndex];
|
|
}
|
|
|
|
BOOL CommandLine::isOption(void)const
|
|
{
|
|
if(!mBlockCmds.size())return FALSE;
|
|
String strArgument(const_cast<Block<String>&>(mBlockCmds)[mArgIndex]);
|
|
if(strArgument.isNull()||*(strArgument)!='-')return FALSE;
|
|
return TRUE;
|
|
}
|
|
|
|
String CommandLine::option(void)const
|
|
{
|
|
String optionString;
|
|
|
|
if(!mBlockCmds.size())return String();
|
|
optionString=const_cast<Block<String>&>(mBlockCmds)[mArgIndex];
|
|
if(optionString.isNull()||*(optionString)!='-'||optionString.length()<2)return String();
|
|
return String(*((char*)optionString+1));
|
|
}
|
|
|
|
String CommandLine::optionArg(void)const
|
|
{
|
|
String optionString;
|
|
|
|
if(!mBlockCmds.size())return String();
|
|
optionString=const_cast<Block<String>&>(mBlockCmds)[mArgIndex];
|
|
if(optionString.isNull()||*(optionString)!='-'||optionString.length()<=2)return String();
|
|
return String(((char*)optionString+2));
|
|
}
|