@@ -187,6 +187,8 @@ get_cursesmodule_state_by_win(PyCursesWindowObject *win)
187187    return  get_cursesmodule_state_by_cls (Py_TYPE (win ));
188188}
189189
190+ #define  _PyCursesWindowObject_CAST (op )  ((PyCursesWindowObject *)(op))
191+ 
190192/*[clinic input] 
191193module _curses 
192194class _curses.window "PyCursesWindowObject *" "clinic_state()->window_type" 
@@ -654,53 +656,80 @@ class component_converter(CConverter):
654656   PARSESTR - format string for argument parsing 
655657*/ 
656658
657- #define  Window_NoArgNoReturnFunction (X )                         \
658-     static PyObject *PyCursesWindow_ ## X                       \
659-     (PyCursesWindowObject *self, PyObject *Py_UNUSED(ignored))  \
660-     { return PyCursesCheckERR_ForWin(self, X(self->win), # X); }
659+ #define  Window_NoArgNoReturnFunction (X )                                 \
660+     static PyObject *PyCursesWindow_ ## X                               \
661+     (PyObject *op, PyObject *Py_UNUSED(ignored))                        \
662+     {                                                                   \
663+         PyCursesWindowObject *self = _PyCursesWindowObject_CAST(op);    \
664+         int code = X(self->win);                                        \
665+         return PyCursesCheckERR_ForWin(self, code, # X);                \
666+     }
661667
662668#define  Window_NoArgTrueFalseFunction (X )                                \
663669    static PyObject * PyCursesWindow_ ## X                              \
664-     (PyCursesWindowObject *self , PyObject *Py_UNUSED(ignored))          \
670+     (PyObject *op , PyObject *Py_UNUSED(ignored))                         \
665671    {                                                                   \
666-         return PyBool_FromLong(X(self->win)); }
672+         PyCursesWindowObject *self = _PyCursesWindowObject_CAST(op);    \
673+         return PyBool_FromLong(X(self->win));                           \
674+     }
667675
668- #define  Window_NoArgNoReturnVoidFunction (X )                     \
669-     static PyObject * PyCursesWindow_ ## X                      \
670-     (PyCursesWindowObject *self, PyObject *Py_UNUSED(ignored))  \
671-     {                                                           \
672-         X(self->win); Py_RETURN_NONE; }
676+ #define  Window_NoArgNoReturnVoidFunction (X )                             \
677+     static PyObject * PyCursesWindow_ ## X                              \
678+     (PyObject *op, PyObject *Py_UNUSED(ignored))                        \
679+     {                                                                   \
680+         PyCursesWindowObject *self = _PyCursesWindowObject_CAST(op);    \
681+         X(self->win);                                                   \
682+         Py_RETURN_NONE;                                                 \
683+     }
673684
674685#define  Window_NoArg2TupleReturnFunction (X , TYPE , ERGSTR )               \
675686    static PyObject * PyCursesWindow_ ## X                              \
676-     (PyCursesWindowObject *self , PyObject *Py_UNUSED(ignored))          \
687+     (PyObject *op , PyObject *Py_UNUSED(ignored))                         \
677688    {                                                                   \
678689        TYPE arg1, arg2;                                                \
679-         X(self->win,arg1,arg2); return Py_BuildValue(ERGSTR, arg1, arg2); }
690+         PyCursesWindowObject *self = _PyCursesWindowObject_CAST(op);    \
691+         X(self->win, arg1, arg2);                                       \
692+         return Py_BuildValue(ERGSTR, arg1, arg2);                       \
693+     }
680694
681695#define  Window_OneArgNoReturnVoidFunction (X , TYPE , PARSESTR )            \
682696    static PyObject * PyCursesWindow_ ## X                              \
683-     (PyCursesWindowObject *self , PyObject *args)                        \
697+     (PyObject *op , PyObject *args)                                       \
684698    {                                                                   \
685699        TYPE arg1;                                                      \
686-         if (!PyArg_ParseTuple(args, PARSESTR, &arg1)) return NULL;      \
687-         X(self->win,arg1); Py_RETURN_NONE; }
700+         if (!PyArg_ParseTuple(args, PARSESTR, &arg1)) {                 \
701+             return NULL;                                                \
702+         }                                                               \
703+         PyCursesWindowObject *self = _PyCursesWindowObject_CAST(op);    \
704+         X(self->win, arg1);                                             \
705+         Py_RETURN_NONE;                                                 \
706+     }
688707
689708#define  Window_OneArgNoReturnFunction (X , TYPE , PARSESTR )                \
690709    static PyObject * PyCursesWindow_ ## X                              \
691-     (PyCursesWindowObject *self , PyObject *args)                        \
710+     (PyObject *op , PyObject *args)                                       \
692711    {                                                                   \
693712        TYPE arg1;                                                      \
694-         if (!PyArg_ParseTuple(args,PARSESTR, &arg1)) return NULL;       \
695-         return PyCursesCheckERR_ForWin(self, X(self->win, arg1), # X); }
713+         if (!PyArg_ParseTuple(args, PARSESTR, &arg1)) {                 \
714+             return NULL;                                                \
715+         }                                                               \
716+         PyCursesWindowObject *self = _PyCursesWindowObject_CAST(op);    \
717+         int code = X(self->win, arg1);                                  \
718+         return PyCursesCheckERR_ForWin(self, code, # X);                \
719+     }
696720
697721#define  Window_TwoArgNoReturnFunction (X , TYPE , PARSESTR )                \
698722    static PyObject * PyCursesWindow_ ## X                              \
699-     (PyCursesWindowObject *self , PyObject *args)                        \
723+     (PyObject *op , PyObject *args)                                       \
700724    {                                                                   \
701725        TYPE arg1, arg2;                                                \
702-         if (!PyArg_ParseTuple(args,PARSESTR, &arg1, &arg2)) return NULL; \
703-         return PyCursesCheckERR_ForWin(self, X(self->win, arg1, arg2), # X); }
726+         if (!PyArg_ParseTuple(args,PARSESTR, &arg1, &arg2)) {           \
727+             return NULL;                                                \
728+         }                                                               \
729+         PyCursesWindowObject *self = _PyCursesWindowObject_CAST(op);    \
730+         int code = X(self->win, arg1, arg2);                            \
731+         return PyCursesCheckERR_ForWin(self, code, # X);                \
732+     }
704733
705734/* ------------- WINDOW routines --------------- */ 
706735
@@ -1302,8 +1331,10 @@ the touchline() method so that the contents will be redisplayed by the next
13021331window refresh. 
13031332[-clinic start generated code]*/ 
13041333static  PyObject  * 
1305- PyCursesWindow_ChgAt (PyCursesWindowObject   * self , PyObject  * args )
1334+ PyCursesWindow_ChgAt (PyObject   * op , PyObject  * args )
13061335{
1336+     PyCursesWindowObject  * self  =  _PyCursesWindowObject_CAST (op );
1337+ 
13071338    int  rtn ;
13081339    int  x , y ;
13091340    int  num  =  -1 ;
@@ -1656,8 +1687,10 @@ Read a string from the user, with primitive line editing capacity.
16561687[-clinic start generated code]*/ 
16571688
16581689static  PyObject  * 
1659- PyCursesWindow_GetStr (PyCursesWindowObject   * self , PyObject  * args )
1690+ PyCursesWindow_GetStr (PyObject   * op , PyObject  * args )
16601691{
1692+     PyCursesWindowObject  * self  =  _PyCursesWindowObject_CAST (op );
1693+ 
16611694    int  x , y , n ;
16621695    char  rtn [1024 ]; /* This should be big enough.. I hope */ 
16631696    int  rtn2 ;
@@ -1860,8 +1893,10 @@ from the characters.  If n is specified, instr() returns a string at most
18601893n characters long (exclusive of the trailing NUL). 
18611894[-clinic start generated code]*/ 
18621895static  PyObject  * 
1863- PyCursesWindow_InStr (PyCursesWindowObject   * self , PyObject  * args )
1896+ PyCursesWindow_InStr (PyObject   * op , PyObject  * args )
18641897{
1898+     PyCursesWindowObject  * self  =  _PyCursesWindowObject_CAST (op );
1899+ 
18651900    int  x , y , n ;
18661901    char  rtn [1024 ]; /* This should be big enough.. I hope */ 
18671902    int  rtn2 ;
@@ -2557,14 +2592,17 @@ _curses_window_vline_impl(PyCursesWindowObject *self, int group_left_1,
25572592}
25582593
25592594static  PyObject  * 
2560- PyCursesWindow_get_encoding (PyCursesWindowObject   * self , void  * closure )
2595+ PyCursesWindow_get_encoding (PyObject   * op , void  * closure )
25612596{
2597+     PyCursesWindowObject  * self  =  _PyCursesWindowObject_CAST (op );
25622598    return  PyUnicode_FromString (self -> encoding );
25632599}
25642600
25652601static  int 
2566- PyCursesWindow_set_encoding (PyCursesWindowObject   * self , PyObject  * value , void  * Py_UNUSED (ignored ))
2602+ PyCursesWindow_set_encoding (PyObject   * op , PyObject  * value , void  * Py_UNUSED (ignored ))
25672603{
2604+     PyCursesWindowObject  * self  =  _PyCursesWindowObject_CAST (op );
2605+ 
25682606    PyObject  * ascii ;
25692607    char  * encoding ;
25702608
@@ -2607,88 +2645,90 @@ static PyMethodDef PyCursesWindow_methods[] = {
26072645    _CURSES_WINDOW_ATTRSET_METHODDEF 
26082646    _CURSES_WINDOW_BKGD_METHODDEF 
26092647#ifdef  HAVE_CURSES_WCHGAT 
2610-     {"chgat" ,           ( PyCFunction ) PyCursesWindow_ChgAt , METH_VARARGS },
2648+     {"chgat" ,           PyCursesWindow_ChgAt , METH_VARARGS },
26112649#endif 
26122650    _CURSES_WINDOW_BKGDSET_METHODDEF 
26132651    _CURSES_WINDOW_BORDER_METHODDEF 
26142652    _CURSES_WINDOW_BOX_METHODDEF 
2615-     {"clear" ,           ( PyCFunction ) PyCursesWindow_wclear , METH_NOARGS },
2616-     {"clearok" ,         ( PyCFunction ) PyCursesWindow_clearok , METH_VARARGS },
2617-     {"clrtobot" ,        ( PyCFunction ) PyCursesWindow_wclrtobot , METH_NOARGS },
2618-     {"clrtoeol" ,        ( PyCFunction ) PyCursesWindow_wclrtoeol , METH_NOARGS },
2619-     {"cursyncup" ,       ( PyCFunction ) PyCursesWindow_wcursyncup , METH_NOARGS },
2653+     {"clear" ,           PyCursesWindow_wclear , METH_NOARGS },
2654+     {"clearok" ,         PyCursesWindow_clearok , METH_VARARGS },
2655+     {"clrtobot" ,        PyCursesWindow_wclrtobot , METH_NOARGS },
2656+     {"clrtoeol" ,        PyCursesWindow_wclrtoeol , METH_NOARGS },
2657+     {"cursyncup" ,       PyCursesWindow_wcursyncup , METH_NOARGS },
26202658    _CURSES_WINDOW_DELCH_METHODDEF 
2621-     {"deleteln" ,        ( PyCFunction ) PyCursesWindow_wdeleteln , METH_NOARGS },
2659+     {"deleteln" ,        PyCursesWindow_wdeleteln , METH_NOARGS },
26222660    _CURSES_WINDOW_DERWIN_METHODDEF 
26232661    _CURSES_WINDOW_ECHOCHAR_METHODDEF 
26242662    _CURSES_WINDOW_ENCLOSE_METHODDEF 
2625-     {"erase ",           ( PyCFunction ) PyCursesWindow_werase , METH_NOARGS },
2626-     {"getbegyx ",        (PyCFunction) PyCursesWindow_getbegyx, METH_NOARGS}, 
2663+     {"erase ",           PyCursesWindow_werase , METH_NOARGS },
2664+     {"getbegyx ",        PyCursesWindow_getbegyx , METH_NOARGS },
26272665    _CURSES_WINDOW_GETBKGD_METHODDEF 
26282666    _CURSES_WINDOW_GETCH_METHODDEF 
26292667    _CURSES_WINDOW_GETKEY_METHODDEF 
26302668    _CURSES_WINDOW_GET_WCH_METHODDEF 
2631-     {"getmaxyx" ,        ( PyCFunction ) PyCursesWindow_getmaxyx , METH_NOARGS },
2632-     {"getparyx" ,        ( PyCFunction ) PyCursesWindow_getparyx , METH_NOARGS },
2633-     {"getstr" ,          ( PyCFunction ) PyCursesWindow_GetStr , METH_VARARGS },
2634-     {"getyx" ,           ( PyCFunction ) PyCursesWindow_getyx , METH_NOARGS },
2669+     {"getmaxyx ",        PyCursesWindow_getmaxyx , METH_NOARGS },
2670+     {"getparyx ",        PyCursesWindow_getparyx , METH_NOARGS },
2671+     {"getstr ",          PyCursesWindow_GetStr , METH_VARARGS },
2672+     {"getyx ",           PyCursesWindow_getyx , METH_NOARGS },
26352673    _CURSES_WINDOW_HLINE_METHODDEF 
2636-     {"idcok" ,           ( PyCFunction ) PyCursesWindow_idcok , METH_VARARGS },
2637-     {"idlok" ,           ( PyCFunction ) PyCursesWindow_idlok , METH_VARARGS },
2674+     {"idcok ",           PyCursesWindow_idcok, METH_VARARGS},
2675+     {"idlok" ,           PyCursesWindow_idlok , METH_VARARGS },
26382676#ifdef  HAVE_CURSES_IMMEDOK 
2639-     {"immedok" ,         ( PyCFunction ) PyCursesWindow_immedok , METH_VARARGS },
2677+     {"immedok" ,         PyCursesWindow_immedok , METH_VARARGS },
26402678#endif 
26412679    _CURSES_WINDOW_INCH_METHODDEF 
26422680    _CURSES_WINDOW_INSCH_METHODDEF 
2643-     {"insdelln" ,        ( PyCFunction ) PyCursesWindow_winsdelln , METH_VARARGS },
2644-     {"insertln" ,        ( PyCFunction ) PyCursesWindow_winsertln , METH_NOARGS },
2681+     {"insdelln" ,        PyCursesWindow_winsdelln , METH_VARARGS },
2682+     {"insertln" ,        PyCursesWindow_winsertln , METH_NOARGS },
26452683    _CURSES_WINDOW_INSNSTR_METHODDEF 
26462684    _CURSES_WINDOW_INSSTR_METHODDEF 
2647-     {"instr" ,           ( PyCFunction ) PyCursesWindow_InStr , METH_VARARGS },
2685+     {"instr" ,           PyCursesWindow_InStr , METH_VARARGS },
26482686    _CURSES_WINDOW_IS_LINETOUCHED_METHODDEF 
2649-     {"is_wintouched" ,   ( PyCFunction ) PyCursesWindow_is_wintouched , METH_NOARGS },
2650-     {"keypad" ,          ( PyCFunction ) PyCursesWindow_keypad , METH_VARARGS },
2651-     {"leaveok" ,         ( PyCFunction ) PyCursesWindow_leaveok , METH_VARARGS },
2652-     {"move" ,            ( PyCFunction ) PyCursesWindow_wmove , METH_VARARGS },
2653-     {"mvderwin" ,        ( PyCFunction ) PyCursesWindow_mvderwin , METH_VARARGS },
2654-     {"mvwin" ,           ( PyCFunction ) PyCursesWindow_mvwin , METH_VARARGS },
2655-     {"nodelay" ,         ( PyCFunction ) PyCursesWindow_nodelay , METH_VARARGS },
2656-     {"notimeout" ,       ( PyCFunction ) PyCursesWindow_notimeout , METH_VARARGS },
2687+     {"is_wintouched" ,   PyCursesWindow_is_wintouched , METH_NOARGS },
2688+     {"keypad" ,          PyCursesWindow_keypad , METH_VARARGS },
2689+     {"leaveok" ,         PyCursesWindow_leaveok , METH_VARARGS },
2690+     {"move" ,            PyCursesWindow_wmove , METH_VARARGS },
2691+     {"mvderwin" ,        PyCursesWindow_mvderwin , METH_VARARGS },
2692+     {"mvwin" ,           PyCursesWindow_mvwin , METH_VARARGS },
2693+     {"nodelay" ,         PyCursesWindow_nodelay , METH_VARARGS },
2694+     {"notimeout" ,       PyCursesWindow_notimeout , METH_VARARGS },
26572695    _CURSES_WINDOW_NOUTREFRESH_METHODDEF 
26582696    _CURSES_WINDOW_OVERLAY_METHODDEF 
26592697    _CURSES_WINDOW_OVERWRITE_METHODDEF 
26602698    _CURSES_WINDOW_PUTWIN_METHODDEF 
26612699    _CURSES_WINDOW_REDRAWLN_METHODDEF 
2662-     {"redrawwin" ,       ( PyCFunction ) PyCursesWindow_redrawwin , METH_NOARGS },
2700+     {"redrawwin" ,       PyCursesWindow_redrawwin , METH_NOARGS },
26632701    _CURSES_WINDOW_REFRESH_METHODDEF 
26642702#ifndef  STRICT_SYSV_CURSES 
2665-     {"resize" ,          ( PyCFunction ) PyCursesWindow_wresize , METH_VARARGS },
2703+     {"resize" ,          PyCursesWindow_wresize , METH_VARARGS },
26662704#endif 
26672705    _CURSES_WINDOW_SCROLL_METHODDEF 
2668-     {"scrollok" ,        ( PyCFunction ) PyCursesWindow_scrollok , METH_VARARGS },
2706+     {"scrollok" ,        PyCursesWindow_scrollok , METH_VARARGS },
26692707    _CURSES_WINDOW_SETSCRREG_METHODDEF 
2670-     {"standend" ,        ( PyCFunction ) PyCursesWindow_wstandend , METH_NOARGS },
2671-     {"standout" ,        ( PyCFunction ) PyCursesWindow_wstandout , METH_NOARGS },
2708+     {"standend" ,        PyCursesWindow_wstandend , METH_NOARGS },
2709+     {"standout" ,        PyCursesWindow_wstandout , METH_NOARGS },
26722710    {"subpad" , (PyCFunction )_curses_window_subwin , METH_VARARGS , _curses_window_subwin__doc__ },
26732711    _CURSES_WINDOW_SUBWIN_METHODDEF 
2674-     {"syncdown" ,        ( PyCFunction ) PyCursesWindow_wsyncdown , METH_NOARGS },
2712+     {"syncdown" ,        PyCursesWindow_wsyncdown , METH_NOARGS },
26752713#ifdef  HAVE_CURSES_SYNCOK 
2676-     {"syncok" ,          ( PyCFunction ) PyCursesWindow_syncok , METH_VARARGS },
2714+     {"syncok" ,          PyCursesWindow_syncok , METH_VARARGS },
26772715#endif 
2678-     {"syncup" ,          ( PyCFunction ) PyCursesWindow_wsyncup , METH_NOARGS },
2679-     {"timeout" ,         ( PyCFunction ) PyCursesWindow_wtimeout , METH_VARARGS },
2716+     {"syncup" ,          PyCursesWindow_wsyncup , METH_NOARGS },
2717+     {"timeout" ,         PyCursesWindow_wtimeout , METH_VARARGS },
26802718    _CURSES_WINDOW_TOUCHLINE_METHODDEF 
2681-     {"touchwin" ,        ( PyCFunction ) PyCursesWindow_touchwin , METH_NOARGS },
2682-     {"untouchwin" ,      ( PyCFunction ) PyCursesWindow_untouchwin , METH_NOARGS },
2719+     {"touchwin" ,        PyCursesWindow_touchwin , METH_NOARGS },
2720+     {"untouchwin" ,      PyCursesWindow_untouchwin , METH_NOARGS },
26832721    _CURSES_WINDOW_VLINE_METHODDEF 
26842722    {NULL,                  NULL }   /* sentinel */ 
26852723};
26862724
26872725static  PyGetSetDef  PyCursesWindow_getsets [] =  {
2688-     {"encoding" ,
2689-      (getter )PyCursesWindow_get_encoding ,
2690-      (setter )PyCursesWindow_set_encoding ,
2691-      "the typecode character used to create the array" },
2726+     {
2727+         "encoding" ,
2728+         PyCursesWindow_get_encoding ,
2729+         PyCursesWindow_set_encoding ,
2730+         "the typecode character used to create the array" 
2731+     },
26922732    {NULL , NULL , NULL , NULL  }  /* sentinel */ 
26932733};
26942734
0 commit comments