@@ -280,7 +280,7 @@ static int
280
280
PyCurses_ConvertToCchar_t (PyCursesWindowObject * win , PyObject * obj ,
281
281
chtype * ch
282
282
#ifdef HAVE_NCURSESW
283
- , cchar_t * wch
283
+ , wchar_t * wch
284
284
#endif
285
285
)
286
286
{
@@ -298,8 +298,7 @@ PyCurses_ConvertToCchar_t(PyCursesWindowObject *win, PyObject *obj,
298
298
PyUnicode_GET_LENGTH (obj ));
299
299
return 0 ;
300
300
}
301
- memset (wch -> chars , 0 , sizeof (wch -> chars ));
302
- wch -> chars [0 ] = buffer [0 ];
301
+ * wch = buffer [0 ];
303
302
return 2 ;
304
303
#else
305
304
return PyCurses_ConvertToChtype (win , obj , ch );
@@ -597,22 +596,24 @@ curses_window_addch_impl(PyCursesWindowObject *self, int group_left_1, int y,
597
596
int type ;
598
597
chtype cch ;
599
598
#ifdef HAVE_NCURSESW
600
- cchar_t wch ;
599
+ wchar_t wstr [2 ];
600
+ cchar_t wcval ;
601
601
#endif
602
602
const char * funcname ;
603
603
604
604
if (!attr_group )
605
605
attr = A_NORMAL ;
606
606
607
607
#ifdef HAVE_NCURSESW
608
- type = PyCurses_ConvertToCchar_t (cwself , ch , & cch , & wch );
608
+ type = PyCurses_ConvertToCchar_t (cwself , ch , & cch , wstr );
609
609
if (type == 2 ) {
610
610
funcname = "add_wch" ;
611
- wch .attr = attr ;
611
+ wstr [1 ] = L'\0' ;
612
+ setcchar (& wcval , wstr , attr , 0 , NULL );
612
613
if (coordinates_group )
613
- rtn = mvwadd_wch (cwself -> win ,y ,x , & wch );
614
+ rtn = mvwadd_wch (cwself -> win ,y ,x , & wcval );
614
615
else {
615
- rtn = wadd_wch (cwself -> win , & wch );
616
+ rtn = wadd_wch (cwself -> win , & wcval );
616
617
}
617
618
}
618
619
else
0 commit comments