[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