annotate DEPENDENCIES/mingw32/Python27/include/py_curses.h @ 118:770eb830ec19 emscripten

Typo fix
author Chris Cannam
date Wed, 18 May 2016 16:14:08 +0100
parents 2a2c65a20a8b
children
rev   line source
Chris@87 1
Chris@87 2 #ifndef Py_CURSES_H
Chris@87 3 #define Py_CURSES_H
Chris@87 4
Chris@87 5 #ifdef __APPLE__
Chris@87 6 /*
Chris@87 7 ** On Mac OS X 10.2 [n]curses.h and stdlib.h use different guards
Chris@87 8 ** against multiple definition of wchar_t.
Chris@87 9 */
Chris@87 10 #ifdef _BSD_WCHAR_T_DEFINED_
Chris@87 11 #define _WCHAR_T
Chris@87 12 #endif
Chris@87 13
Chris@87 14 /* the following define is necessary for OS X 10.6; without it, the
Chris@87 15 Apple-supplied ncurses.h sets NCURSES_OPAQUE to 1, and then Python
Chris@87 16 can't get at the WINDOW flags field. */
Chris@87 17 #define NCURSES_OPAQUE 0
Chris@87 18 #endif /* __APPLE__ */
Chris@87 19
Chris@87 20 #ifdef __FreeBSD__
Chris@87 21 /*
Chris@87 22 ** On FreeBSD, [n]curses.h and stdlib.h/wchar.h use different guards
Chris@87 23 ** against multiple definition of wchar_t and wint_t.
Chris@87 24 */
Chris@87 25 #ifdef _XOPEN_SOURCE_EXTENDED
Chris@87 26 #ifndef __FreeBSD_version
Chris@87 27 #include <osreldate.h>
Chris@87 28 #endif
Chris@87 29 #if __FreeBSD_version >= 500000
Chris@87 30 #ifndef __wchar_t
Chris@87 31 #define __wchar_t
Chris@87 32 #endif
Chris@87 33 #ifndef __wint_t
Chris@87 34 #define __wint_t
Chris@87 35 #endif
Chris@87 36 #else
Chris@87 37 #ifndef _WCHAR_T
Chris@87 38 #define _WCHAR_T
Chris@87 39 #endif
Chris@87 40 #ifndef _WINT_T
Chris@87 41 #define _WINT_T
Chris@87 42 #endif
Chris@87 43 #endif
Chris@87 44 #endif
Chris@87 45 #endif
Chris@87 46
Chris@87 47 #ifdef HAVE_NCURSES_H
Chris@87 48 #include <ncurses.h>
Chris@87 49 #else
Chris@87 50 #include <curses.h>
Chris@87 51 #ifdef HAVE_TERM_H
Chris@87 52 /* for tigetstr, which is not declared in SysV curses */
Chris@87 53 #include <term.h>
Chris@87 54 #endif
Chris@87 55 #endif
Chris@87 56
Chris@87 57 #ifdef HAVE_NCURSES_H
Chris@87 58 /* configure was checking <curses.h>, but we will
Chris@87 59 use <ncurses.h>, which has all these features. */
Chris@87 60 #ifndef WINDOW_HAS_FLAGS
Chris@87 61 #define WINDOW_HAS_FLAGS 1
Chris@87 62 #endif
Chris@87 63 #ifndef MVWDELCH_IS_EXPRESSION
Chris@87 64 #define MVWDELCH_IS_EXPRESSION 1
Chris@87 65 #endif
Chris@87 66 #endif
Chris@87 67
Chris@87 68 #ifdef __cplusplus
Chris@87 69 extern "C" {
Chris@87 70 #endif
Chris@87 71
Chris@87 72 #define PyCurses_API_pointers 4
Chris@87 73
Chris@87 74 /* Type declarations */
Chris@87 75
Chris@87 76 typedef struct {
Chris@87 77 PyObject_HEAD
Chris@87 78 WINDOW *win;
Chris@87 79 } PyCursesWindowObject;
Chris@87 80
Chris@87 81 #define PyCursesWindow_Check(v) (Py_TYPE(v) == &PyCursesWindow_Type)
Chris@87 82
Chris@87 83 #define PyCurses_CAPSULE_NAME "_curses._C_API"
Chris@87 84
Chris@87 85
Chris@87 86 #ifdef CURSES_MODULE
Chris@87 87 /* This section is used when compiling _cursesmodule.c */
Chris@87 88
Chris@87 89 #else
Chris@87 90 /* This section is used in modules that use the _cursesmodule API */
Chris@87 91
Chris@87 92 static void **PyCurses_API;
Chris@87 93
Chris@87 94 #define PyCursesWindow_Type (*(PyTypeObject *) PyCurses_API[0])
Chris@87 95 #define PyCursesSetupTermCalled {if (! ((int (*)(void))PyCurses_API[1]) () ) return NULL;}
Chris@87 96 #define PyCursesInitialised {if (! ((int (*)(void))PyCurses_API[2]) () ) return NULL;}
Chris@87 97 #define PyCursesInitialisedColor {if (! ((int (*)(void))PyCurses_API[3]) () ) return NULL;}
Chris@87 98
Chris@87 99 #define import_curses() \
Chris@87 100 PyCurses_API = (void **)PyCapsule_Import(PyCurses_CAPSULE_NAME, 1);
Chris@87 101
Chris@87 102 #endif
Chris@87 103
Chris@87 104 /* general error messages */
Chris@87 105 static char *catchall_ERR = "curses function returned ERR";
Chris@87 106 static char *catchall_NULL = "curses function returned NULL";
Chris@87 107
Chris@87 108 /* Function Prototype Macros - They are ugly but very, very useful. ;-)
Chris@87 109
Chris@87 110 X - function name
Chris@87 111 TYPE - parameter Type
Chris@87 112 ERGSTR - format string for construction of the return value
Chris@87 113 PARSESTR - format string for argument parsing
Chris@87 114 */
Chris@87 115
Chris@87 116 #define NoArgNoReturnFunction(X) \
Chris@87 117 static PyObject *PyCurses_ ## X (PyObject *self) \
Chris@87 118 { \
Chris@87 119 PyCursesInitialised \
Chris@87 120 return PyCursesCheckERR(X(), # X); }
Chris@87 121
Chris@87 122 #define NoArgOrFlagNoReturnFunction(X) \
Chris@87 123 static PyObject *PyCurses_ ## X (PyObject *self, PyObject *args) \
Chris@87 124 { \
Chris@87 125 int flag = 0; \
Chris@87 126 PyCursesInitialised \
Chris@87 127 switch(PyTuple_Size(args)) { \
Chris@87 128 case 0: \
Chris@87 129 return PyCursesCheckERR(X(), # X); \
Chris@87 130 case 1: \
Chris@87 131 if (!PyArg_ParseTuple(args, "i;True(1) or False(0)", &flag)) return NULL; \
Chris@87 132 if (flag) return PyCursesCheckERR(X(), # X); \
Chris@87 133 else return PyCursesCheckERR(no ## X (), # X); \
Chris@87 134 default: \
Chris@87 135 PyErr_SetString(PyExc_TypeError, # X " requires 0 or 1 arguments"); \
Chris@87 136 return NULL; } }
Chris@87 137
Chris@87 138 #define NoArgReturnIntFunction(X) \
Chris@87 139 static PyObject *PyCurses_ ## X (PyObject *self) \
Chris@87 140 { \
Chris@87 141 PyCursesInitialised \
Chris@87 142 return PyInt_FromLong((long) X()); }
Chris@87 143
Chris@87 144
Chris@87 145 #define NoArgReturnStringFunction(X) \
Chris@87 146 static PyObject *PyCurses_ ## X (PyObject *self) \
Chris@87 147 { \
Chris@87 148 PyCursesInitialised \
Chris@87 149 return PyString_FromString(X()); }
Chris@87 150
Chris@87 151 #define NoArgTrueFalseFunction(X) \
Chris@87 152 static PyObject *PyCurses_ ## X (PyObject *self) \
Chris@87 153 { \
Chris@87 154 PyCursesInitialised \
Chris@87 155 if (X () == FALSE) { \
Chris@87 156 Py_INCREF(Py_False); \
Chris@87 157 return Py_False; \
Chris@87 158 } \
Chris@87 159 Py_INCREF(Py_True); \
Chris@87 160 return Py_True; }
Chris@87 161
Chris@87 162 #define NoArgNoReturnVoidFunction(X) \
Chris@87 163 static PyObject *PyCurses_ ## X (PyObject *self) \
Chris@87 164 { \
Chris@87 165 PyCursesInitialised \
Chris@87 166 X(); \
Chris@87 167 Py_INCREF(Py_None); \
Chris@87 168 return Py_None; }
Chris@87 169
Chris@87 170 #ifdef __cplusplus
Chris@87 171 }
Chris@87 172 #endif
Chris@87 173
Chris@87 174 #endif /* !defined(Py_CURSES_H) */
Chris@87 175
Chris@87 176