csiEraseInDisplayHandler function

void csiEraseInDisplayHandler(
  1. CSI csi,
  2. Terminal terminal
)

DECSED - Selective Erase In Display

CSI ? P s J

Erase in Display (DECSED)

P s = 0 → Selective Erase Below (default)
P s = 1 → Selective Erase Above
P s = 2 → Selective Erase All

Implementation

void csiEraseInDisplayHandler(CSI csi, Terminal terminal) {
  var ps = 0;

  if (csi.params.isNotEmpty) {
    ps = csi.params.first;
  }

  switch (ps) {
    case 0:
      terminal.buffer.eraseDisplayFromCursor();
      break;
    case 1:
      terminal.buffer.eraseDisplayToCursor();
      break;
    case 2:
    case 3:
      terminal.buffer.eraseDisplay();
      break;
    default:
      terminal.debug.onError("Unsupported ED: CSI $ps J");
  }
}