summaryrefslogtreecommitdiff
path: root/lang/python35
diff options
context:
space:
mode:
authorroy <roy>2017-01-02 20:52:46 +0000
committerroy <roy>2017-01-02 20:52:46 +0000
commit17441c8b214360b46b932f64e1b5cc431249030f (patch)
tree2cfd9d984b3df2ace8454885875ed0862110f3ad /lang/python35
parent5817711b07ab29ed24e61c349854883d8083f7af (diff)
downloadpkgsrc-17441c8b214360b46b932f64e1b5cc431249030f.tar.gz
se ncurses is_keypad function rather than directly looking at the
WINDOW structure. Include <term.h> when needed and rename lines and columns vars to avoid conflicts. Builds and works with NetBSD-8 curses, so use mk/curses.buildlink3.mk and test for getsyx(3) in curses rather than indescriminately linking to ncurses.
Diffstat (limited to 'lang/python35')
-rw-r--r--lang/python35/distinfo4
-rw-r--r--lang/python35/patches/patch-Modules___cursesmodule.c135
2 files changed, 126 insertions, 13 deletions
diff --git a/lang/python35/distinfo b/lang/python35/distinfo
index dfd007c51eb..c58fa67ac20 100644
--- a/lang/python35/distinfo
+++ b/lang/python35/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.6 2016/07/02 15:07:47 adam Exp $
+$NetBSD: distinfo,v 1.7 2017/01/02 20:52:46 roy Exp $
SHA1 (Python-3.5.2.tar.xz) = 4843aabacec5bc0cdd3e1f778faa926e532794d2
RMD160 (Python-3.5.2.tar.xz) = 709be7df28045c4fc8ed40cadd299478439f9522
@@ -8,7 +8,7 @@ SHA1 (patch-Include_py__curses.h) = 14359f8d0527eff08073c0aea60dfe8961d9255d
SHA1 (patch-Lib_distutils_command_install.py) = 9b44f339f65f029b7f17dbc654739a7ae3c12780
SHA1 (patch-Lib_distutils_unixccompiler.py) = 7d6df07921ad3357757d4681a964256b560b3f57
SHA1 (patch-Makefile.pre.in) = 5a27e9bc405b515f10b972ba9fc9421e05e4b7f1
-SHA1 (patch-Modules___cursesmodule.c) = 6bc66c9cb5320b4f90872024fc9c1e43d0b34928
+SHA1 (patch-Modules___cursesmodule.c) = cb3960bc91a5f815c8c4755e60124484b8c68266
SHA1 (patch-Modules_makesetup) = c9b571eb54fdf0b1e93524a6de6780e8c4119221
SHA1 (patch-Modules_nismodule.c) = bd290417c265846e238660180e60e76c0f5f696a
SHA1 (patch-Python_thread__pthread.h) = fb81eaa604b4ed7c1b64c3f4731d58a8aee257be
diff --git a/lang/python35/patches/patch-Modules___cursesmodule.c b/lang/python35/patches/patch-Modules___cursesmodule.c
index b9a2d6a9919..1408ba85273 100644
--- a/lang/python35/patches/patch-Modules___cursesmodule.c
+++ b/lang/python35/patches/patch-Modules___cursesmodule.c
@@ -1,11 +1,25 @@
-$NetBSD: patch-Modules___cursesmodule.c,v 1.2 2015/12/07 09:07:43 wiz Exp $
+$NetBSD: patch-Modules___cursesmodule.c,v 1.3 2017/01/02 20:52:46 roy Exp $
-Ncurses will be used by devel/py-curses and devel/py-cursespanel.
+Allow py-curses to use NetBSD curses as well as ncurses
http://bugs.python.org/issue21457
---- Modules/_cursesmodule.c.orig 2015-09-13 11:41:24.000000000 +0000
+--- Modules/_cursesmodule.c.orig 2016-06-25 21:38:38.000000000 +0000
+++ Modules/_cursesmodule.c
-@@ -486,17 +486,9 @@ Window_NoArg2TupleReturnFunction(getpary
+@@ -112,12 +112,7 @@ char *PyCursesVersion = "2.2";
+ #define CURSES_MODULE
+ #include "py_curses.h"
+
+-/* These prototypes are in <term.h>, but including this header
+- #defines many common symbols (such as "lines") which breaks the
+- curses module in other ways. So the code will just specify
+- explicit prototypes here. */
+-extern int setupterm(char *,int,int *);
+-#ifdef __sgi
++#ifdef HAVE_TERM_H
+ #include <term.h>
+ #endif
+
+@@ -486,17 +481,9 @@ Window_NoArg2TupleReturnFunction(getpary
Window_OneArgNoReturnFunction(clearok, int, "i;True(1) or False(0)")
Window_OneArgNoReturnFunction(idlok, int, "i;True(1) or False(0)")
@@ -23,7 +37,16 @@ http://bugs.python.org/issue21457
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")
-@@ -1156,11 +1148,7 @@ PyCursesWindow_GetKey(PyCursesWindowObje
+@@ -1070,7 +1057,7 @@ PyCursesWindow_EchoChar(PyCursesWindowOb
+ return NULL;
+
+ #ifdef WINDOW_HAS_FLAGS
+- if (self->win->_flags & _ISPAD)
++ if (is_keypad(self->win))
+ return PyCursesCheckERR(pechochar(self->win, ch | attr),
+ "echochar");
+ else
+@@ -1156,11 +1143,7 @@ PyCursesWindow_GetKey(PyCursesWindowObje
return Py_BuildValue("C", rtn);
} else {
const char *knp;
@@ -35,7 +58,54 @@ http://bugs.python.org/issue21457
return PyUnicode_FromString((knp == NULL) ? "" : knp);
}
}
-@@ -2595,7 +2583,6 @@ PyCurses_Is_Term_Resized(PyObject *self,
+@@ -1593,7 +1576,7 @@ PyCursesWindow_NoOutRefresh(PyCursesWind
+ #ifndef WINDOW_HAS_FLAGS
+ if (0)
+ #else
+- if (self->win->_flags & _ISPAD)
++ if (is_keypad(self->win))
+ #endif
+ {
+ switch(PyTuple_Size(args)) {
+@@ -1768,7 +1751,7 @@ PyCursesWindow_Refresh(PyCursesWindowObj
+ #ifndef WINDOW_HAS_FLAGS
+ if (0)
+ #else
+- if (self->win->_flags & _ISPAD)
++ if (is_keypad(self->win))
+ #endif
+ {
+ switch(PyTuple_Size(args)) {
+@@ -1835,7 +1818,7 @@ PyCursesWindow_SubWin(PyCursesWindowObje
+
+ /* printf("Subwin: %i %i %i %i \n", nlines, ncols, begin_y, begin_x); */
+ #ifdef WINDOW_HAS_FLAGS
+- if (self->win->_flags & _ISPAD)
++ if (is_keypad(self->win))
+ win = subpad(self->win, nlines, ncols, begin_y, begin_x);
+ else
+ #endif
+@@ -2576,15 +2559,15 @@ PyCurses_IntrFlush(PyObject *self, PyObj
+ static PyObject *
+ PyCurses_Is_Term_Resized(PyObject *self, PyObject *args)
+ {
+- int lines;
+- int columns;
++ int nlines;
++ int ncolumns;
+ int result;
+
+ PyCursesInitialised;
+
+- if (!PyArg_ParseTuple(args,"ii:is_term_resized", &lines, &columns))
++ if (!PyArg_ParseTuple(args,"ii:is_term_resized", &nlines, &ncolumns))
+ return NULL;
+- result = is_term_resized(lines, columns);
++ result = is_term_resized(nlines, ncolumns);
+ if (result == TRUE) {
+ Py_INCREF(Py_True);
+ return Py_True;
+@@ -2595,7 +2578,6 @@ PyCurses_Is_Term_Resized(PyObject *self,
}
#endif /* HAVE_CURSES_IS_TERM_RESIZED */
@@ -43,7 +113,7 @@ http://bugs.python.org/issue21457
static PyObject *
PyCurses_KeyName(PyObject *self, PyObject *args)
{
-@@ -2614,7 +2601,6 @@ PyCurses_KeyName(PyObject *self, PyObjec
+@@ -2614,7 +2596,6 @@ PyCurses_KeyName(PyObject *self, PyObjec
return PyBytes_FromString((knp == NULL) ? "" : knp);
}
@@ -51,7 +121,50 @@ http://bugs.python.org/issue21457
static PyObject *
PyCurses_KillChar(PyObject *self)
-@@ -3228,9 +3214,7 @@ static PyMethodDef PyCurses_methods[] =
+@@ -2879,16 +2860,16 @@ PyCurses_update_lines_cols(PyObject *sel
+ static PyObject *
+ PyCurses_ResizeTerm(PyObject *self, PyObject *args)
+ {
+- int lines;
+- int columns;
++ int nlines;
++ int ncolumns;
+ PyObject *result;
+
+ PyCursesInitialised;
+
+- if (!PyArg_ParseTuple(args,"ii:resizeterm", &lines, &columns))
++ if (!PyArg_ParseTuple(args,"ii:resizeterm", &nlines, &ncolumns))
+ return NULL;
+
+- result = PyCursesCheckERR(resizeterm(lines, columns), "resizeterm");
++ result = PyCursesCheckERR(resizeterm(nlines, ncolumns), "resizeterm");
+ if (!result)
+ return NULL;
+ if (!update_lines_cols())
+@@ -2902,17 +2883,17 @@ PyCurses_ResizeTerm(PyObject *self, PyOb
+ static PyObject *
+ PyCurses_Resize_Term(PyObject *self, PyObject *args)
+ {
+- int lines;
+- int columns;
++ int nlines;
++ int ncolumns;
+
+ PyObject *result;
+
+ PyCursesInitialised;
+
+- if (!PyArg_ParseTuple(args,"ii:resize_term", &lines, &columns))
++ if (!PyArg_ParseTuple(args,"ii:resize_term", &nlines, &ncolumns))
+ return NULL;
+
+- result = PyCursesCheckERR(resize_term(lines, columns), "resize_term");
++ result = PyCursesCheckERR(resize_term(nlines, ncolumns), "resize_term");
+ if (!result)
+ return NULL;
+ if (!update_lines_cols())
+@@ -3228,9 +3209,7 @@ static PyMethodDef PyCurses_methods[] =
#ifdef HAVE_CURSES_IS_TERM_RESIZED
{"is_term_resized", (PyCFunction)PyCurses_Is_Term_Resized, METH_VARARGS},
#endif
@@ -61,7 +174,7 @@ http://bugs.python.org/issue21457
{"killchar", (PyCFunction)PyCurses_KillChar, METH_NOARGS},
{"longname", (PyCFunction)PyCurses_longname, METH_NOARGS},
{"meta", (PyCFunction)PyCurses_Meta, METH_VARARGS},
-@@ -3359,9 +3343,7 @@ PyInit__curses(void)
+@@ -3359,9 +3338,7 @@ PyInit__curses(void)
SetDictInt("A_DIM", A_DIM);
SetDictInt("A_BOLD", A_BOLD);
SetDictInt("A_ALTCHARSET", A_ALTCHARSET);
@@ -71,7 +184,7 @@ http://bugs.python.org/issue21457
SetDictInt("A_PROTECT", A_PROTECT);
SetDictInt("A_CHARTEXT", A_CHARTEXT);
SetDictInt("A_COLOR", A_COLOR);
-@@ -3433,7 +3415,6 @@ PyInit__curses(void)
+@@ -3433,7 +3410,6 @@ PyInit__curses(void)
int key;
char *key_n;
char *key_n2;
@@ -79,7 +192,7 @@ http://bugs.python.org/issue21457
for (key=KEY_MIN;key < KEY_MAX; key++) {
key_n = (char *)keyname(key);
if (key_n == NULL || strcmp(key_n,"UNKNOWN KEY")==0)
-@@ -3461,7 +3442,6 @@ PyInit__curses(void)
+@@ -3461,7 +3437,6 @@ PyInit__curses(void)
if (key_n2 != key_n)
PyMem_Free(key_n2);
}