Mercurial > repos > rliterman > csp2
comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/python3.8/py_curses.h @ 69:33d812a61356
planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author | jpayne |
---|---|
date | Tue, 18 Mar 2025 17:55:14 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
67:0e9998148a16 | 69:33d812a61356 |
---|---|
1 | |
2 #ifndef Py_CURSES_H | |
3 #define Py_CURSES_H | |
4 | |
5 #ifdef __APPLE__ | |
6 /* | |
7 ** On Mac OS X 10.2 [n]curses.h and stdlib.h use different guards | |
8 ** against multiple definition of wchar_t. | |
9 */ | |
10 #ifdef _BSD_WCHAR_T_DEFINED_ | |
11 #define _WCHAR_T | |
12 #endif | |
13 #endif /* __APPLE__ */ | |
14 | |
15 /* On FreeBSD, [n]curses.h and stdlib.h/wchar.h use different guards | |
16 against multiple definition of wchar_t and wint_t. */ | |
17 #if defined(__FreeBSD__) && defined(_XOPEN_SOURCE_EXTENDED) | |
18 # ifndef __wchar_t | |
19 # define __wchar_t | |
20 # endif | |
21 # ifndef __wint_t | |
22 # define __wint_t | |
23 # endif | |
24 #endif | |
25 | |
26 #if !defined(HAVE_CURSES_IS_PAD) && defined(WINDOW_HAS_FLAGS) | |
27 /* The following definition is necessary for ncurses 5.7; without it, | |
28 some of [n]curses.h set NCURSES_OPAQUE to 1, and then Python | |
29 can't get at the WINDOW flags field. */ | |
30 #define NCURSES_OPAQUE 0 | |
31 #endif | |
32 | |
33 #ifdef HAVE_NCURSES_H | |
34 #include <ncurses.h> | |
35 #else | |
36 #include <curses.h> | |
37 #endif | |
38 | |
39 #ifdef HAVE_NCURSES_H | |
40 /* configure was checking <curses.h>, but we will | |
41 use <ncurses.h>, which has some or all these features. */ | |
42 #if !defined(WINDOW_HAS_FLAGS) && !(NCURSES_OPAQUE+0) | |
43 #define WINDOW_HAS_FLAGS 1 | |
44 #endif | |
45 #if !defined(HAVE_CURSES_IS_PAD) && NCURSES_VERSION_PATCH+0 >= 20090906 | |
46 #define HAVE_CURSES_IS_PAD 1 | |
47 #endif | |
48 #ifndef MVWDELCH_IS_EXPRESSION | |
49 #define MVWDELCH_IS_EXPRESSION 1 | |
50 #endif | |
51 #endif | |
52 | |
53 #ifdef __cplusplus | |
54 extern "C" { | |
55 #endif | |
56 | |
57 #define PyCurses_API_pointers 4 | |
58 | |
59 /* Type declarations */ | |
60 | |
61 typedef struct { | |
62 PyObject_HEAD | |
63 WINDOW *win; | |
64 char *encoding; | |
65 } PyCursesWindowObject; | |
66 | |
67 #define PyCursesWindow_Check(v) (Py_TYPE(v) == &PyCursesWindow_Type) | |
68 | |
69 #define PyCurses_CAPSULE_NAME "_curses._C_API" | |
70 | |
71 | |
72 #ifdef CURSES_MODULE | |
73 /* This section is used when compiling _cursesmodule.c */ | |
74 | |
75 #else | |
76 /* This section is used in modules that use the _cursesmodule API */ | |
77 | |
78 static void **PyCurses_API; | |
79 | |
80 #define PyCursesWindow_Type (*(PyTypeObject *) PyCurses_API[0]) | |
81 #define PyCursesSetupTermCalled {if (! ((int (*)(void))PyCurses_API[1]) () ) return NULL;} | |
82 #define PyCursesInitialised {if (! ((int (*)(void))PyCurses_API[2]) () ) return NULL;} | |
83 #define PyCursesInitialisedColor {if (! ((int (*)(void))PyCurses_API[3]) () ) return NULL;} | |
84 | |
85 #define import_curses() \ | |
86 PyCurses_API = (void **)PyCapsule_Import(PyCurses_CAPSULE_NAME, 1); | |
87 | |
88 #endif | |
89 | |
90 /* general error messages */ | |
91 static const char catchall_ERR[] = "curses function returned ERR"; | |
92 static const char catchall_NULL[] = "curses function returned NULL"; | |
93 | |
94 #ifdef __cplusplus | |
95 } | |
96 #endif | |
97 | |
98 #endif /* !defined(Py_CURSES_H) */ | |
99 | |
100 |