diff options
Diffstat (limited to 'devel/electron29/files/patch-base_files_dir__reader__linux.h')
-rw-r--r-- | devel/electron29/files/patch-base_files_dir__reader__linux.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/devel/electron29/files/patch-base_files_dir__reader__linux.h b/devel/electron29/files/patch-base_files_dir__reader__linux.h new file mode 100644 index 000000000000..91bc1897532e --- /dev/null +++ b/devel/electron29/files/patch-base_files_dir__reader__linux.h @@ -0,0 +1,39 @@ +--- base/files/dir_reader_linux.h.orig 2022-08-31 12:19:35 UTC ++++ base/files/dir_reader_linux.h +@@ -16,10 +16,16 @@ + #include "base/logging.h" + #include "base/posix/eintr_wrapper.h" + ++#include "build/build_config.h" ++ + // See the comments in dir_reader_posix.h about this. + + namespace base { + ++#if BUILDFLAG(IS_BSD) ++#include <dirent.h> ++typedef struct dirent linux_dirent; ++#else + struct linux_dirent { + uint64_t d_ino; + int64_t d_off; +@@ -27,6 +33,7 @@ struct linux_dirent { + unsigned char d_type; + char d_name[0]; + }; ++#endif + + class DirReaderLinux { + public: +@@ -61,7 +68,11 @@ class DirReaderLinux { + if (offset_ != size_) + return true; + ++#if BUILDFLAG(IS_BSD) ++ const int r = getdents(fd_, reinterpret_cast<char *>(buf_), sizeof(buf_)); ++#else + const long r = syscall(__NR_getdents64, fd_, buf_, sizeof(buf_)); ++#endif + if (r == 0) + return false; + if (r < 0) { |