| 69 |
static BOOL AutoWrapMode; |
static BOOL AutoWrapMode; |
| 70 |
static BOOL FocusReportMode; |
static BOOL FocusReportMode; |
| 71 |
static BOOL AltScr; |
static BOOL AltScr; |
| 72 |
|
static BOOL LRMarginMode; |
| 73 |
BOOL BracketedPaste; |
BOOL BracketedPaste; |
| 74 |
|
|
| 75 |
static int VTlevel; |
static int VTlevel; |
| 291 |
// Alternate Screen Buffer |
// Alternate Screen Buffer |
| 292 |
AltScr = FALSE; |
AltScr = FALSE; |
| 293 |
|
|
| 294 |
|
// Left/Right Margin Mode |
| 295 |
|
LRMarginMode = FALSE; |
| 296 |
|
|
| 297 |
// Bracketed Paste Mode |
// Bracketed Paste Mode |
| 298 |
BracketedPaste = FALSE; |
BracketedPaste = FALSE; |
| 299 |
|
|
| 391 |
|
|
| 392 |
void HideStatusLine() |
void HideStatusLine() |
| 393 |
{ |
{ |
| 394 |
if ((StatusLine>0) && |
if (isCursorOnStatusLine) |
|
(CursorY==NumOfLines-1)) |
|
| 395 |
MoveToMainScreen(); |
MoveToMainScreen(); |
| 396 |
StatusX = 0; |
StatusX = 0; |
| 397 |
StatusWrap = FALSE; |
StatusWrap = FALSE; |
| 484 |
|
|
| 485 |
void BackSpace() |
void BackSpace() |
| 486 |
{ |
{ |
| 487 |
if (CursorX == 0) |
if (CursorX == CursorLeftM || CursorX == 0) { |
| 488 |
{ |
if (CursorY > 0 && (ts.TermFlag & TF_BACKWRAP)) { |
| 489 |
if ((CursorY>0) && |
MoveCursor(CursorRightM, CursorY-1); |
| 490 |
((ts.TermFlag & TF_BACKWRAP)!=0)) |
if (cv.HLogBuf!=0 && !ts.LogTypePlainText) Log1Byte(BS); |
| 491 |
{ |
} |
| 492 |
MoveCursor(NumOfColumns-1,CursorY-1); |
} |
| 493 |
// if (cv.HLogBuf!=0) Log1Byte(BS); |
else if (CursorX > 0) { |
| 494 |
// (2005.2.20 yutaka) |
MoveCursor(CursorX-1, CursorY); |
| 495 |
if (cv.HLogBuf!=0 && !ts.LogTypePlainText) Log1Byte(BS); |
if (cv.HLogBuf!=0 && !ts.LogTypePlainText) Log1Byte(BS); |
| 496 |
} |
} |
|
} |
|
|
else if (CursorX > 0) |
|
|
{ |
|
|
MoveCursor(CursorX-1,CursorY); |
|
|
// if (cv.HLogBuf!=0) Log1Byte(BS); |
|
|
// (2005.2.20 yutaka) |
|
|
if (cv.HLogBuf!=0 && !ts.LogTypePlainText) Log1Byte(BS); |
|
|
} |
|
| 497 |
} |
} |
| 498 |
|
|
| 499 |
void CarriageReturn(BOOL logFlag) |
void CarriageReturn(BOOL logFlag) |
| 503 |
#endif /* NO_COPYLINE_FIX */ |
#endif /* NO_COPYLINE_FIX */ |
| 504 |
if (cv.HLogBuf!=0) Log1Byte(CR); |
if (cv.HLogBuf!=0) Log1Byte(CR); |
| 505 |
|
|
| 506 |
if (CursorX>0) |
if (RelativeOrgMode || CursorX > CursorLeftM) |
| 507 |
MoveCursor(0,CursorY); |
MoveCursor(CursorLeftM, CursorY); |
| 508 |
|
else if (CursorX < CursorLeftM) |
| 509 |
|
MoveCursor(0, CursorY); |
| 510 |
} |
} |
| 511 |
|
|
| 512 |
void LineFeed(BYTE b, BOOL logFlag) |
void LineFeed(BYTE b, BOOL logFlag) |
| 617 |
|
|
| 618 |
BuffPutChar(b, CharAttrTmp, InsertMode); |
BuffPutChar(b, CharAttrTmp, InsertMode); |
| 619 |
|
|
| 620 |
if (CursorX < NumOfColumns-1) |
if (CursorX == CursorRightM || CursorX >= NumOfColumns-1) { |
|
MoveRight(); |
|
|
else { |
|
| 621 |
UpdateStr(); |
UpdateStr(); |
| 622 |
Wrap = AutoWrapMode; |
Wrap = AutoWrapMode; |
| 623 |
} |
} |
| 624 |
|
else { |
| 625 |
|
MoveRight(); |
| 626 |
|
} |
| 627 |
} |
} |
| 628 |
|
|
| 629 |
void PutDecSp(BYTE b) |
void PutDecSp(BYTE b) |
| 664 |
CharAttrTmp.Attr |= AttrSpecial; |
CharAttrTmp.Attr |= AttrSpecial; |
| 665 |
BuffPutChar(b, CharAttrTmp, InsertMode); |
BuffPutChar(b, CharAttrTmp, InsertMode); |
| 666 |
|
|
| 667 |
if (CursorX < NumOfColumns-1) |
if (CursorX == CursorRightM || CursorX >= NumOfColumns-1) { |
|
MoveRight(); |
|
|
else { |
|
| 668 |
UpdateStr(); |
UpdateStr(); |
| 669 |
Wrap = AutoWrapMode; |
Wrap = AutoWrapMode; |
| 670 |
} |
} |
| 671 |
|
else { |
| 672 |
|
MoveRight(); |
| 673 |
|
} |
| 674 |
} |
} |
| 675 |
|
|
| 676 |
void PutKanji(BYTE b) |
void PutKanji(BYTE b) |
| 677 |
{ |
{ |
| 678 |
|
int LineEnd; |
| 679 |
#ifndef NO_COPYLINE_FIX |
#ifndef NO_COPYLINE_FIX |
| 680 |
TCharAttr CharAttrTmp; |
TCharAttr CharAttrTmp; |
| 681 |
|
|
| 699 |
return; |
return; |
| 700 |
} |
} |
| 701 |
|
|
| 702 |
|
if (CursorX > CursorRightM) |
| 703 |
|
LineEnd = NumOfColumns - 1; |
| 704 |
|
else |
| 705 |
|
LineEnd = CursorRightM; |
| 706 |
|
|
| 707 |
if (Wrap) |
if (Wrap) |
| 708 |
{ |
{ |
| 709 |
CarriageReturn(FALSE); |
CarriageReturn(FALSE); |
| 713 |
CharAttrTmp.Attr |= AttrLineContinued; |
CharAttrTmp.Attr |= AttrLineContinued; |
| 714 |
#endif /* NO_COPYLINE_FIX */ |
#endif /* NO_COPYLINE_FIX */ |
| 715 |
} |
} |
| 716 |
else if (CursorX > NumOfColumns-2) |
else if (CursorX > LineEnd - 1) { |
| 717 |
if (AutoWrapMode) |
if (AutoWrapMode) |
| 718 |
{ |
{ |
| 719 |
#ifndef NO_COPYLINE_FIX |
#ifndef NO_COPYLINE_FIX |
| 720 |
if (ts.EnableContinuedLineCopy) |
if (ts.EnableContinuedLineCopy) |
| 721 |
{ |
{ |
| 722 |
CharAttrTmp.Attr |= AttrLineContinued; |
CharAttrTmp.Attr |= AttrLineContinued; |
| 723 |
if (CursorX == NumOfColumns-1) |
if (CursorX == LineEnd) |
| 724 |
BuffPutChar(0x20, CharAttr, FALSE); |
BuffPutChar(0x20, CharAttr, FALSE); |
| 725 |
} |
} |
| 726 |
#endif /* NO_COPYLINE_FIX */ |
#endif /* NO_COPYLINE_FIX */ |
| 727 |
CarriageReturn(FALSE); |
CarriageReturn(FALSE); |
| 728 |
LineFeed(LF,FALSE); |
LineFeed(LF,FALSE); |
| 729 |
} |
} |
| 730 |
else return; |
else { |
| 731 |
|
return; |
| 732 |
|
} |
| 733 |
|
} |
| 734 |
|
|
| 735 |
Wrap = FALSE; |
Wrap = FALSE; |
| 736 |
|
|
| 752 |
BuffPutKanji(Kanji, CharAttr, InsertMode); |
BuffPutKanji(Kanji, CharAttr, InsertMode); |
| 753 |
#endif /* NO_COPYLINE_FIX */ |
#endif /* NO_COPYLINE_FIX */ |
| 754 |
|
|
| 755 |
if (CursorX < NumOfColumns-2) |
if (CursorX < LineEnd - 1) { |
|
{ |
|
| 756 |
MoveRight(); |
MoveRight(); |
| 757 |
MoveRight(); |
MoveRight(); |
| 758 |
} |
} |
| 1039 |
int i; |
int i; |
| 1040 |
PStatusBuff Buff; |
PStatusBuff Buff; |
| 1041 |
|
|
| 1042 |
if ((StatusLine>0) && |
if (isCursorOnStatusLine) |
|
(CursorY==NumOfLines-1)) |
|
| 1043 |
Buff = &SBuff2; // for status line |
Buff = &SBuff2; // for status line |
| 1044 |
else if (AltScr) |
else if (AltScr) |
| 1045 |
Buff = &SBuff3; // for alternate screen |
Buff = &SBuff3; // for alternate screen |
| 1063 |
PStatusBuff Buff; |
PStatusBuff Buff; |
| 1064 |
UpdateStr(); |
UpdateStr(); |
| 1065 |
|
|
| 1066 |
if ((StatusLine>0) && |
if (isCursorOnStatusLine) |
|
(CursorY==NumOfLines-1)) |
|
| 1067 |
Buff = &SBuff2; // for status line |
Buff = &SBuff2; // for status line |
| 1068 |
else if (AltScr) |
else if (AltScr) |
| 1069 |
Buff = &SBuff3; // for alternate screen |
Buff = &SBuff3; // for alternate screen |
| 1158 |
BuffFillWithE(); |
BuffFillWithE(); |
| 1159 |
CursorTop = 0; |
CursorTop = 0; |
| 1160 |
CursorBottom = NumOfLines-1-StatusLine; |
CursorBottom = NumOfLines-1-StatusLine; |
| 1161 |
|
CursorLeftM = 0; |
| 1162 |
|
CursorRightM = NumOfColumns - 1; |
| 1163 |
MoveCursor(0,0); |
MoveCursor(0,0); |
| 1164 |
ParseMode = ModeFirst; |
ParseMode = ModeFirst; |
| 1165 |
break; |
break; |
| 1472 |
|
|
| 1473 |
void CSCursorUp1() |
void CSCursorUp1() |
| 1474 |
{ |
{ |
| 1475 |
MoveCursor(0,CursorY); |
MoveCursor(CursorLeftM, CursorY); |
| 1476 |
CSCursorUp(); |
CSCursorUp(); |
| 1477 |
} |
} |
| 1478 |
|
|
| 1497 |
|
|
| 1498 |
void CSCursorDown1() |
void CSCursorDown1() |
| 1499 |
{ |
{ |
| 1500 |
MoveCursor(0,CursorY); |
MoveCursor(CursorLeftM, CursorY); |
| 1501 |
CSCursorDown(); |
CSCursorDown(); |
| 1502 |
} |
} |
| 1503 |
|
|
| 1643 |
BuffEraseChars(Param[1]); |
BuffEraseChars(Param[1]); |
| 1644 |
} |
} |
| 1645 |
|
|
| 1646 |
void CSScrollUP() |
void CSScrollUp() |
| 1647 |
{ |
{ |
| 1648 |
if (Param[1]<1) Param[1] = 1; |
if (Param[1]<1) Param[1] = 1; |
| 1649 |
BuffUpdateScroll(); |
BuffUpdateScroll(); |
| 1669 |
CursorBackwardTab(Param[1]); |
CursorBackwardTab(Param[1]); |
| 1670 |
} |
} |
| 1671 |
|
|
| 1672 |
void CSMoveToColumnN() |
void CSMoveToColumnN() // CHA / HPA |
| 1673 |
{ |
{ |
| 1674 |
if (Param[1]<1) Param[1] = 1; |
if (Param[1]<1) |
| 1675 |
Param[1]--; |
Param[1] = 1; |
| 1676 |
if (Param[1] > NumOfColumns-1) Param[1] = NumOfColumns-1; |
else if (Param[1] > NumOfColumns-1) |
| 1677 |
MoveCursor(Param[1],CursorY); |
Param[1] = NumOfColumns-1; |
|
} |
|
| 1678 |
|
|
| 1679 |
void CSCursorRight() |
Param[1]--; |
|
{ |
|
|
if (Param[1]<1) Param[1] = 1; |
|
|
if (CursorX + Param[1] > NumOfColumns-1) |
|
|
MoveCursor(NumOfColumns-1,CursorY); |
|
|
else |
|
|
MoveCursor(CursorX+Param[1],CursorY); |
|
|
} |
|
| 1680 |
|
|
| 1681 |
void CSCursorLeft() |
if (RelativeOrgMode) { |
| 1682 |
{ |
if (CursorLeftM + Param[1] > CursorRightM ) |
| 1683 |
if (Param[1]<1) Param[1] = 1; |
MoveCursor(CursorRightM, CursorY); |
| 1684 |
if (CursorX-Param[1] < 0) |
else |
| 1685 |
MoveCursor(0,CursorY); |
MoveCursor(CursorLeftM + Param[1], CursorY); |
| 1686 |
else |
} |
| 1687 |
MoveCursor(CursorX-Param[1],CursorY); |
else { |
| 1688 |
} |
MoveCursor(Param[1], CursorY); |
| 1689 |
|
} |
| 1690 |
|
} |
| 1691 |
|
|
| 1692 |
|
void CSCursorRight() // CUF / HPR |
| 1693 |
|
{ |
| 1694 |
|
int NewX; |
| 1695 |
|
|
| 1696 |
|
if (Param[1] < 1) |
| 1697 |
|
Param[1] = 1; |
| 1698 |
|
else if (Param[1] > NumOfColumns - 1) |
| 1699 |
|
Param[1] = NumOfColumns - 1; |
| 1700 |
|
|
| 1701 |
|
NewX = CursorX + Param[1]; |
| 1702 |
|
|
| 1703 |
|
if (CursorX <= CursorRightM && NewX > CursorRightM) |
| 1704 |
|
NewX = CursorRightM; |
| 1705 |
|
else if (NewX > NumOfColumns-1) |
| 1706 |
|
NewX = NumOfColumns-1; |
| 1707 |
|
|
| 1708 |
|
MoveCursor(NewX, CursorY); |
| 1709 |
|
} |
| 1710 |
|
|
| 1711 |
|
void CSCursorLeft() // CUB / HPB |
| 1712 |
|
{ |
| 1713 |
|
int NewX; |
| 1714 |
|
|
| 1715 |
|
if (Param[1] < 1) |
| 1716 |
|
Param[1] = 1; |
| 1717 |
|
|
| 1718 |
|
if (CursorX < Param[1]) |
| 1719 |
|
NewX = 0; |
| 1720 |
|
else |
| 1721 |
|
NewX = CursorX - Param[1]; |
| 1722 |
|
|
| 1723 |
|
if (CursorX >= CursorLeftM && NewX < CursorLeftM) |
| 1724 |
|
NewX = CursorLeftM; |
| 1725 |
|
|
| 1726 |
|
MoveCursor(NewX, CursorY); |
| 1727 |
|
} |
| 1728 |
|
|
| 1729 |
void CSMoveToLineN() |
void CSMoveToLineN() |
| 1730 |
{ |
{ |
| 1744 |
} |
} |
| 1745 |
} |
} |
| 1746 |
|
|
| 1747 |
void CSMoveToXY() |
void CSMoveToXY() // CUP / HVP |
| 1748 |
{ |
{ |
| 1749 |
int NewX, NewY; |
int NewX, NewY; |
| 1750 |
|
|
| 1751 |
if (Param[1]<1) Param[1] = 1; |
if (Param[1] < 1) |
| 1752 |
if ((NParam < 2) || (Param[2]<1)) Param[2] = 1; |
Param[1] = 1; |
| 1753 |
NewX = Param[2] - 1; |
else if (Param[1] > NumOfLines-StatusLine) |
| 1754 |
if (NewX > NumOfColumns-1) NewX = NumOfColumns-1; |
Param[1] = NumOfLines-StatusLine; |
| 1755 |
|
|
| 1756 |
if ((StatusLine>0) && (CursorY==NumOfLines-1)) |
if ((NParam < 2) || (Param[2]<1)) |
| 1757 |
NewY = CursorY; |
Param[2] = 1; |
| 1758 |
else if (RelativeOrgMode) |
else if (Param[2] > NumOfColumns) |
| 1759 |
{ |
Param[2] = NumOfColumns; |
| 1760 |
NewY = CursorTop + Param[1] - 1; |
|
| 1761 |
if (NewY > CursorBottom) NewY = CursorBottom; |
NewY = Param[1] - 1; |
| 1762 |
} |
NewX = Param[2] - 1; |
| 1763 |
else { |
|
| 1764 |
NewY = Param[1] - 1; |
if (isCursorOnStatusLine) |
| 1765 |
if (NewY > NumOfLines-1-StatusLine) |
NewY = CursorY; |
| 1766 |
NewY = NumOfLines-1-StatusLine; |
else if (RelativeOrgMode) { |
| 1767 |
} |
NewX += CursorLeftM; |
| 1768 |
MoveCursor(NewX,NewY); |
if (NewX > CursorRightM) |
| 1769 |
} |
NewX = CursorRightM; |
| 1770 |
|
|
| 1771 |
|
NewY += CursorTop; |
| 1772 |
|
if (NewY > CursorBottom) |
| 1773 |
|
NewY = CursorBottom; |
| 1774 |
|
} |
| 1775 |
|
else { |
| 1776 |
|
NewY = Param[1] - 1; |
| 1777 |
|
if (NewY > NumOfLines-1-StatusLine) |
| 1778 |
|
NewY = NumOfLines-1-StatusLine; |
| 1779 |
|
} |
| 1780 |
|
|
| 1781 |
|
MoveCursor(NewX, NewY); |
| 1782 |
|
} |
| 1783 |
|
|
| 1784 |
void CSDeleteTabStop() |
void CSDeleteTabStop() |
| 1785 |
{ |
{ |
| 1887 |
break; |
break; |
| 1888 |
case 6: |
case 6: |
| 1889 |
/* Cursor Position Report */ |
/* Cursor Position Report */ |
| 1890 |
Y = CursorY+1; |
if (isCursorOnStatusLine) |
|
if ((StatusLine>0) && |
|
|
(Y==NumOfLines)) |
|
| 1891 |
Y = 1; |
Y = 1; |
| 1892 |
|
else |
| 1893 |
|
Y = CursorY+1; |
| 1894 |
len = _snprintf_s_l(Report, sizeof(Report), _TRUNCATE, "%u;%uR", CLocale, Y, CursorX+1); |
len = _snprintf_s_l(Report, sizeof(Report), _TRUNCATE, "%u;%uR", CLocale, Y, CursorX+1); |
| 1895 |
SendCSIstr(Report, len); |
SendCSIstr(Report, len); |
| 1896 |
break; |
break; |
| 2186 |
|
|
| 2187 |
void CSSetScrollRegion() |
void CSSetScrollRegion() |
| 2188 |
{ |
{ |
| 2189 |
if ((StatusLine>0) && |
if (isCursorOnStatusLine) { |
|
(CursorY==NumOfLines-1)) |
|
|
{ |
|
| 2190 |
MoveCursor(0,CursorY); |
MoveCursor(0,CursorY); |
| 2191 |
return; |
return; |
| 2192 |
} |
} |
| 2206 |
else MoveCursor(0,0); |
else MoveCursor(0,0); |
| 2207 |
} |
} |
| 2208 |
|
|
| 2209 |
|
void CSSetLRScrollRegion() |
| 2210 |
|
{ |
| 2211 |
|
// if (isCursorOnStatusLine) { |
| 2212 |
|
// MoveCursor(0,CursorY); |
| 2213 |
|
// return; |
| 2214 |
|
// } |
| 2215 |
|
|
| 2216 |
|
if (Param[1] < 1) |
| 2217 |
|
Param[1] =1; |
| 2218 |
|
else if (Param[1] > NumOfColumns) |
| 2219 |
|
Param[1] = NumOfColumns; |
| 2220 |
|
|
| 2221 |
|
if (NParam < 2 || Param[2] < 1 || Param[2] > NumOfColumns) |
| 2222 |
|
Param[2] = NumOfColumns; |
| 2223 |
|
|
| 2224 |
|
if (Param[1] >= Param[2]) |
| 2225 |
|
return; |
| 2226 |
|
|
| 2227 |
|
Param[1]--; |
| 2228 |
|
Param[2]--; |
| 2229 |
|
|
| 2230 |
|
CursorLeftM = Param[1]; |
| 2231 |
|
CursorRightM = Param[2]; |
| 2232 |
|
|
| 2233 |
|
if (RelativeOrgMode) |
| 2234 |
|
MoveCursor(CursorLeftM, CursorTop); |
| 2235 |
|
else |
| 2236 |
|
MoveCursor(0, 0); |
| 2237 |
|
} |
| 2238 |
|
|
| 2239 |
void CSSunSequence() /* Sun terminal private sequences */ |
void CSSunSequence() /* Sun terminal private sequences */ |
| 2240 |
{ |
{ |
| 2241 |
int x, y, len; |
int x, y, len; |
| 2588 |
CSQExchangeColor(); /* Exchange text/back color */ |
CSQExchangeColor(); /* Exchange text/back color */ |
| 2589 |
break; |
break; |
| 2590 |
case 6: // DECOM |
case 6: // DECOM |
| 2591 |
if ((StatusLine>0) && (CursorY==NumOfLines-1)) |
if (isCursorOnStatusLine) |
| 2592 |
MoveCursor(0,CursorY); |
MoveCursor(0,CursorY); |
| 2593 |
else { |
else { |
| 2594 |
RelativeOrgMode = TRUE; |
RelativeOrgMode = TRUE; |
| 2636 |
break; |
break; |
| 2637 |
case 66: AppliKeyMode = TRUE; break; // DECNKM |
case 66: AppliKeyMode = TRUE; break; // DECNKM |
| 2638 |
case 67: ts.BSKey = IdBS; break; // DECBKM |
case 67: ts.BSKey = IdBS; break; // DECBKM |
| 2639 |
|
case 69: LRMarginMode = TRUE; break; // DECLRMM (DECVSSM) |
| 2640 |
case 1000: // Mouse Tracking |
case 1000: // Mouse Tracking |
| 2641 |
if (ts.MouseEventTracking) |
if (ts.MouseEventTracking) |
| 2642 |
MouseReportMode = IdMouseTrackVT200; |
MouseReportMode = IdMouseTrackVT200; |
| 2751 |
CSQExchangeColor(); /* Exchange text/back color */ |
CSQExchangeColor(); /* Exchange text/back color */ |
| 2752 |
break; |
break; |
| 2753 |
case 6: // DECOM |
case 6: // DECOM |
| 2754 |
if ((StatusLine>0) && (CursorY==NumOfLines-1)) |
if (isCursorOnStatusLine) |
| 2755 |
MoveCursor(0,CursorY); |
MoveCursor(0,CursorY); |
| 2756 |
else { |
else { |
| 2757 |
RelativeOrgMode = FALSE; |
RelativeOrgMode = FALSE; |
| 2792 |
break; |
break; |
| 2793 |
case 66: AppliKeyMode = FALSE; break; // DECNKM |
case 66: AppliKeyMode = FALSE; break; // DECNKM |
| 2794 |
case 67: ts.BSKey = IdDEL; break; // DECBKM |
case 67: ts.BSKey = IdDEL; break; // DECBKM |
| 2795 |
|
case 69: // DECLRMM (DECVSSM) |
| 2796 |
|
LRMarginMode = FALSE; |
| 2797 |
|
CursorLeftM = 0; |
| 2798 |
|
CursorRightM = NumOfColumns - 1; |
| 2799 |
|
break; |
| 2800 |
case 1000: // Mouse Tracking |
case 1000: // Mouse Tracking |
| 2801 |
case 1001: // Hilite Mouse Tracking |
case 1001: // Hilite Mouse Tracking |
| 2802 |
case 1002: // Button-Event Mouse Tracking |
case 1002: // Button-Event Mouse Tracking |
| 2881 |
AppliCursorMode = FALSE; |
AppliCursorMode = FALSE; |
| 2882 |
AppliEscapeMode = FALSE; |
AppliEscapeMode = FALSE; |
| 2883 |
AcceptWheelToCursor = ts.TranslateWheelToCursor; |
AcceptWheelToCursor = ts.TranslateWheelToCursor; |
| 2884 |
if ((StatusLine>0) && |
if (isCursorOnStatusLine) |
|
(CursorY == NumOfLines-1)) |
|
| 2885 |
MoveToMainScreen(); |
MoveToMainScreen(); |
| 2886 |
CursorTop = 0; |
CursorTop = 0; |
| 2887 |
CursorBottom = NumOfLines-1-StatusLine; |
CursorBottom = NumOfLines-1-StatusLine; |
| 2888 |
|
CursorLeftM = 0; |
| 2889 |
|
CursorRightM = NumOfColumns - 1; |
| 2890 |
ResetCharSet(); |
ResetCharSet(); |
| 2891 |
|
|
| 2892 |
/* Attribute */ |
/* Attribute */ |
| 3572 |
case 'P': CSDeleteCharacter(); break; // DCH |
case 'P': CSDeleteCharacter(); break; // DCH |
| 3573 |
// case 'Q': break; // SEE -- Not support |
// case 'Q': break; // SEE -- Not support |
| 3574 |
// case 'R': break; // CPR -- Report only, ignore. |
// case 'R': break; // CPR -- Report only, ignore. |
| 3575 |
case 'S': CSScrollUP(); break; // SU |
case 'S': CSScrollUp(); break; // SU |
| 3576 |
case 'T': CSScrollDown(); break; // SD |
case 'T': CSScrollDown(); break; // SD |
| 3577 |
// case 'U': break; // NP -- Not support |
// case 'U': break; // NP -- Not support |
| 3578 |
// case 'V': break; // PP -- Not support |
// case 'V': break; // PP -- Not support |
| 3603 |
|
|
| 3604 |
// Private Sequence |
// Private Sequence |
| 3605 |
case 'r': CSSetScrollRegion(); break; // DECSTBM |
case 'r': CSSetScrollRegion(); break; // DECSTBM |
| 3606 |
case 's': SaveCursor(); break; // SCP (Save cursor (ANSI.SYS/SCO?)) |
case 's': |
| 3607 |
|
if (LRMarginMode) |
| 3608 |
|
CSSetLRScrollRegion(); // DECSLRM |
| 3609 |
|
else |
| 3610 |
|
SaveCursor(); // SCP (Save cursor (ANSI.SYS/SCO?)) |
| 3611 |
|
break; |
| 3612 |
case 't': CSSunSequence(); break; // DECSLPP / Window manipulation(dtterm?) |
case 't': CSSunSequence(); break; // DECSLPP / Window manipulation(dtterm?) |
| 3613 |
case 'u': RestoreCursor(); break; // RCP (Restore cursor (ANSI.SYS/SCO)) |
case 'u': RestoreCursor(); break; // RCP (Restore cursor (ANSI.SYS/SCO)) |
| 3614 |
} |
} |