- size_t max = VT_int_GetBufferRows(Term) * Term->TextWidth;
- size_t *wrpos = VT_int_GetWritePosPtr(Term);
- *wrpos = MIN(Term->SavedWritePos, max-1);
- LOG("Restored %i", *wrpos);
+ size_t maxrow = VT_int_GetBufferRows(Term);
+ tVT_Pos *wrpos = VT_int_GetWritePosPtr(Term);
+ *wrpos = Term->SavedWritePos;
+ if(wrpos->Row >= maxrow)
+ wrpos->Row = maxrow-1;
+ if(wrpos->Col >= Term->TextWidth )
+ wrpos->Col = Term->TextWidth-1;
+ LOG("Restored (R%i,C%i)", wrpos->Row, wrpos->Col);