diff -r cb9a3985df00 Include/py_curses.h --- a/Include/py_curses.h Thu May 08 17:43:25 2014 -0500 +++ b/Include/py_curses.h Fri May 09 10:55:48 2014 +0200 @@ -44,6 +44,21 @@ #endif #endif +#ifdef __NetBSD__ +/* +** On NetBSD, [n]curses.h and stdlib.h/wchar.h use different guards +** against multiple definition of wchar_t and wint_t. +*/ +#ifdef _XOPEN_SOURCE_EXTENDED +#ifndef _WCHAR_T +#define _WCHAR_T +#endif +#ifndef _WINT_T +#define _WINT_T +#endif +#endif +#endif + #ifdef HAVE_NCURSES_H #include #else diff -r cb9a3985df00 Modules/_cursesmodule.c --- a/Modules/_cursesmodule.c Thu May 08 17:43:25 2014 -0500 +++ b/Modules/_cursesmodule.c Fri May 09 10:55:48 2014 +0200 @@ -484,17 +484,9 @@ Window_OneArgNoReturnFunction(clearok, int, "i;True(1) or False(0)") Window_OneArgNoReturnFunction(idlok, int, "i;True(1) or False(0)") -#if defined(__NetBSD__) -Window_OneArgNoReturnVoidFunction(keypad, int, "i;True(1) or False(0)") -#else Window_OneArgNoReturnFunction(keypad, int, "i;True(1) or False(0)") -#endif Window_OneArgNoReturnFunction(leaveok, int, "i;True(1) or False(0)") -#if defined(__NetBSD__) -Window_OneArgNoReturnVoidFunction(nodelay, int, "i;True(1) or False(0)") -#else Window_OneArgNoReturnFunction(nodelay, int, "i;True(1) or False(0)") -#endif Window_OneArgNoReturnFunction(notimeout, int, "i;True(1) or False(0)") Window_OneArgNoReturnFunction(scrollok, int, "i;True(1) or False(0)") Window_OneArgNoReturnFunction(winsdelln, int, "i;nlines") @@ -1219,11 +1211,7 @@ return Py_BuildValue("C", rtn); } else { const char *knp; -#if defined(__NetBSD__) - knp = unctrl(rtn); -#else knp = keyname(rtn); -#endif return PyUnicode_FromString((knp == NULL) ? "" : knp); } } @@ -2658,7 +2646,6 @@ } #endif /* HAVE_CURSES_IS_TERM_RESIZED */ -#if !defined(__NetBSD__) static PyObject * PyCurses_KeyName(PyObject *self, PyObject *args) { @@ -2677,7 +2664,6 @@ return PyBytes_FromString((knp == NULL) ? "" : (char *)knp); } -#endif static PyObject * PyCurses_KillChar(PyObject *self) @@ -3284,9 +3270,7 @@ #ifdef HAVE_CURSES_IS_TERM_RESIZED {"is_term_resized", (PyCFunction)PyCurses_Is_Term_Resized, METH_VARARGS}, #endif -#if !defined(__NetBSD__) {"keyname", (PyCFunction)PyCurses_KeyName, METH_VARARGS}, -#endif {"killchar", (PyCFunction)PyCurses_KillChar, METH_NOARGS}, {"longname", (PyCFunction)PyCurses_longname, METH_NOARGS}, {"meta", (PyCFunction)PyCurses_Meta, METH_VARARGS}, @@ -3412,9 +3396,7 @@ SetDictInt("A_DIM", A_DIM); SetDictInt("A_BOLD", A_BOLD); SetDictInt("A_ALTCHARSET", A_ALTCHARSET); -#if !defined(__NetBSD__) SetDictInt("A_INVIS", A_INVIS); -#endif SetDictInt("A_PROTECT", A_PROTECT); SetDictInt("A_CHARTEXT", A_CHARTEXT); SetDictInt("A_COLOR", A_COLOR); @@ -3486,7 +3468,6 @@ int key; char *key_n; char *key_n2; -#if !defined(__NetBSD__) for (key=KEY_MIN;key < KEY_MAX; key++) { key_n = (char *)keyname(key); if (key_n == NULL || strcmp(key_n,"UNKNOWN KEY")==0) @@ -3514,7 +3495,6 @@ if (key_n2 != key_n) PyMem_Free(key_n2); } -#endif SetDictInt("KEY_MIN", KEY_MIN); SetDictInt("KEY_MAX", KEY_MAX); }