@@ -416,6 +416,10 @@ public void HandleCsi(string identifier, Params parameters)
416416 CursorBackwardTab ( parameters ) ;
417417 break ;
418418
419+ case CsiCommand . TabClear :
420+ TabClear ( parameters ) ;
421+ break ;
422+
419423 case CsiCommand . DeviceAttributes :
420424 DeviceAttributes ( parameters , isPrivate ) ;
421425 break ;
@@ -1065,6 +1069,25 @@ private void CursorBackwardTab(Params parameters)
10651069 }
10661070 }
10671071
1072+ private void TabClear ( Params parameters )
1073+ {
1074+ // TBC - Tab Clear (CSI g)
1075+ // Ps = 0: Clear tab stop at current column (default)
1076+ // Ps = 3: Clear all tab stops
1077+ // Note: We use fixed tab stops, so this is acknowledged but has no effect
1078+ // A full implementation would maintain a list of custom tab stops
1079+ var mode = parameters . GetParam ( 0 , 0 ) ;
1080+ switch ( mode )
1081+ {
1082+ case 0 :
1083+ // Clear current column tab stop - acknowledged but no action
1084+ break ;
1085+ case 3 :
1086+ // Clear all tab stops - acknowledged but no action
1087+ break ;
1088+ }
1089+ }
1090+
10681091 private void DeviceAttributes ( Params parameters , bool isPrivate )
10691092 {
10701093 // DA - Device Attributes (CSI c or CSI > c)
@@ -1519,19 +1542,45 @@ private void SetModeInternal(int mode, bool isPrivate)
15191542 _terminal . ApplicationCursorKeys = true ;
15201543 break ;
15211544
1545+ case TerminalMode . InsertMode :
1546+ // Mode 4: In DEC private mode context, this is SmoothScroll (DECSCLM)
1547+ // InsertMode and SmoothScroll share value 4 in the enum
1548+ // Smooth scroll is acknowledged but has no effect in modern terminals
1549+ break ;
1550+
1551+ case TerminalMode . ReverseVideo :
1552+ _terminal . ReverseVideo = true ;
1553+ break ;
1554+
15221555 case TerminalMode . Origin :
15231556 _terminal . OriginMode = true ;
15241557 _buffer . SetCursor ( 0 , 0 ) ;
15251558 break ;
15261559
15271560 case TerminalMode . Wraparound :
1561+ // Mode 7: Wraparound mode
1562+ // Wraparound and AutoWrapMode share value 7 in the enum
15281563 _terminal . Options . Wraparound = true ;
15291564 break ;
15301565
1566+ case TerminalMode . AutoRepeat :
1567+ // Auto repeat is typically always enabled in modern terminals
1568+ // This mode is acknowledged but has no effect
1569+ break ;
1570+
15311571 case TerminalMode . ShowCursor :
15321572 _terminal . CursorVisible = true ;
15331573 break ;
15341574
1575+ case TerminalMode . NationalCharset :
1576+ // National replacement character set mode
1577+ // Acknowledged but typically no specific action needed for modern use
1578+ break ;
1579+
1580+ case TerminalMode . ReverseWraparound :
1581+ _terminal . ReverseWraparound = true ;
1582+ break ;
1583+
15351584 case TerminalMode . AppKeypad :
15361585 _terminal . ApplicationKeypad = true ;
15371586 break ;
@@ -1683,19 +1732,43 @@ private void ResetModeInternal(int mode, bool isPrivate)
16831732 _terminal . ApplicationCursorKeys = false ;
16841733 break ;
16851734
1735+ case TerminalMode . InsertMode :
1736+ // Mode 4: In DEC private mode context, this is SmoothScroll (DECSCLM)
1737+ // Smooth scroll is acknowledged but has no effect in modern terminals
1738+ break ;
1739+
1740+ case TerminalMode . ReverseVideo :
1741+ _terminal . ReverseVideo = false ;
1742+ break ;
1743+
16861744 case TerminalMode . Origin :
16871745 _terminal . OriginMode = false ;
16881746 _buffer . SetCursor ( 0 , 0 ) ;
16891747 break ;
16901748
16911749 case TerminalMode . Wraparound :
1750+ // Mode 7: Wraparound mode
16921751 _terminal . Options . Wraparound = false ;
16931752 break ;
16941753
1754+ case TerminalMode . AutoRepeat :
1755+ // Auto repeat is typically always enabled in modern terminals
1756+ // This mode is acknowledged but has no effect
1757+ break ;
1758+
16951759 case TerminalMode . ShowCursor :
16961760 _terminal . CursorVisible = false ;
16971761 break ;
16981762
1763+ case TerminalMode . NationalCharset :
1764+ // National replacement character set mode
1765+ // Acknowledged but typically no specific action needed for modern use
1766+ break ;
1767+
1768+ case TerminalMode . ReverseWraparound :
1769+ _terminal . ReverseWraparound = false ;
1770+ break ;
1771+
16991772 case TerminalMode . AppKeypad :
17001773 _terminal . ApplicationKeypad = false ;
17011774 break ;
0 commit comments