diff --git a/pdcurses/getstr.c b/pdcurses/getstr.c index 603769f1..cc9f627b 100644 --- a/pdcurses/getstr.c +++ b/pdcurses/getstr.c @@ -72,12 +72,17 @@ int wgetnstr(WINDOW *win, char *str, int n) { #ifdef PDC_WIDE wchar_t wstr[MAXLINE + 1]; + wint_t wintstr[MAXLINE + 1]; + int i; if (n < 0 || n > MAXLINE) n = MAXLINE; - if (wgetn_wstr(win, (wint_t *)wstr, n) == ERR) + if (wgetn_wstr(win, wintstr, n) == ERR) return ERR; + for (i = 0; i < n; ++i) { + wstr[i] = (wchar_t)wintstr[i]; + } return PDC_wcstombs(str, wstr, n); #else