- int max = ((Term->Flags & VT_FLAG_ALTBUF) ? 1 : (giVT_Scrollback+1))*Term->TextHeight * Term->TextWidth;
- int *wrpos = ((Term->Flags & VT_FLAG_ALTBUF) ? &Term->AltWritePos : &Term->WritePos);
- if( Term->SavedWritePos >= max )
- *wrpos = max-1;
- else
- *wrpos = Term->SavedWritePos;
- 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);