Browse Source

cmArchiveWrite: replace mode_t with int

Rationale:

* mode_t is not defined on all platforms
* bitmasking (operator &) promotes the value to an int anyway
* libarchive uses int in the public api starting with version 4
Daniel Pfeifer 9 years ago
parent
commit
373b2e483d
2 changed files with 5 additions and 5 deletions
  1. 1 1
      Source/cmArchiveWrite.cxx
  2. 4 4
      Source/cmArchiveWrite.h

+ 1 - 1
Source/cmArchiveWrite.cxx

@@ -268,7 +268,7 @@ bool cmArchiveWrite::AddFile(const char* file, size_t skip, const char* prefix)
   }
 
   if (this->PermissionsMask.IsSet()) {
-    mode_t perm = archive_entry_perm(e);
+    int perm = archive_entry_perm(e);
     archive_entry_set_perm(e, perm & this->PermissionsMask.Get());
   }
 

+ 4 - 4
Source/cmArchiveWrite.h

@@ -94,7 +94,7 @@ public:
   void SetMTime(std::string const& t) { this->MTime = t; }
 
   //! Sets the permissions of the added files/folders
-  void SetPermissions(mode_t permissions_)
+  void SetPermissions(int permissions_)
   {
     this->Permissions.Set(permissions_);
   }
@@ -107,7 +107,7 @@ public:
   //! The permissions will be copied from the existing file
   //! or folder. The mask will then be applied to unset
   //! some of them
-  void SetPermissionsMask(mode_t permissionsMask_)
+  void SetPermissionsMask(int permissionsMask_)
   {
     this->PermissionsMask.Set(permissionsMask_);
   }
@@ -177,8 +177,8 @@ private:
   //!@}
 
   //! Permissions on files/folders
-  cmArchiveWriteOptional<mode_t> Permissions;
-  cmArchiveWriteOptional<mode_t> PermissionsMask;
+  cmArchiveWriteOptional<int> Permissions;
+  cmArchiveWriteOptional<int> PermissionsMask;
 };
 
 #endif