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 */
save_attr = curr_attr;
save_cset = cset;
save_utf = utf;
+ save_wnext = wrapnext;
save_csattr = cset_attr[cset];
save_sco_acs = sco_acs;
} else {
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;