annotate Include/py_curses.h @ 54294:dba767bc3155 legacy-trunk

remove mention of old ctypes version
author Benjamin Peterson <benjamin@python.org>
date Sat, 23 May 2009 20:59:09 +0000
parents 52294af4b663
children a70e72efc2ad
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15645
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
1
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
2 #ifndef Py_CURSES_H
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
3 #define Py_CURSES_H
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
4
26353
322b664a2022 Fix for #641455: curses module doesn't build on MacOSX. It turns out the
Jack Jansen <jack.jansen@cwi.nl>
parents: 21756
diff changeset
5 #ifdef __APPLE__
322b664a2022 Fix for #641455: curses module doesn't build on MacOSX. It turns out the
Jack Jansen <jack.jansen@cwi.nl>
parents: 21756
diff changeset
6 /*
322b664a2022 Fix for #641455: curses module doesn't build on MacOSX. It turns out the
Jack Jansen <jack.jansen@cwi.nl>
parents: 21756
diff changeset
7 ** On Mac OS X 10.2 [n]curses.h and stdlib.h use different guards
322b664a2022 Fix for #641455: curses module doesn't build on MacOSX. It turns out the
Jack Jansen <jack.jansen@cwi.nl>
parents: 21756
diff changeset
8 ** against multiple definition of wchar_t.
322b664a2022 Fix for #641455: curses module doesn't build on MacOSX. It turns out the
Jack Jansen <jack.jansen@cwi.nl>
parents: 21756
diff changeset
9 */
322b664a2022 Fix for #641455: curses module doesn't build on MacOSX. It turns out the
Jack Jansen <jack.jansen@cwi.nl>
parents: 21756
diff changeset
10 #ifdef _BSD_WCHAR_T_DEFINED_
322b664a2022 Fix for #641455: curses module doesn't build on MacOSX. It turns out the
Jack Jansen <jack.jansen@cwi.nl>
parents: 21756
diff changeset
11 #define _WCHAR_T
322b664a2022 Fix for #641455: curses module doesn't build on MacOSX. It turns out the
Jack Jansen <jack.jansen@cwi.nl>
parents: 21756
diff changeset
12 #endif
322b664a2022 Fix for #641455: curses module doesn't build on MacOSX. It turns out the
Jack Jansen <jack.jansen@cwi.nl>
parents: 21756
diff changeset
13 #endif
28104
bf866ab39dff Moved the Apple workaround for the guard define for wchar_t out of
Jack Jansen <jack.jansen@cwi.nl>
parents: 26353
diff changeset
14
29407
9bb6f3c5b04a fix the curses module build failure on FreeBSD, reported in SF #740234.
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 28104
diff changeset
15 #ifdef __FreeBSD__
9bb6f3c5b04a fix the curses module build failure on FreeBSD, reported in SF #740234.
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 28104
diff changeset
16 /*
9bb6f3c5b04a fix the curses module build failure on FreeBSD, reported in SF #740234.
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 28104
diff changeset
17 ** On FreeBSD, [n]curses.h and stdlib.h/wchar.h use different guards
9bb6f3c5b04a fix the curses module build failure on FreeBSD, reported in SF #740234.
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 28104
diff changeset
18 ** against multiple definition of wchar_t and wint_t.
9bb6f3c5b04a fix the curses module build failure on FreeBSD, reported in SF #740234.
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 28104
diff changeset
19 */
9bb6f3c5b04a fix the curses module build failure on FreeBSD, reported in SF #740234.
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 28104
diff changeset
20 #ifdef _XOPEN_SOURCE_EXTENDED
29672
4ff83c0b45e9 FreeBSD 5.x uses different wchar_t/win_t guards than earlier versions
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 29407
diff changeset
21 #ifndef __FreeBSD_version
4ff83c0b45e9 FreeBSD 5.x uses different wchar_t/win_t guards than earlier versions
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 29407
diff changeset
22 #include <osreldate.h>
4ff83c0b45e9 FreeBSD 5.x uses different wchar_t/win_t guards than earlier versions
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 29407
diff changeset
23 #endif
4ff83c0b45e9 FreeBSD 5.x uses different wchar_t/win_t guards than earlier versions
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 29407
diff changeset
24 #if __FreeBSD_version >= 500000
4ff83c0b45e9 FreeBSD 5.x uses different wchar_t/win_t guards than earlier versions
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 29407
diff changeset
25 #ifndef __wchar_t
4ff83c0b45e9 FreeBSD 5.x uses different wchar_t/win_t guards than earlier versions
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 29407
diff changeset
26 #define __wchar_t
4ff83c0b45e9 FreeBSD 5.x uses different wchar_t/win_t guards than earlier versions
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 29407
diff changeset
27 #endif
4ff83c0b45e9 FreeBSD 5.x uses different wchar_t/win_t guards than earlier versions
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 29407
diff changeset
28 #ifndef __wint_t
4ff83c0b45e9 FreeBSD 5.x uses different wchar_t/win_t guards than earlier versions
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 29407
diff changeset
29 #define __wint_t
4ff83c0b45e9 FreeBSD 5.x uses different wchar_t/win_t guards than earlier versions
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 29407
diff changeset
30 #endif
4ff83c0b45e9 FreeBSD 5.x uses different wchar_t/win_t guards than earlier versions
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 29407
diff changeset
31 #else
29407
9bb6f3c5b04a fix the curses module build failure on FreeBSD, reported in SF #740234.
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 28104
diff changeset
32 #ifndef _WCHAR_T
9bb6f3c5b04a fix the curses module build failure on FreeBSD, reported in SF #740234.
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 28104
diff changeset
33 #define _WCHAR_T
9bb6f3c5b04a fix the curses module build failure on FreeBSD, reported in SF #740234.
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 28104
diff changeset
34 #endif
9bb6f3c5b04a fix the curses module build failure on FreeBSD, reported in SF #740234.
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 28104
diff changeset
35 #ifndef _WINT_T
9bb6f3c5b04a fix the curses module build failure on FreeBSD, reported in SF #740234.
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 28104
diff changeset
36 #define _WINT_T
9bb6f3c5b04a fix the curses module build failure on FreeBSD, reported in SF #740234.
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 28104
diff changeset
37 #endif
9bb6f3c5b04a fix the curses module build failure on FreeBSD, reported in SF #740234.
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 28104
diff changeset
38 #endif
9bb6f3c5b04a fix the curses module build failure on FreeBSD, reported in SF #740234.
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 28104
diff changeset
39 #endif
29672
4ff83c0b45e9 FreeBSD 5.x uses different wchar_t/win_t guards than earlier versions
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 29407
diff changeset
40 #endif
29407
9bb6f3c5b04a fix the curses module build failure on FreeBSD, reported in SF #740234.
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 28104
diff changeset
41
28104
bf866ab39dff Moved the Apple workaround for the guard define for wchar_t out of
Jack Jansen <jack.jansen@cwi.nl>
parents: 26353
diff changeset
42 #ifdef HAVE_NCURSES_H
15645
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
43 #include <ncurses.h>
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
44 #else
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
45 #include <curses.h>
20413
1ca627c4c105 Check for term.h and include it on non-ncurses system to get a declaration
Martin v. Löwis <martin@v.loewis.de>
parents: 15645
diff changeset
46 #ifdef HAVE_TERM_H
1ca627c4c105 Check for term.h and include it on non-ncurses system to get a declaration
Martin v. Löwis <martin@v.loewis.de>
parents: 15645
diff changeset
47 /* for tigetstr, which is not declared in SysV curses */
1ca627c4c105 Check for term.h and include it on non-ncurses system to get a declaration
Martin v. Löwis <martin@v.loewis.de>
parents: 15645
diff changeset
48 #include <term.h>
1ca627c4c105 Check for term.h and include it on non-ncurses system to get a declaration
Martin v. Löwis <martin@v.loewis.de>
parents: 15645
diff changeset
49 #endif
15645
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
50 #endif
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
51
20647
dd78b1a71f3e Check for HP/UX curses problems. Define _XOPEN_SOURCE_EXTENDED and
Martin v. Löwis <martin@v.loewis.de>
parents: 20413
diff changeset
52 #ifdef HAVE_NCURSES_H
dd78b1a71f3e Check for HP/UX curses problems. Define _XOPEN_SOURCE_EXTENDED and
Martin v. Löwis <martin@v.loewis.de>
parents: 20413
diff changeset
53 /* configure was checking <curses.h>, but we will
dd78b1a71f3e Check for HP/UX curses problems. Define _XOPEN_SOURCE_EXTENDED and
Martin v. Löwis <martin@v.loewis.de>
parents: 20413
diff changeset
54 use <ncurses.h>, which has all these features. */
dd78b1a71f3e Check for HP/UX curses problems. Define _XOPEN_SOURCE_EXTENDED and
Martin v. Löwis <martin@v.loewis.de>
parents: 20413
diff changeset
55 #ifndef WINDOW_HAS_FLAGS
dd78b1a71f3e Check for HP/UX curses problems. Define _XOPEN_SOURCE_EXTENDED and
Martin v. Löwis <martin@v.loewis.de>
parents: 20413
diff changeset
56 #define WINDOW_HAS_FLAGS 1
dd78b1a71f3e Check for HP/UX curses problems. Define _XOPEN_SOURCE_EXTENDED and
Martin v. Löwis <martin@v.loewis.de>
parents: 20413
diff changeset
57 #endif
dd78b1a71f3e Check for HP/UX curses problems. Define _XOPEN_SOURCE_EXTENDED and
Martin v. Löwis <martin@v.loewis.de>
parents: 20413
diff changeset
58 #ifndef MVWDELCH_IS_EXPRESSION
dd78b1a71f3e Check for HP/UX curses problems. Define _XOPEN_SOURCE_EXTENDED and
Martin v. Löwis <martin@v.loewis.de>
parents: 20413
diff changeset
59 #define MVWDELCH_IS_EXPRESSION 1
dd78b1a71f3e Check for HP/UX curses problems. Define _XOPEN_SOURCE_EXTENDED and
Martin v. Löwis <martin@v.loewis.de>
parents: 20413
diff changeset
60 #endif
dd78b1a71f3e Check for HP/UX curses problems. Define _XOPEN_SOURCE_EXTENDED and
Martin v. Löwis <martin@v.loewis.de>
parents: 20413
diff changeset
61 #endif
dd78b1a71f3e Check for HP/UX curses problems. Define _XOPEN_SOURCE_EXTENDED and
Martin v. Löwis <martin@v.loewis.de>
parents: 20413
diff changeset
62
15645
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
63 #ifdef __cplusplus
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
64 extern "C" {
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
65 #endif
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
66
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
67 #define PyCurses_API_pointers 4
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
68
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
69 /* Type declarations */
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
70
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
71 typedef struct {
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
72 PyObject_HEAD
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
73 WINDOW *win;
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
74 } PyCursesWindowObject;
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
75
44350
26384b8180c7 #1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT. Macros for b/w compatibility are available.
Christian Heimes <christian@cheimes.de>
parents: 42334
diff changeset
76 #define PyCursesWindow_Check(v) (Py_TYPE(v) == &PyCursesWindow_Type)
15645
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
77
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
78 #ifdef CURSES_MODULE
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
79 /* This section is used when compiling _cursesmodule.c */
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
80
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
81 #else
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
82 /* This section is used in modules that use the _cursesmodule API */
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
83
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
84 static void **PyCurses_API;
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
85
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
86 #define PyCursesWindow_Type (*(PyTypeObject *) PyCurses_API[0])
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
87 #define PyCursesSetupTermCalled {if (! ((int (*)(void))PyCurses_API[1]) () ) return NULL;}
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
88 #define PyCursesInitialised {if (! ((int (*)(void))PyCurses_API[2]) () ) return NULL;}
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
89 #define PyCursesInitialisedColor {if (! ((int (*)(void))PyCurses_API[3]) () ) return NULL;}
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
90
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
91 #define import_curses() \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
92 { \
44439
0cbe94bea2c7 Modified PyImport_Import and PyImport_ImportModule to always use absolute imports by calling __import__ with an explicit level of 0
Christian Heimes <christian@cheimes.de>
parents: 44350
diff changeset
93 PyObject *module = PyImport_ImportModuleNoBlock("_curses"); \
15645
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
94 if (module != NULL) { \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
95 PyObject *module_dict = PyModule_GetDict(module); \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
96 PyObject *c_api_object = PyDict_GetItemString(module_dict, "_C_API"); \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
97 if (PyCObject_Check(c_api_object)) { \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
98 PyCurses_API = (void **)PyCObject_AsVoidPtr(c_api_object); \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
99 } \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
100 } \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
101 }
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
102 #endif
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
103
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
104 /* general error messages */
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
105 static char *catchall_ERR = "curses function returned ERR";
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
106 static char *catchall_NULL = "curses function returned NULL";
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
107
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
108 /* Function Prototype Macros - They are ugly but very, very useful. ;-)
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
109
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
110 X - function name
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
111 TYPE - parameter Type
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
112 ERGSTR - format string for construction of the return value
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
113 PARSESTR - format string for argument parsing
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
114 */
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
115
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
116 #define NoArgNoReturnFunction(X) \
21756
d60350d71b60 Patch #477752: Drop old-style getargs from curses.
Martin v. Löwis <martin@v.loewis.de>
parents: 20647
diff changeset
117 static PyObject *PyCurses_ ## X (PyObject *self) \
15645
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
118 { \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
119 PyCursesInitialised \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
120 return PyCursesCheckERR(X(), # X); }
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
121
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
122 #define NoArgOrFlagNoReturnFunction(X) \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
123 static PyObject *PyCurses_ ## X (PyObject *self, PyObject *args) \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
124 { \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
125 int flag = 0; \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
126 PyCursesInitialised \
21756
d60350d71b60 Patch #477752: Drop old-style getargs from curses.
Martin v. Löwis <martin@v.loewis.de>
parents: 20647
diff changeset
127 switch(PyTuple_Size(args)) { \
15645
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
128 case 0: \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
129 return PyCursesCheckERR(X(), # X); \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
130 case 1: \
21756
d60350d71b60 Patch #477752: Drop old-style getargs from curses.
Martin v. Löwis <martin@v.loewis.de>
parents: 20647
diff changeset
131 if (!PyArg_ParseTuple(args, "i;True(1) or False(0)", &flag)) return NULL; \
15645
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
132 if (flag) return PyCursesCheckERR(X(), # X); \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
133 else return PyCursesCheckERR(no ## X (), # X); \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
134 default: \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
135 PyErr_SetString(PyExc_TypeError, # X " requires 0 or 1 arguments"); \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
136 return NULL; } }
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
137
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
138 #define NoArgReturnIntFunction(X) \
21756
d60350d71b60 Patch #477752: Drop old-style getargs from curses.
Martin v. Löwis <martin@v.loewis.de>
parents: 20647
diff changeset
139 static PyObject *PyCurses_ ## X (PyObject *self) \
15645
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
140 { \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
141 PyCursesInitialised \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
142 return PyInt_FromLong((long) X()); }
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
143
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
144
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
145 #define NoArgReturnStringFunction(X) \
21756
d60350d71b60 Patch #477752: Drop old-style getargs from curses.
Martin v. Löwis <martin@v.loewis.de>
parents: 20647
diff changeset
146 static PyObject *PyCurses_ ## X (PyObject *self) \
15645
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
147 { \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
148 PyCursesInitialised \
47527
52294af4b663 This reverts r63675 based on the discussion in this thread:
Gregory P. Smith <greg@mad-scientist.com>
parents: 47294
diff changeset
149 return PyString_FromString(X()); }
15645
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
150
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
151 #define NoArgTrueFalseFunction(X) \
21756
d60350d71b60 Patch #477752: Drop old-style getargs from curses.
Martin v. Löwis <martin@v.loewis.de>
parents: 20647
diff changeset
152 static PyObject *PyCurses_ ## X (PyObject *self) \
15645
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
153 { \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
154 PyCursesInitialised \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
155 if (X () == FALSE) { \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
156 Py_INCREF(Py_False); \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
157 return Py_False; \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
158 } \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
159 Py_INCREF(Py_True); \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
160 return Py_True; }
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
161
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
162 #define NoArgNoReturnVoidFunction(X) \
21756
d60350d71b60 Patch #477752: Drop old-style getargs from curses.
Martin v. Löwis <martin@v.loewis.de>
parents: 20647
diff changeset
163 static PyObject *PyCurses_ ## X (PyObject *self) \
15645
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
164 { \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
165 PyCursesInitialised \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
166 X(); \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
167 Py_INCREF(Py_None); \
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
168 return Py_None; }
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
169
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
170 #ifdef __cplusplus
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
171 }
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
172 #endif
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
173
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
174 #endif /* !defined(Py_CURSES_H) */
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
175
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
176