summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorDavid Cole <david.cole@kitware.com>2012-10-31 20:33:56 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2012-10-31 20:33:56 (GMT)
commitbd394d42e6adda56d36236b33b61338e76e810ed (patch)
tree7bd7205a2493cfb1ad8947e8cd948929b7d6b7b5 /Source
parentb3927bce78103136d671c14cdd6de9d3ddf11e9c (diff)
parent14561e3d350e006206a7427d8a1c428e553c42b8 (diff)
downloadCMake-bd394d42e6adda56d36236b33b61338e76e810ed.zip
CMake-bd394d42e6adda56d36236b33b61338e76e810ed.tar.gz
CMake-bd394d42e6adda56d36236b33b61338e76e810ed.tar.bz2
Merge topic 'cpack-rez-error'
14561e3 Fix for possible Rez errors when creating dmg.
Diffstat (limited to 'Source')
-rw-r--r--Source/CPack/cmCPackDragNDropGenerator.cxx17
1 files changed, 16 insertions, 1 deletions
diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx
index 78cb1b6..d973c01 100644
--- a/Source/CPack/cmCPackDragNDropGenerator.cxx
+++ b/Source/CPack/cmCPackDragNDropGenerator.cxx
@@ -442,7 +442,22 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
line.replace(pos, 1, "\\\"");
pos = line.find('\"', pos+2);
}
- osf << " \"" << line << "\\n\"\n";
+ // break up long lines to avoid Rez errors
+ std::vector<std::string> lines;
+ const size_t max_line_length = 512;
+ for(size_t i=0; i<line.size(); i+= max_line_length)
+ {
+ int line_length = max_line_length;
+ if(i+max_line_length > line.size())
+ line_length = line.size()-i;
+ lines.push_back(line.substr(i, line_length));
+ }
+
+ for(size_t i=0; i<lines.size(); i++)
+ {
+ osf << " \"" << lines[i] << "\"\n";
+ }
+ osf << " \"\\n\"\n";
}
osf << "};\n";
osf << "\n";