aboutsummaryrefslogtreecommitdiff
path: root/sysutils/py-scandir/files/patch-scandir.py
blob: 7843ec201755c7fd15e72862635729a672ac74e4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Based on https://github.com/benhoyt/scandir/pull/109
# TODO: Upstream
# See: https://github.com/benhoyt/scandir/issues/122

From cfda49a07865097d3fdadc4e321881635ab2f795 Mon Sep 17 00:00:00 2001
From: "Elias M. Mariani" <marianielias@gmail.com>
Date: Mon, 6 Aug 2018 12:06:44 -0300
Subject: [PATCH] Fix dirent.h struct alignment on OpenBSD

--- scandir.py.orig	2019-03-09 17:51:39 UTC
+++ scandir.py
@@ -432,6 +432,16 @@ elif sys.platform.startswith(('linux', 'darwin', 'suno
                     ('__d_padding', ctypes.c_uint8 * 4),
                     ('d_name', ctypes.c_char * 256),
                 )
+            elif 'freebsd' in sys.platform:
+                _fields_ = (
+                    ('d_ino', ctypes.c_uint64),
+                    ('d_off', ctypes.c_uint64),
+                    ('d_reclen', ctypes.c_uint16),
+                    ('d_type', ctypes.c_uint8),
+                    ('d_namlen', ctypes.c_uint8),
+                    ('__d_padding', ctypes.c_uint8 * 4),
+                    ('d_name', ctypes.c_char * 256),
+                )
             else:
                 _fields_ = (
                     ('d_ino', ctypes.c_uint32),  # must be uint32, not ulong