summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/cmArchiveWrite.cxx9
1 files changed, 7 insertions, 2 deletions
diff --git a/Source/cmArchiveWrite.cxx b/Source/cmArchiveWrite.cxx
index e5eea79..f8d1aa7 100644
--- a/Source/cmArchiveWrite.cxx
+++ b/Source/cmArchiveWrite.cxx
@@ -200,8 +200,10 @@ bool cmArchiveWrite::Add(std::string path, size_t skip, const char* prefix,
bool cmArchiveWrite::AddPath(const char* path, size_t skip, const char* prefix,
bool recursive)
{
- if (!this->AddFile(path, skip, prefix)) {
- return false;
+ if (strcmp(path, ".") != 0 || this->Format != "zip") {
+ if (!this->AddFile(path, skip, prefix)) {
+ return false;
+ }
}
if ((!cmSystemTools::FileIsDirectory(path) || !recursive) ||
cmSystemTools::FileIsSymlink(path)) {
@@ -210,6 +212,9 @@ bool cmArchiveWrite::AddPath(const char* path, size_t skip, const char* prefix,
cmsys::Directory d;
if (d.Load(path)) {
std::string next = cmStrCat(path, '/');
+ if (next == "./" && this->Format == "zip") {
+ next.clear();
+ }
std::string::size_type end = next.size();
unsigned long n = d.GetNumberOfFiles();
for (unsigned long i = 0; i < n; ++i) {