- break;
- // Set Mode (?)
- case 'h':
- if( argc >= 1 )
- {
- switch(args[0])
- {
- case 2: // Keyboard action mode
- case 4: // Insert mode
- case 12: // Send/receive
- case 20: // Automatic newline
- break;
- default: // ?
- break;
- }
- }
- break;
-
- // Set Font flags
- case 'm':
- for( ; argc--; )
- {
- int colour_idx;
- // Flags
- if( 0 <= args[argc] && args[argc] <= 8)
- {
- switch(args[argc])
- {
- case 0: Term->CurColour = DEFAULT_COLOUR; break; // Reset
- case 1: Term->CurColour |= 0x80000000; break; // Bright
- case 2: Term->CurColour &= ~0x80000000; break; // Dim
- }
- }
- // Foreground Colour
- else if(30 <= args[argc] && args[argc] <= 37) {
- // Get colour index, accounting for bright bit
- colour_idx = args[argc]-30 + ((Term->CurColour>>28) & 8);
- Term->CurColour &= 0x8000FFFF;
- Term->CurColour |= (Uint32)caVT100Colours[ colour_idx ] << 16;
- }
- // Background Colour
- else if(40 <= args[argc] && args[argc] <= 47) {
- // Get colour index, accounting for bright bit
- colour_idx = args[argc]-40 + ((Term->CurColour>>12) & 8);
- Term->CurColour &= 0xFFFF8000;
- Term->CurColour |= caVT100Colours[ colour_idx ];
- }
- // Foreground Colour - bright
- else if(90 <= args[argc] && args[argc] <= 97 ) {
- colour_idx = args[argc]-90 + 8;
- Term->CurColour &= 0x8000FFFF;
- Term->CurColour |= (Uint32)caVT100Colours[ colour_idx ] << 16;
- }
- // Background Colour - bright
- else if(100 <= args[argc] && args[argc] <= 107 ) {
- colour_idx = args[argc]-100 + 8;
- Term->CurColour &= 0xFFFF8000;
- Term->CurColour |= (Uint32)caVT100Colours[ colour_idx ];
- }
- else {
- Log_Warning("VTerm", "Unknown font flag %i", args[argc]);
- }
- }
- break;
-
- // Set scrolling region
- case 'r':
- if( argc != 2 ) break;
- Term->ScrollTop = args[0];
- Term->ScrollHeight = args[1] - args[0];
- break;
-
- default:
- Log_Warning("VTerm", "Unknown control sequence '\\x1B[%c'", CmdChar);
- break;