| 1404 |
} |
} |
| 1405 |
} |
} |
| 1406 |
|
|
| 1407 |
|
void CSQSelScreenErase() |
| 1408 |
|
{ |
| 1409 |
|
if (Param[1] == -1) Param[1] = 0; |
| 1410 |
|
BuffUpdateScroll(); |
| 1411 |
|
switch (Param[1]) { |
| 1412 |
|
case 0: |
| 1413 |
|
// Erase characters from cursor to end |
| 1414 |
|
BuffSelectedEraseCurToEnd(); |
| 1415 |
|
break; |
| 1416 |
|
|
| 1417 |
|
case 1: |
| 1418 |
|
// Erase characters from home to cursor |
| 1419 |
|
BuffSelectedEraseHomeToCur(); |
| 1420 |
|
break; |
| 1421 |
|
|
| 1422 |
|
case 2: |
| 1423 |
|
// Erase entire screen |
| 1424 |
|
BuffSelectedEraseScreen(); |
| 1425 |
|
break; |
| 1426 |
|
} |
| 1427 |
|
} |
| 1428 |
|
|
| 1429 |
void CSInsertLine() |
void CSInsertLine() |
| 1430 |
{ |
{ |
| 1431 |
// Insert lines at current position |
// Insert lines at current position |
| 1463 |
} |
} |
| 1464 |
} |
} |
| 1465 |
|
|
| 1466 |
|
void CSQSelLineErase() |
| 1467 |
|
{ |
| 1468 |
|
if (Param[1] == -1) Param[1] = 0; |
| 1469 |
|
BuffUpdateScroll(); |
| 1470 |
|
switch (Param[1]) { |
| 1471 |
|
/* erase char from cursor to end of line */ |
| 1472 |
|
case 0: |
| 1473 |
|
BuffSelectedEraseCharsInLine(CursorX,NumOfColumns-CursorX); |
| 1474 |
|
break; |
| 1475 |
|
/* erase char from start of line to cursor */ |
| 1476 |
|
case 1: |
| 1477 |
|
BuffSelectedEraseCharsInLine(0,CursorX+1); |
| 1478 |
|
break; |
| 1479 |
|
/* erase entire line */ |
| 1480 |
|
case 2: |
| 1481 |
|
BuffSelectedEraseCharsInLine(0,NumOfColumns); |
| 1482 |
|
break; |
| 1483 |
|
} |
| 1484 |
|
} |
| 1485 |
|
|
| 1486 |
void CSDeleteNLines() |
void CSDeleteNLines() |
| 1487 |
// Delete lines from current line |
// Delete lines from current line |
| 1488 |
{ |
{ |
| 1733 |
if (P<0) P = 0; |
if (P<0) P = 0; |
| 1734 |
switch (P) { |
switch (P) { |
| 1735 |
case 0: /* Clear all */ |
case 0: /* Clear all */ |
| 1736 |
CharAttr = DefCharAttr; |
if (CharAttr.Attr2 & Attr2Protect) { |
| 1737 |
|
CharAttr = DefCharAttr; |
| 1738 |
|
CharAttr.Attr2 |= Attr2Protect; |
| 1739 |
|
} |
| 1740 |
|
else { |
| 1741 |
|
CharAttr = DefCharAttr; |
| 1742 |
|
} |
| 1743 |
BuffSetCurCharAttr(CharAttr); |
BuffSetCurCharAttr(CharAttr); |
| 1744 |
break; |
break; |
| 1745 |
|
|
| 2417 |
void CSQuest(BYTE b) |
void CSQuest(BYTE b) |
| 2418 |
{ |
{ |
| 2419 |
switch (b) { |
switch (b) { |
| 2420 |
case 'K': CSLineErase(); break; // DECSEL |
case 'J': CSQSelScreenErase(); break; // DECSED |
| 2421 |
|
case 'K': CSQSelLineErase(); break; // DECSEL |
| 2422 |
case 'h': CSQ_h_Mode(); break; // DECSET |
case 'h': CSQ_h_Mode(); break; // DECSET |
| 2423 |
case 'i': CSQ_i_Mode(); break; // DECMC |
case 'i': CSQ_i_Mode(); break; // DECMC |
| 2424 |
case 'l': CSQ_l_Mode(); break; // DECRST |
case 'l': CSQ_l_Mode(); break; // DECRST |
| 2485 |
} |
} |
| 2486 |
} |
} |
| 2487 |
break; |
break; |
| 2488 |
|
case 'q': // DECSCA |
| 2489 |
|
if (Param[1] < 0) |
| 2490 |
|
Param[1] = 0; |
| 2491 |
|
switch (Param[1]) { |
| 2492 |
|
case 0: |
| 2493 |
|
case 2: |
| 2494 |
|
CharAttr.Attr2 &= ~Attr2Protect; |
| 2495 |
|
BuffSetCurCharAttr(CharAttr); |
| 2496 |
|
break; |
| 2497 |
|
case 1: |
| 2498 |
|
CharAttr.Attr2 |= Attr2Protect; |
| 2499 |
|
BuffSetCurCharAttr(CharAttr); |
| 2500 |
|
break; |
| 2501 |
|
default: |
| 2502 |
|
/* nothing to do */ |
| 2503 |
|
break; |
| 2504 |
|
} |
| 2505 |
|
break; |
| 2506 |
} |
} |
| 2507 |
} |
} |
| 2508 |
|
|