[Cmake-commits] [cmake-commits] king committed RegularExpression.cxx 1.10 1.11 RegularExpression.hxx.in 1.9 1.10
cmake-commits at cmake.org
cmake-commits at cmake.org
Fri May 16 11:06:21 EDT 2008
Update of /cvsroot/CMake/CMake/Source/kwsys
In directory public:/mounts/ram/cvs-serv3308/Source/kwsys
Modified Files:
RegularExpression.cxx RegularExpression.hxx.in
Log Message:
ENH: Add assignment operator to KWSys RegularExpression.
Index: RegularExpression.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/kwsys/RegularExpression.cxx,v
retrieving revision 1.10
retrieving revision 1.11
diff -C 2 -d -r1.10 -r1.11
*** RegularExpression.cxx 10 Mar 2006 17:01:29 -0000 1.10
--- RegularExpression.cxx 16 May 2008 15:06:18 -0000 1.11
***************
*** 75,78 ****
--- 75,110 ----
}
+ // operator= -- Copies the given regular expression.
+ RegularExpression& RegularExpression::operator= (const RegularExpression& rxp)
+ {
+ if ( !rxp.program )
+ {
+ this->program = 0;
+ return *this;
+ }
+ int ind;
+ this->progsize = rxp.progsize; // Copy regular expression size
+ this->program = new char[this->progsize]; // Allocate storage
+ for(ind=this->progsize; ind-- != 0;) // Copy regular expresion
+ this->program[ind] = rxp.program[ind];
+ this->startp[0] = rxp.startp[0]; // Copy pointers into last
+ this->endp[0] = rxp.endp[0]; // Successful "find" operation
+ this->regmust = rxp.regmust; // Copy field
+ if (rxp.regmust != 0) {
+ char* dum = rxp.program;
+ ind = 0;
+ while (dum != rxp.regmust) {
+ ++dum;
+ ++ind;
+ }
+ this->regmust = this->program + ind;
+ }
+ this->regstart = rxp.regstart; // Copy starting index
+ this->reganch = rxp.reganch; // Copy remaining private data
+ this->regmlen = rxp.regmlen; // Copy remaining private data
+
+ return *this;
+ }
+
// operator== -- Returns true if two regular expressions have the same
// compiled program for pattern matching.
Index: RegularExpression.hxx.in
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/kwsys/RegularExpression.hxx.in,v
retrieving revision 1.9
retrieving revision 1.10
diff -C 2 -d -r1.9 -r1.10
*** RegularExpression.hxx.in 22 Aug 2007 13:25:14 -0000 1.9
--- RegularExpression.hxx.in 16 May 2008 15:06:18 -0000 1.10
***************
*** 235,238 ****
--- 235,243 ----
/**
+ * Copy the given regular expression.
+ */
+ RegularExpression& operator= (const RegularExpression& rxp);
+
+ /**
* Returns true if two regular expressions have the same
* compiled program for pattern matching.
More information about the Cmake-commits
mailing list