From: Simon Tatham Date: Sat, 2 Mar 2002 17:37:48 +0000 (+0000) Subject: The `wrapnext' flag should be saved and restored with the cursor X-Git-Tag: r8855-g4f798d~2304 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=6d42a72218a9851d966f87e19a7b751f9b564164;p=PuTTY_svn.git The `wrapnext' flag should be saved and restored with the cursor position. Failure to do this can give wrapnext==TRUE even with the cursor not in the rightmost column. git-svn-id: http://svn.tartarus.org/sgt/putty@1572 cda61777-01e9-0310-a592-d414129be87e --- diff --git a/terminal.c b/terminal.c index d76d7349..7b69e06e 100644 --- a/terminal.c +++ b/terminal.c @@ -99,7 +99,7 @@ static int wrap, wrapnext; /* wrap flags */ static int insert; /* insert-mode flag */ static int cset; /* 0 or 1: which char set */ static int save_cset, save_csattr; /* saved with cursor position */ -static int save_utf; /* saved with cursor position */ +static int save_utf, save_wnext; /* saved with cursor position */ static int rvideo; /* global reverse video flag */ static unsigned long rvbell_startpoint;/* for ESC[?5hESC[?5l vbell */ static int cursor_on; /* cursor enabled flag */ @@ -746,6 +746,7 @@ static void save_cursor(int save) save_attr = curr_attr; save_cset = cset; save_utf = utf; + save_wnext = wrapnext; save_csattr = cset_attr[cset]; save_sco_acs = sco_acs; } else { @@ -759,6 +760,13 @@ static void save_cursor(int save) curr_attr = save_attr; cset = save_cset; utf = save_utf; + wrapnext = save_wnext; + /* + * wrapnext might reset to False if the x position is no + * longer at the rightmost edge. + */ + if (wrapnext && curs.x < cols-1) + wrapnext = FALSE; cset_attr[cset] = save_csattr; sco_acs = save_sco_acs; fix_cpos;