diff -r 16ea07d420b8 Modules/_cursesmodule.c --- a/Modules/_cursesmodule.c Fri Oct 28 12:17:17 2016 +0300 +++ b/Modules/_cursesmodule.c Fri Oct 28 23:54:56 2016 +0300 @@ -280,7 +280,7 @@ static int PyCurses_ConvertToCchar_t(PyCursesWindowObject *win, PyObject *obj, chtype *ch #ifdef HAVE_NCURSESW - , cchar_t *wch + , wchar_t *wch #endif ) { @@ -298,8 +298,9 @@ PyCurses_ConvertToCchar_t(PyCursesWindow PyUnicode_GET_LENGTH(obj)); return 0; } - memset(wch->chars, 0, sizeof(wch->chars)); - wch->chars[0] = buffer[0]; +// memset(wch->chars, 0, sizeof(wch->chars)); +// wch->chars[0] = buffer[0]; + *wch = buffer[0]; return 2; #else return PyCurses_ConvertToChtype(win, obj, ch); @@ -597,7 +598,8 @@ curses_window_addch_impl(PyCursesWindowO int type; chtype cch; #ifdef HAVE_NCURSESW - cchar_t wch; + wchar_t wch; + cchar_t wcval; #endif const char *funcname; @@ -608,11 +610,11 @@ curses_window_addch_impl(PyCursesWindowO type = PyCurses_ConvertToCchar_t(cwself, ch, &cch, &wch); if (type == 2) { funcname = "add_wch"; - wch.attr = attr; + setcchar(wcval, wch, attr, 0, NULL); if (coordinates_group) - rtn = mvwadd_wch(cwself->win,y,x, &wch); + rtn = mvwadd_wch(cwself->win,y,x, &wcval); else { - rtn = wadd_wch(cwself->win, &wch); + rtn = wadd_wch(cwself->win, &wcval); } } else