mirror of
https://github.com/bkaradzic/bx.git
synced 2026-02-17 20:52:37 +01:00
commandline: Added ability to skip arguments.
This commit is contained in:
@@ -22,25 +22,31 @@ namespace bx
|
||||
|
||||
const char* findOption(const char* _long, const char* _default) const
|
||||
{
|
||||
const char* result = find('\0', _long, 1);
|
||||
const char* result = find(0, '\0', _long, 1);
|
||||
return result == NULL ? _default : result;
|
||||
}
|
||||
|
||||
const char* findOption(const char _short, const char* _long, const char* _default) const
|
||||
{
|
||||
const char* result = find(_short, _long, 1);
|
||||
const char* result = find(0, _short, _long, 1);
|
||||
return result == NULL ? _default : result;
|
||||
}
|
||||
|
||||
const char* findOption(const char* _long, int _numParams = 1) const
|
||||
{
|
||||
const char* result = find('\0', _long, _numParams);
|
||||
const char* result = find(0, '\0', _long, _numParams);
|
||||
return result;
|
||||
}
|
||||
|
||||
const char* findOption(const char _short, const char* _long = NULL, int _numParams = 1) const
|
||||
{
|
||||
const char* result = find(_short, _long, _numParams);
|
||||
const char* result = find(0, _short, _long, _numParams);
|
||||
return result;
|
||||
}
|
||||
|
||||
const char* findOption(int _skip, const char _short, const char* _long = NULL, int _numParams = 1) const
|
||||
{
|
||||
const char* result = find(_skip, _short, _long, _numParams);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -132,7 +138,7 @@ namespace bx
|
||||
}
|
||||
|
||||
private:
|
||||
const char* find(const char _short, const char* _long, int _numParams) const
|
||||
const char* find(int _skip, const char _short, const char* _long, int _numParams) const
|
||||
{
|
||||
for (int ii = 0; ii < m_argc; ++ii)
|
||||
{
|
||||
@@ -144,34 +150,46 @@ namespace bx
|
||||
{
|
||||
if (1 == strlen(arg) )
|
||||
{
|
||||
if (0 == _numParams)
|
||||
if (0 == _skip)
|
||||
{
|
||||
return "";
|
||||
}
|
||||
else if (ii+_numParams < m_argc
|
||||
&& '-' != *m_argv[ii+1] )
|
||||
{
|
||||
return m_argv[ii+1];
|
||||
if (0 == _numParams)
|
||||
{
|
||||
return "";
|
||||
}
|
||||
else if (ii+_numParams < m_argc
|
||||
&& '-' != *m_argv[ii+1] )
|
||||
{
|
||||
return m_argv[ii+1];
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
--_skip;
|
||||
ii += _numParams;
|
||||
}
|
||||
}
|
||||
else if (NULL != _long
|
||||
&& '-' == *arg
|
||||
&& 0 == stricmp(arg+1, _long) )
|
||||
{
|
||||
if (0 == _numParams)
|
||||
if (0 == _skip)
|
||||
{
|
||||
return "";
|
||||
}
|
||||
else if (ii+_numParams < m_argc
|
||||
&& '-' != *m_argv[ii+1] )
|
||||
{
|
||||
return m_argv[ii+1];
|
||||
if (0 == _numParams)
|
||||
{
|
||||
return "";
|
||||
}
|
||||
else if (ii+_numParams < m_argc
|
||||
&& '-' != *m_argv[ii+1] )
|
||||
{
|
||||
return m_argv[ii+1];
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
--_skip;
|
||||
ii += _numParams;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user