[cmake-commits] alex committed cmCommandArgumentsHelper.h 1.1 1.2
cmCommandArgumentsHelper.cxx 1.3 1.4
cmake-commits at cmake.org
cmake-commits at cmake.org
Thu Aug 23 16:13:17 EDT 2007
Update of /cvsroot/CMake/CMake/Source
In directory public:/mounts/ram/cvs-serv17992
Modified Files:
cmCommandArgumentsHelper.h cmCommandArgumentsHelper.cxx
Log Message:
ENH: add support for a default value, fix case when there is no item except
the own group
Alex
Index: cmCommandArgumentsHelper.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmCommandArgumentsHelper.cxx,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- cmCommandArgumentsHelper.cxx 3 Jul 2007 20:10:50 -0000 1.3
+++ cmCommandArgumentsHelper.cxx 23 Aug 2007 20:13:15 -0000 1.4
@@ -23,6 +23,7 @@
:Key(key)
,Group(group)
,WasActive(false)
+,ArgumentsBeforeEmpty(true)
,CurrentIndex(0)
{
if (args!=0)
@@ -45,6 +46,7 @@
void cmCommandArgument::Follows(const cmCommandArgument* arg)
{
+ this->ArgumentsBeforeEmpty = false;
this->ArgumentsBefore.insert(arg);
}
@@ -52,6 +54,7 @@
{
if (group!=0)
{
+ this->ArgumentsBeforeEmpty = false;
for(std::vector<cmCommandArgument*>::const_iterator
argIt= group->ContainedArguments.begin();
argIt != group->ContainedArguments.end();
@@ -64,7 +67,7 @@
bool cmCommandArgument::MayFollow(const cmCommandArgument* current) const
{
- if (this->ArgumentsBefore.empty())
+ if (this->ArgumentsBeforeEmpty)
{
return true;
}
@@ -180,7 +183,7 @@
void cmCAString::DoReset()
{
- this->String = "";
+ this->String = this->DefaultString;
}
cmCAEnabler::cmCAEnabler(cmCommandArgumentsHelper* args,
Index: cmCommandArgumentsHelper.h
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmCommandArgumentsHelper.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- cmCommandArgumentsHelper.h 2 Jul 2007 19:43:21 -0000 1.1
+++ cmCommandArgumentsHelper.h 23 Aug 2007 20:13:15 -0000 1.2
@@ -87,6 +87,7 @@
std::set<const cmCommandArgument*> ArgumentsBefore;
cmCommandArgumentGroup* Group;
bool WasActive;
+ bool ArgumentsBeforeEmpty;
unsigned int CurrentIndex;
virtual bool DoConsume(const std::string& arg, unsigned int index) = 0;
@@ -128,8 +129,12 @@
/// Return the string
const std::string& GetString() const {return this->String;}
+ const char* GetCString() const {return this->String.c_str();}
+ void SetDefaultString(const char* text)
+ {this->DefaultString = (text ? text : "");}
private:
std::string String;
+ std::string DefaultString;
unsigned int DataStart;
virtual bool DoConsume(const std::string& arg, unsigned int index);
virtual void DoReset();
@@ -197,7 +202,6 @@
/// Parse the argument list
void Parse(const std::vector<std::string>* args,
std::vector<std::string>* unconsumedArgs);
-
/// Add an argument.
void AddArgument(cmCommandArgument* arg);
private:
More information about the Cmake-commits
mailing list