summaryrefslogtreecommitdiff
path: root/dev-python/scandir/files/scandir-1.10.0-python3.9.patch
blob: c8683c1c6b9ba384e5dc2143d7424179a4599bf2 (plain)
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
https://github.com/benhoyt/scandir/commit/3396aa4155ffde8600a0e9ca50d5872569169b5d

From 3396aa4155ffde8600a0e9ca50d5872569169b5d Mon Sep 17 00:00:00 2001
From: Ben Hoyt <benhoyt@gmail.com>
Date: Mon, 24 Jan 2022 08:44:07 +1300
Subject: [PATCH] Add Python 3.10 to tests (#137)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fix PyStructSequence_UnnamedField build issues on Python 3.9/3.10

_scandir.c:663:7: error: conflicting type qualifiers for ‘PyStructSequence_UnnamedField’
  663 | char *PyStructSequence_UnnamedField = "unnamed field";
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/include/python3.10/Python.h:127,
                 from _scandir.c:14:
/usr/local/include/python3.10/structseq.h:22:27: note: previous declaration of ‘PyStructSequence_UnnamedField’ was here
   22 | extern const char * const PyStructSequence_UnnamedField;
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fixes https://github.com/benhoyt/scandir/pull/137
---
 _scandir.c                  | 10 +++++-----
 scandir.py                  |  2 +-
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/_scandir.c b/_scandir.c
index 6cc28c8..433483f 100644
--- a/_scandir.c
+++ b/_scandir.c
@@ -660,7 +660,7 @@ _pystat_fromstructstat(STRUCT_STAT *st)
     return v;
 }
 
-char *PyStructSequence_UnnamedField = "unnamed field";
+static char *scandir_unnamed_field = "unnamed field";
 
 PyDoc_STRVAR(stat_result__doc__,
 "stat_result: Result from stat, fstat, or lstat.\n\n\
@@ -681,7 +681,7 @@ static PyStructSequence_Field stat_result_fields[] = {
     {"st_uid",     "user ID of owner"},
     {"st_gid",     "group ID of owner"},
     {"st_size",    "total size, in bytes"},
-    /* The NULL is replaced with PyStructSequence_UnnamedField later. */
+    /* The NULL is replaced with scandir_unnamed_field later. */
     {NULL,         "integer time of last access"},
     {NULL,         "integer time of last modification"},
     {NULL,         "integer time of last change"},
@@ -1817,9 +1817,9 @@ init_scandir(void)
     if (!billion)
         INIT_ERROR;
 
-    stat_result_desc.fields[7].name = PyStructSequence_UnnamedField;
-    stat_result_desc.fields[8].name = PyStructSequence_UnnamedField;
-    stat_result_desc.fields[9].name = PyStructSequence_UnnamedField;
+    stat_result_desc.fields[7].name = scandir_unnamed_field;
+    stat_result_desc.fields[8].name = scandir_unnamed_field;
+    stat_result_desc.fields[9].name = scandir_unnamed_field;
     PyStructSequence_InitType(&StatResultType, &stat_result_desc);
     structseq_new = StatResultType.tp_new;
     StatResultType.tp_new = statresult_new;