diff --git a/bindings/python/src/create_torrent.cpp b/bindings/python/src/create_torrent.cpp index 0ca1d1a97..b339a1c81 100644 --- a/bindings/python/src/create_torrent.cpp +++ b/bindings/python/src/create_torrent.cpp @@ -146,7 +146,7 @@ void bind_create_torrent() std::string (file_storage::*file_storage_file_path)(file_index_t, std::string const&) const = &file_storage::file_path; std::int64_t (file_storage::*file_storage_file_size)(file_index_t) const = &file_storage::file_size; std::int64_t (file_storage::*file_storage_file_offset)(file_index_t) const = &file_storage::file_offset; - int (file_storage::*file_storage_file_flags)(file_index_t) const = &file_storage::file_flags; + std::uint32_t (file_storage::*file_storage_file_flags)(file_index_t) const = &file_storage::file_flags; #ifndef TORRENT_NO_DEPRECATE file_entry (file_storage::*at)(int) const = &file_storage::at; diff --git a/include/libtorrent/file_storage.hpp b/include/libtorrent/file_storage.hpp index b389cbe6e..fb1a5aa0c 100644 --- a/include/libtorrent/file_storage.hpp +++ b/include/libtorrent/file_storage.hpp @@ -285,7 +285,7 @@ namespace libtorrent , std::string const& path, std::int64_t file_size , std::uint32_t file_flags = 0, char const* filehash = 0 , std::int64_t mtime = 0, string_view symlink_path = string_view()); - void add_file(std::string const& path, std::int64_t file_size, int file_flags = 0 + void add_file(std::string const& path, std::int64_t file_size, std::uint32_t file_flags = 0 , std::time_t mtime = 0, string_view symlink_path = string_view()); // renames the file at ``index`` to ``new_filename``. Keep in mind @@ -301,7 +301,7 @@ namespace libtorrent // instead, use the wchar -> utf8 conversion functions // and pass in utf8 strings TORRENT_DEPRECATED - void add_file(std::wstring const& p, std::int64_t size, int flags = 0 + void add_file(std::wstring const& p, std::int64_t size, std::uint32_t flags = 0 , std::time_t mtime = 0, string_view s_p = ""); TORRENT_DEPRECATED void rename_file(file_index_t index, std::wstring const& new_filename); @@ -489,7 +489,7 @@ namespace libtorrent // flags indicating various attributes for files in // a file_storage. - enum file_flags_t + enum file_flags_t : std::uint32_t { // this file is a pad file. The creator of the // torrent promises the file is entirely filled with @@ -515,7 +515,7 @@ namespace libtorrent // returns a bitmask of flags from file_flags_t that apply // to file at ``index``. - int file_flags(file_index_t index) const; + std::uint32_t file_flags(file_index_t index) const; // returns true if the file at the specified index has been renamed to // have an absolute path, i.e. is not anchored in the save path of the diff --git a/src/create_torrent.cpp b/src/create_torrent.cpp index 058f5878c..dd12594f1 100644 --- a/src/create_torrent.cpp +++ b/src/create_torrent.cpp @@ -58,7 +58,7 @@ namespace libtorrent inline bool ignore_subdir(std::string const& leaf) { return leaf == ".." || leaf == "."; } - int get_file_attributes(std::string const& p) + std::uint32_t get_file_attributes(std::string const& p) { #ifdef TORRENT_WINDOWS WIN32_FILE_ATTRIBUTE_DATA attr; @@ -74,8 +74,8 @@ namespace libtorrent return 0; #else struct stat s; - if (lstat(convert_to_native(p).c_str(), &s) < 0) return 0; - int file_attr = 0; + if (::lstat(convert_to_native(p).c_str(), &s) < 0) return 0; + std::uint32_t file_attr = 0; if (s.st_mode & S_IXUSR) file_attr += file_storage::attribute_executable; if (S_ISLNK(s.st_mode)) @@ -142,7 +142,7 @@ namespace libtorrent else { // #error use the fields from s - int file_flags = get_file_attributes(f); + std::uint32_t file_flags = get_file_attributes(f); // mask all bits to check if the file is a symlink if ((file_flags & file_storage::attribute_symlink) @@ -531,7 +531,7 @@ namespace libtorrent file_index_t const first(0); if (m_include_mtime) info["mtime"] = m_files.mtime(first); info["length"] = m_files.file_size(first); - int const flags = m_files.file_flags(first); + std::uint32_t const flags = m_files.file_flags(first); if (flags & (file_storage::flag_pad_file | file_storage::flag_hidden | file_storage::flag_executable @@ -582,7 +582,7 @@ namespace libtorrent path_e.list().push_back(entry(e)); } - int const flags = m_files.file_flags(i); + std::uint32_t const flags = m_files.file_flags(i); if (flags != 0) { std::string& attr = file_e["attr"].string(); diff --git a/src/file_storage.cpp b/src/file_storage.cpp index 30d15d005..3e4e6734d 100644 --- a/src/file_storage.cpp +++ b/src/file_storage.cpp @@ -338,7 +338,7 @@ namespace libtorrent void file_storage::add_file(file_entry const& fe, char const* filehash) { - int flags = 0; + std::uint32_t flags = 0; if (fe.pad_file) flags |= file_storage::flag_pad_file; if (fe.hidden_attribute) flags |= file_storage::flag_hidden; if (fe.executable_attribute) flags |= file_storage::flag_executable; @@ -361,7 +361,7 @@ namespace libtorrent } void file_storage::add_file(std::wstring const& file, std::int64_t file_size - , int file_flags, std::time_t mtime, string_view symlink_path) + , std::uint32_t file_flags, std::time_t mtime, string_view symlink_path) { add_file(wchar_utf8(file), file_size, file_flags, mtime, symlink_path); } @@ -540,7 +540,7 @@ namespace libtorrent } void file_storage::add_file(std::string const& path, std::int64_t file_size - , int file_flags, std::time_t mtime, string_view symlink_path) + , std::uint32_t file_flags, std::time_t mtime, string_view symlink_path) { add_file_borrow(nullptr, 0, path, file_size, file_flags, nullptr, mtime , symlink_path); @@ -813,14 +813,14 @@ namespace libtorrent return m_files[index].offset; } - int file_storage::file_flags(file_index_t const index) const + std::uint32_t file_storage::file_flags(file_index_t const index) const { TORRENT_ASSERT_PRECOND(index >= file_index_t(0) && index < end_file()); internal_file_entry const& fe = m_files[index]; - return (fe.pad_file ? flag_pad_file : 0) - | (fe.hidden_attribute ? flag_hidden : 0) - | (fe.executable_attribute ? flag_executable : 0) - | (fe.symlink_attribute ? flag_symlink : 0); + return (fe.pad_file ? flag_pad_file : 0u) + | (fe.hidden_attribute ? flag_hidden : 0u) + | (fe.executable_attribute ? flag_executable : 0u) + | (fe.symlink_attribute ? flag_symlink : 0u); } bool file_storage::file_absolute_path(file_index_t const index) const