summaryrefslogtreecommitdiffstats
path: root/Source/CPack
diff options
context:
space:
mode:
authorClinton Stimpson <clinton@elemtech.com>2012-10-23 05:06:16 (GMT)
committerClinton Stimpson <clinton@elemtech.com>2012-10-23 05:06:16 (GMT)
commit14561e3d350e006206a7427d8a1c428e553c42b8 (patch)
tree033fccd87a2b5547395fa0d3d402d79258a52e72 /Source/CPack
parent9c42e9831d5e73b68467783c74c251b905b103d6 (diff)
downloadCMake-14561e3d350e006206a7427d8a1c428e553c42b8.zip
CMake-14561e3d350e006206a7427d8a1c428e553c42b8.tar.gz
CMake-14561e3d350e006206a7427d8a1c428e553c42b8.tar.bz2
Fix for possible Rez errors when creating dmg.
Rez appears to have a limit on the length of lines it processes. Break up long lines from a license file to avoid the error.
Diffstat (limited to 'Source/CPack')
-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";