aboutsummaryrefslogtreecommitdiff
path: root/devel/electron29/files/patch-base_files_dir__reader__linux.h
diff options
context:
space:
mode:
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.h39
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) {