X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fwidechar%2Flib_get_wstr.c;h=695b5263946ab32569e2e76bae8a189fdf3ab474;hp=baa70a5a53f966caeeb99ec248967e07130c9b47;hb=a6ff7e087fd944fd0035075d0bb528e95e498d81;hpb=11ca5f62994c7a14c4e500510bd242e1e721f8be diff --git a/ncurses/widechar/lib_get_wstr.c b/ncurses/widechar/lib_get_wstr.c index baa70a5a..695b5263 100644 --- a/ncurses/widechar/lib_get_wstr.c +++ b/ncurses/widechar/lib_get_wstr.c @@ -1,5 +1,6 @@ /**************************************************************************** - * Copyright (c) 2002-2004,2008 Free Software Foundation, Inc. * + * Copyright 2018,2020 Thomas E. Dickey * + * Copyright 2002-2009,2011 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -38,9 +39,8 @@ */ #include -#include -MODULE_ID("$Id: lib_get_wstr.c,v 1.10 2008/08/16 19:25:33 tom Exp $") +MODULE_ID("$Id: lib_get_wstr.c,v 1.16 2020/02/02 23:34:34 tom Exp $") static int wadd_wint(WINDOW *win, wint_t *src) @@ -50,7 +50,7 @@ wadd_wint(WINDOW *win, wint_t *src) wch[0] = (wchar_t) (*src); wch[1] = 0; - setcchar(&tmp, wch, A_NORMAL, 0, NULL); + setcchar(&tmp, wch, A_NORMAL, (short) 0, NULL); return wadd_wch(win, &tmp); } @@ -59,7 +59,7 @@ wadd_wint(WINDOW *win, wint_t *src) * or other character, and handles reverse wraparound. */ static wint_t * -WipeOut(WINDOW *win, int y, int x, wint_t *first, wint_t *last, bool echoed) +WipeOut(WINDOW *win, int y, int x, wint_t *first, wint_t *last, int echoed) { if (last > first) { *--last = '\0'; @@ -96,11 +96,13 @@ wgetn_wstr(WINDOW *win, wint_t *str, int maxlen) wint_t ch; int y, x, code; - T((T_CALLED("wgetn_wstr(%p,%p, %d)"), win, str, maxlen)); + T((T_CALLED("wgetn_wstr(%p,%p, %d)"), (void *) win, (void *) str, maxlen)); if (!win) returnCode(ERR); + maxlen = _nc_getstr_limit(maxlen); + _nc_get_tty_mode(&buf); oldnl = sp->_nl; @@ -165,7 +167,7 @@ wgetn_wstr(WINDOW *win, wint_t *str, int maxlen) } else { beep(); } - } else if (maxlen >= 0 && tmpstr - oldstr >= maxlen) { + } else if (tmpstr - oldstr >= maxlen) { beep(); } else { *tmpstr++ = ch;