[cmake-commits] alex committed cmCacheManager.cxx 1.95 1.96

cmake-commits at cmake.org cmake-commits at cmake.org
Fri Jun 1 11:06:50 EDT 2007


Update of /cvsroot/CMake/CMake/Source
In directory public:/mounts/ram/cvs-serv5945

Modified Files:
	cmCacheManager.cxx 
Log Message:

ENH: also handle comments for variables which contain newlines

Alex


Index: cmCacheManager.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmCacheManager.cxx,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -d -r1.95 -r1.96
--- cmCacheManager.cxx	29 Nov 2006 20:59:15 -0000	1.95
+++ cmCacheManager.cxx	1 Jun 2007 15:06:48 -0000	1.96
@@ -224,7 +224,15 @@
       }
     while(realbuffer[0] == '/' && realbuffer[1] == '/')
       {
-      e.Properties["HELPSTRING"] += &realbuffer[2];
+      if ((realbuffer[2] == '\\') && (realbuffer[3]=='n'))
+        {
+        e.Properties["HELPSTRING"] += "\n";
+        e.Properties["HELPSTRING"] += &realbuffer[4];
+        }
+      else
+        {
+        e.Properties["HELPSTRING"] += &realbuffer[2];
+        }
       cmSystemTools::GetLineFromStream(fin, buffer);
       realbuffer = buffer.c_str();
       if(!fin)
@@ -657,27 +665,22 @@
     }
   std::string oneLine;
   std::string::size_type pos = 0;
-  std::string::size_type nextBreak = 60;
-  bool done = false;
-
-  while(!done)
+  for (std::string::size_type i=0; i<=end; i++)
     {
-    if(nextBreak >= end)
-      {
-      nextBreak = end;
-      done = true;
-      }
-    else
+    if ((i==end) 
+        || (helpString[i]=='\n')
+        || ((i-pos >= 60) && (helpString[i]==' ')))
       {
-      while(nextBreak < end && helpString[nextBreak] != ' ')
+      fout << "//";
+      if (helpString[pos] == '\n')
         {
-        nextBreak++;
+        pos++;
+        fout << "\\n";
         }
+      oneLine = helpString.substr(pos, i - pos);
+      fout << oneLine.c_str() << "\n";
+      pos = i;
       }
-    oneLine = helpString.substr(pos, nextBreak - pos);
-    fout << "//" << oneLine.c_str() << "\n";
-    pos = nextBreak;
-    nextBreak += 60;
     }
 }
 



More information about the Cmake-commits mailing list