annotate Include/py_curses.h @ 79675:c0a2294de787 2.7

Issue #16199: Backport 2to3 typo fix from 3.2.
author Chris Jerdonek <chris.jerdonek@gmail.com>
date Thu, 11 Oct 2012 16:15:46 -0700
parents d11fbc796499
children
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
55866
a70e72efc2ad Merged revisions 74693 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 47527
diff changeset
13
a70e72efc2ad Merged revisions 74693 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 47527
diff changeset
14 /* the following define is necessary for OS X 10.6; without it, the
a70e72efc2ad Merged revisions 74693 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 47527
diff changeset
15 Apple-supplied ncurses.h sets NCURSES_OPAQUE to 1, and then Python
a70e72efc2ad Merged revisions 74693 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 47527
diff changeset
16 can't get at the WINDOW flags field. */
a70e72efc2ad Merged revisions 74693 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 47527
diff changeset
17 #define NCURSES_OPAQUE 0
a70e72efc2ad Merged revisions 74693 via svnmerge from
Mark Dickinson <dickinsm@gmail.com>
parents: 47527
diff changeset
18 #endif /* __APPLE__ */
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
19
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
20 #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
21 /*
9bb6f3c5b04a fix the curses module build failure on FreeBSD, reported in SF #740234.
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 28104
diff changeset
22 ** 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
23 ** 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
24 */
9bb6f3c5b04a fix the curses module build failure on FreeBSD, reported in SF #740234.
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents: 28104
diff changeset
25 #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
26 #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
27 #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
28 #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
29 #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
30 #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
31 #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
32 #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
33 #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
34 #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
35 #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
36 #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
37 #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
38 #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
39 #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
40 #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
41 #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
42 #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
43 #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
44 #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
45 #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
46
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
47 #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
48 #include <ncurses.h>
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
49 #else
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
50 #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
51 #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
52 /* 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
53 #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
54 #endif
15645
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
55 #endif
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
56
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
57 #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
58 /* 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
59 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
60 #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
61 #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
62 #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
63 #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
64 #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
65 #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
66 #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
67
15645
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
68 #ifdef __cplusplus
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
69 extern "C" {
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
70 #endif
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
71
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
72 #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
73
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
74 /* Type declarations */
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
75
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
76 typedef struct {
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
77 PyObject_HEAD
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
78 WINDOW *win;
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
79 } PyCursesWindowObject;
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
80
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
81 #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
82
59998
d11fbc796499 Backported PyCapsule from 3.1, and converted most uses of
Larry Hastings <larry@hastings.org>
parents: 55866
diff changeset
83 #define PyCurses_CAPSULE_NAME "_curses._C_API"
d11fbc796499 Backported PyCapsule from 3.1, and converted most uses of
Larry Hastings <larry@hastings.org>
parents: 55866
diff changeset
84
d11fbc796499 Backported PyCapsule from 3.1, and converted most uses of
Larry Hastings <larry@hastings.org>
parents: 55866
diff changeset
85
15645
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
86 #ifdef CURSES_MODULE
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
87 /* 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
88
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
89 #else
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
90 /* 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
91
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
92 static void **PyCurses_API;
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
93
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
94 #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
95 #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
96 #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
97 #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
98
c13f5a20ea31 Added header file for C API exported by _cursesmodule.c
Andrew M. Kuchling <amk@amk.ca>
parents:
diff changeset
99 #define import_curses() \
59998
d11fbc796499 Backported PyCapsule from 3.1, and converted most uses of
Larry Hastings <larry@hastings.org>
parents: 55866
diff changeset
100 PyCurses_API = (void **)PyCapsule_Import(PyCurses_CAPSULE_NAME, 1);
d11fbc796499 Backported PyCapsule from 3.1, and converted most uses of
Larry Hastings <larry@hastings.org>
parents: 55866
diff changeset
101
15645
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