X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fwidechar%2Flib_ins_wch.c;h=ecaabcc9b73e3bd8ab037d4b8686db5b317dba47;hp=f75361081b62e7a1ad45173aa1685c1d5b141733;hb=HEAD;hpb=42259b594b5dabd37fe2bc294051d2db82e873a2 diff --git a/ncurses/widechar/lib_ins_wch.c b/ncurses/widechar/lib_ins_wch.c index f7536108..ecaabcc9 100644 --- a/ncurses/widechar/lib_ins_wch.c +++ b/ncurses/widechar/lib_ins_wch.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2019,2020 Thomas E. Dickey * + * Copyright 2019-2020,2023 Thomas E. Dickey * * Copyright 2002-2016,2017 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -40,7 +40,7 @@ #include -MODULE_ID("$Id: lib_ins_wch.c,v 1.25 2020/12/05 20:04:59 tom Exp $") +MODULE_ID("$Id: lib_ins_wch.c,v 1.29 2023/11/21 21:53:28 tom Exp $") /* * Insert the given character, updating the current location to simplify @@ -109,9 +109,12 @@ wins_nwstr(WINDOW *win, const wchar_t *wstr, int n) (void *) win, _nc_viswbufn(wstr, n), n)); if (win != 0 - && wstr != 0) { - if (n < 1) + && wstr != 0 + && n != 0) { + + if (n < 0) { n = INT_MAX; + } code = OK; if (n > 0) { @@ -120,7 +123,7 @@ wins_nwstr(WINDOW *win, const wchar_t *wstr, int n) NCURSES_SIZE_T oy = win->_cury; NCURSES_SIZE_T ox = win->_curx; - for (cp = wstr; (*cp != L'\0') && ((cp - wstr) < n); cp++) { + for (cp = wstr; ((cp - wstr) < n) && (*cp != L'\0'); cp++) { int len = _nc_wacs_width(*cp); if ((len >= 0 && len != 1) || !is7bits(*cp)) {