Respect DECDWL/DHL on last column cursor controls

wilder
Luis Javier Merino Morán 4 years ago committed by Tomaz Canabrava
parent c099e0f2ea
commit 733e78587f
  1. 8
      src/Screen.cpp

@ -96,7 +96,7 @@ void Screen::cursorUp(int n)
n = 1; // Default n = 1; // Default
} }
const int stop = _cuY < _topMargin ? 0 : _topMargin; const int stop = _cuY < _topMargin ? 0 : _topMargin;
_cuX = qMin(_columns - 1, _cuX); // nowrap! _cuX = qMin(getScreenLineColumns(_cuY) - 1, _cuX); // nowrap!
_cuY = qMax(stop, _cuY - n); _cuY = qMax(stop, _cuY - n);
} }
@ -110,7 +110,7 @@ void Screen::cursorDown(int n)
n = MAX_SCREEN_ARGUMENT; n = MAX_SCREEN_ARGUMENT;
} }
const int stop = _cuY > _bottomMargin ? _lines - 1 : _bottomMargin; const int stop = _cuY > _bottomMargin ? _lines - 1 : _bottomMargin;
_cuX = qMin(_columns - 1, _cuX); // nowrap! _cuX = qMin(getScreenLineColumns(_cuY) - 1, _cuX); // nowrap!
_cuY = qMin(stop, _cuY + n); _cuY = qMin(stop, _cuY + n);
} }
@ -120,7 +120,7 @@ void Screen::cursorLeft(int n)
if (n < 1) { if (n < 1) {
n = 1; // Default n = 1; // Default
} }
_cuX = qMin(_columns - 1, _cuX); // nowrap! _cuX = qMin(getScreenLineColumns(_cuY) - 1, _cuX); // nowrap!
_cuX = qMax(0, _cuX - n); _cuX = qMax(0, _cuX - n);
} }
@ -771,7 +771,7 @@ void Screen::reset()
void Screen::backspace() void Screen::backspace()
{ {
_cuX = qMin(_columns - 1, _cuX); // nowrap! _cuX = qMin(getScreenLineColumns(_cuY) - 1, _cuX); // nowrap!
_cuX = qMax(0, _cuX - 1); _cuX = qMax(0, _cuX - 1);
if (_screenLines.at(_cuY).size() < _cuX + 1) { if (_screenLines.at(_cuY).size() < _cuX + 1) {

Loading…
Cancel
Save