Home | History | Annotate | Download | only in libcurses
History log of /src/lib/libcurses/move.c
RevisionDateAuthorComments
 1.26  23-Dec-2024  blymn Sprinkle about some cycle wasting checks for the win pointer being
null. Unfortunately, ncurses does this and there is some sloppy code
out there that relies on the check resulting in segfaults in
NetBSD curses which then, of course, gets blamed for the error.
 1.25  04-Nov-2022  blymn branches: 1.25.4;

PR bin/57072

This fixes observed behviour in the PR. Allow the cursor to be
moved one past the EOL, if postitioned here then set ISPASTEOL.
also protect out of range access if win->cury is past maxy.
 1.24  27-Apr-2022  blymn Fix for PR 56243
clear the past EOL flags when moving the cursor - they are no longer
valid as move cannot put the cursor past the EOL.
 1.23  19-Oct-2021  blymn Add a bit more debug.
 1.22  06-Sep-2021  rin Expand __CTRACE() to __nothing #ifndef DEBUG.

Remove most of #ifdef DEBUG around __CTRACE() calls.

No binary changes, except for line numbers for assert().
 1.21  09-Jun-2019  blymn Rework previous fix for getch cursor position when cursor is moved
without refresh. If the window is not dirty but the window cursor
position does not match curscr then move the cursor. This fixes
the issues seen in PR lib/54263.
 1.20  20-May-2019  blymn Back out incorrect fix for PR 53617 and fix it in a different way.
Keep track of the cursor location, if getch is called without a refresh
and without pending updates (dirty windows) then move the cursor to the
correct location directly. Doing this prevents unnecessary refreshes.
 1.19  26-Sep-2018  kamil According to POSIX moving the cursor in curses(3) touches the window

Mark the old and new lines as dirty, so they will be refreshed upon next
call to getch(3)-like routine.

This also matches the ncurses behavior.

Reviewed by <roy>
 1.18  06-Jan-2017  roy branches: 1.18.6; 1.18.12; 1.18.14;
KNF.
Normalise coding style.
White space police.
Sprinkle some extra braces to make the flow more clear.

No functional changes.
 1.17  23-Feb-2010  drochner branches: 1.17.28;
misc fixes and improvements:
-call setlocale(LC_CTYPE, "") before nl_langinfo(CODESET) if the
locale settings is (still) at "C" - otherwise the CODESET doesn't work
-fix the type of the WACS_* symbols -- this needs to be cchar_t*
-add safeguards where the return value of wcwidth() is used for
loop counters or indexing -- it can be -1
-use more common code in the widechar support case -- in particular
let the wchar functions do the work even if chtype ones were called
-implement wcursyncup/wsyncup/wsyncdown
-somewhat experimental: allow ACS_* variables to refer to WACS_*
table entries -- this way, programs using the old chtype using API
can use UTF8 line drawing on terminals which support UTF8 but not
ACS switching
-fix some logics bugs in UTF8 recognition and ALTCHARSET handling
 1.16  22-Jul-2009  roy Prepare curses for the possibility of changing from termcap to terminfo.
term.h #defines lines, pad_char and no_color_video macros which conflict
with existing curses code. We change lines to alines and nlines depending
on use, pad_char to padchar and no_color_video becomes no_color_attributes
but with a strong alias from no_color_video.
 1.15  21-Jan-2007  jdc Add debug "areas" that allow selective debugging by setting the
"CURSES_TRACE_MASK" environment variable. Postive vales include
debug areas, negative values exclude them.
 1.14  10-Aug-2003  dsl branches: 1.14.18;
Revert most of rev 1.27 of addbytes.c and associated changes.
Posix requires that adding '\n' does clrtoeol() and 'x = 0'.
(Making "\r\n" erase the text that has just been displayed.)
Remove __NONL test from addbytes, __NONL is a property of the output device.
 1.13  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.12  31-Jul-2003  dsl Do something more sensible for waddbytes(..., "\r\n", ...);
I'm not sure about the clrtoeol() at all though - maybe it should
be done as part of scroll()?
Leave 'x' alone when __NONL set.
 1.11  15-Apr-2000  blymn Added functions to replace what were previously macros in curses.h
(this is a requirement of SUSv2) - the old macro behaviour can be
restored by defining _CURSES_USE_MACROS.
Changed function prototypes to use ANSI style.
All externally visible functions now have ANSI style declarations.
 1.10  11-Apr-2000  blymn Made data structures opaque
 1.9  13-Apr-1999  mrg Upgrades the standard NetBSD curses library to provide some
of the SYSV curses facilities. The added features are the collapsing
of arrow and function keysequences (as defined by termcap for the
terminal) into symbolic code returns thus relieving the application of
recognising multi-character key sequences. Other features are the
capability to perform a timed wait for a key (good for when you are
not sure if there is a keypress ready or not) and the capability for
turning off the inter-key timeout when assembling multi-character
function keys.

this work was done by Julian Coleman <J.D.Coleman@newcastle.ac.uk>
and blymn@baea.com.au (Brett Lymn). i'm just integrating it. thanks
HEAPS guys!
 1.8  03-Feb-1998  perry remove obsolete register declarations
 1.7  22-Jul-1997  mikel RCSid police, fix warnings
 1.6  17-Aug-1994  cgd branches: 1.6.2;
clean up import
 1.5  09-Nov-1993  cgd repeat after me: "I hate rcs ids"
 1.4  09-Nov-1993  cgd update to new version from berkeley. doesn't compile yet, nor
does it have rcsid's. this is for diffs.
 1.3  07-Aug-1993  mycroft New version from uunet.
 1.2  01-Aug-1993  mycroft Add RCS identifiers.
 1.1  21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.2  17-Aug-1994  cgd new libcurses, from new nvi
 1.1.1.1  21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.6.2.2  17-Aug-1994  cgd clean up import
 1.6.2.1  17-Aug-1994  cgd file move.c was added on branch netbsd-1-0 on 1994-08-17 21:52:29 +0000
 1.14.18.1  21-Jan-2007  jdc Apply the changes that add debug "areas" on HEAD to the wcurses branch.
Add correspending changes to the debug code that is only present on the branch.
 1.17.28.1  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.18.14.1  10-Jun-2019  christos Sync with HEAD
 1.18.12.1  30-Sep-2018  pgoyette Ssync with HEAD
 1.18.6.1  27-Sep-2018  martin Pull up following revision(s) (requested by kamil in ticket #1040):

lib/libcurses/move.c: revision 1.19

According to POSIX moving the cursor in curses(3) touches the window

Mark the old and new lines as dirty, so they will be refreshed upon next
call to getch(3)-like routine.

This also matches the ncurses behavior.
Reviewed by <roy>
 1.25.4.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed