Add mnemonics to sequence comments
This commit is contained in:
parent
77fabb78e0
commit
d04feca91c
96
ANSI.c
96
ANSI.c
@ -968,13 +968,13 @@ void InterpretEscSeq( void )
|
|||||||
for (i = 0; i < es_argc; i++)
|
for (i = 0; i < es_argc; i++)
|
||||||
switch (es_argv[i])
|
switch (es_argv[i])
|
||||||
{
|
{
|
||||||
case 25:
|
case 25: // DECTCEM
|
||||||
GetConsoleCursorInfo( hConOut, &CursInfo );
|
GetConsoleCursorInfo( hConOut, &CursInfo );
|
||||||
CursInfo.bVisible = (suffix == 'h');
|
CursInfo.bVisible = (suffix == 'h');
|
||||||
SetConsoleCursorInfo( hConOut, &CursInfo );
|
SetConsoleCursorInfo( hConOut, &CursInfo );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 7:
|
case 7: // DECAWM
|
||||||
awm = (suffix == 'h');
|
awm = (suffix == 'h');
|
||||||
mode = cache[0].mode;
|
mode = cache[0].mode;
|
||||||
if (awm)
|
if (awm)
|
||||||
@ -984,15 +984,15 @@ void InterpretEscSeq( void )
|
|||||||
SetConsoleMode( hConOut, mode );
|
SetConsoleMode( hConOut, mode );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 6:
|
case 6: // DECOM
|
||||||
om = (suffix == 'h');
|
om = (suffix == 'h');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 95:
|
case 95: // DECNCSM
|
||||||
pState->noclear = (suffix == 'h');
|
pState->noclear = (suffix == 'h');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3:
|
case 3: // DECCOLM
|
||||||
{
|
{
|
||||||
COORD buf;
|
COORD buf;
|
||||||
SMALL_RECT win;
|
SMALL_RECT win;
|
||||||
@ -1046,7 +1046,7 @@ void InterpretEscSeq( void )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (suffix == 'W')
|
else if (suffix == 'W') // DECST8C
|
||||||
{
|
{
|
||||||
if (es_argv[0] != 5 || es_argc > 2) return;
|
if (es_argv[0] != 5 || es_argc > 2) return;
|
||||||
if (es_argc == 1) es_argv[1] = 8;
|
if (es_argc == 1) es_argv[1] = 8;
|
||||||
@ -1075,7 +1075,7 @@ void InterpretEscSeq( void )
|
|||||||
}
|
}
|
||||||
switch (suffix)
|
switch (suffix)
|
||||||
{
|
{
|
||||||
case 'm':
|
case 'm': // SGR
|
||||||
if (es_argc == 0) es_argc++; // ESC[m == ESC[0m
|
if (es_argc == 0) es_argc++; // ESC[m == ESC[0m
|
||||||
for (i = 0; i < es_argc; i++)
|
for (i = 0; i < es_argc; i++)
|
||||||
{
|
{
|
||||||
@ -1212,7 +1212,7 @@ void InterpretEscSeq( void )
|
|||||||
SetConsoleTextAttribute( hConOut, attribut );
|
SetConsoleTextAttribute( hConOut, attribut );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'J':
|
case 'J': // ED
|
||||||
if (es_argc > 1) return; // ESC[J == ESC[0J
|
if (es_argc > 1) return; // ESC[J == ESC[0J
|
||||||
switch (es_argv[0])
|
switch (es_argv[0])
|
||||||
{
|
{
|
||||||
@ -1268,7 +1268,7 @@ void InterpretEscSeq( void )
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'K':
|
case 'K': // EL
|
||||||
if (es_argc > 1) return; // ESC[K == ESC[0K
|
if (es_argc > 1) return; // ESC[K == ESC[0K
|
||||||
switch (es_argv[0])
|
switch (es_argv[0])
|
||||||
{
|
{
|
||||||
@ -1291,12 +1291,12 @@ void InterpretEscSeq( void )
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'X': // ESC[#X Erase # characters.
|
case 'X': // ECH - ESC[#X Erase # characters.
|
||||||
if (es_argc > 1) return; // ESC[X == ESC[1X
|
if (es_argc > 1) return; // ESC[X == ESC[1X
|
||||||
FillBlank( p1, CUR );
|
FillBlank( p1, CUR );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'r': // ESC[#;#r Set top and bottom margins.
|
case 'r': // DECSTBM - ESC[#;#r Set top and bottom margins.
|
||||||
if (es_argc == 0 && suffix2 == '+')
|
if (es_argc == 0 && suffix2 == '+')
|
||||||
{
|
{
|
||||||
tb_margins = FALSE; // ESC[+r == remove margins
|
tb_margins = FALSE; // ESC[+r == remove margins
|
||||||
@ -1312,8 +1312,8 @@ void InterpretEscSeq( void )
|
|||||||
set_pos( LEFT, om ? TOP + top_margin : TOP );
|
set_pos( LEFT, om ? TOP + top_margin : TOP );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'S': // ESC[#S Scroll up/Pan down.
|
case 'S': // SU - ESC[#S Scroll up/Pan down.
|
||||||
case 'T': // ESC[#T Scroll down/Pan up.
|
case 'T': // SD - ESC[#T Scroll down/Pan up.
|
||||||
if (es_argc > 1) return; // ESC[S == ESC[1S
|
if (es_argc > 1) return; // ESC[S == ESC[1S
|
||||||
Pos.X =
|
Pos.X =
|
||||||
Rect.Left = LEFT;
|
Rect.Left = LEFT;
|
||||||
@ -1334,8 +1334,8 @@ void InterpretEscSeq( void )
|
|||||||
ScrollConsoleScreenBuffer( hConOut, &Rect, &Rect, Pos, &CharInfo );
|
ScrollConsoleScreenBuffer( hConOut, &Rect, &Rect, Pos, &CharInfo );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'L': // ESC[#L Insert # blank lines.
|
case 'L': // IL - ESC[#L Insert # blank lines.
|
||||||
case 'M': // ESC[#M Delete # lines.
|
case 'M': // DL - ESC[#M Delete # lines.
|
||||||
if (es_argc > 1) return; // ESC[L == ESC[1L
|
if (es_argc > 1) return; // ESC[L == ESC[1L
|
||||||
Pos.X =
|
Pos.X =
|
||||||
Rect.Left = LEFT;
|
Rect.Left = LEFT;
|
||||||
@ -1357,8 +1357,8 @@ void InterpretEscSeq( void )
|
|||||||
// Technically should home the cursor, but perhaps not expected.
|
// Technically should home the cursor, but perhaps not expected.
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case '@': // ESC[#@ Insert # blank characters.
|
case '@': // ICH - ESC[#@ Insert # blank characters.
|
||||||
case 'P': // ESC[#P Delete # characters.
|
case 'P': // DCH - ESC[#P Delete # characters.
|
||||||
if (es_argc > 1) return; // ESC[P == ESC[1P
|
if (es_argc > 1) return; // ESC[P == ESC[1P
|
||||||
Rect.Left = CUR.X;
|
Rect.Left = CUR.X;
|
||||||
Rect.Right = RIGHT;
|
Rect.Right = RIGHT;
|
||||||
@ -1373,9 +1373,9 @@ void InterpretEscSeq( void )
|
|||||||
ScrollConsoleScreenBuffer( hConOut, &Rect, &Rect, CUR, &CharInfo );
|
ScrollConsoleScreenBuffer( hConOut, &Rect, &Rect, CUR, &CharInfo );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'k': // ESC[#k
|
case 'k': // VPB - ESC[#k
|
||||||
case 'A': // ESC[#A Moves cursor up # lines
|
case 'A': // CUU - ESC[#A Moves cursor up # lines
|
||||||
case 'F': // ESC[#F Moves cursor up # lines, column 1.
|
case 'F': // CPL - ESC[#F Moves cursor up # lines, column 1.
|
||||||
if (es_argc > 1) return; // ESC[A == ESC[1A
|
if (es_argc > 1) return; // ESC[A == ESC[1A
|
||||||
Pos.Y = CUR.Y - p1;
|
Pos.Y = CUR.Y - p1;
|
||||||
if (tb_margins && (om || CUR.Y >= TOP + top_margin))
|
if (tb_margins && (om || CUR.Y >= TOP + top_margin))
|
||||||
@ -1384,9 +1384,9 @@ void InterpretEscSeq( void )
|
|||||||
set_pos( (suffix == 'F') ? LEFT : CUR.X, Pos.Y );
|
set_pos( (suffix == 'F') ? LEFT : CUR.X, Pos.Y );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'e': // ESC[#e
|
case 'e': // VPR - ESC[#e
|
||||||
case 'B': // ESC[#B Moves cursor down # lines
|
case 'B': // CUD - ESC[#B Moves cursor down # lines
|
||||||
case 'E': // ESC[#E Moves cursor down # lines, column 1.
|
case 'E': // CNL - ESC[#E Moves cursor down # lines, column 1.
|
||||||
if (es_argc > 1) return; // ESC[B == ESC[1B
|
if (es_argc > 1) return; // ESC[B == ESC[1B
|
||||||
Pos.Y = CUR.Y + p1;
|
Pos.Y = CUR.Y + p1;
|
||||||
if (tb_margins && (om || CUR.Y <= TOP + bot_margin))
|
if (tb_margins && (om || CUR.Y <= TOP + bot_margin))
|
||||||
@ -1395,16 +1395,16 @@ void InterpretEscSeq( void )
|
|||||||
set_pos( (suffix == 'E') ? LEFT : CUR.X, Pos.Y );
|
set_pos( (suffix == 'E') ? LEFT : CUR.X, Pos.Y );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'a': // ESC[#a
|
case 'a': // HPR - ESC[#a
|
||||||
case 'C': // ESC[#C Moves cursor forward # spaces
|
case 'C': // CUF - ESC[#C Moves cursor forward # spaces
|
||||||
if (es_argc > 1) return; // ESC[C == ESC[1C
|
if (es_argc > 1) return; // ESC[C == ESC[1C
|
||||||
Pos.X = CUR.X + p1;
|
Pos.X = CUR.X + p1;
|
||||||
if (Pos.X > RIGHT) Pos.X = RIGHT;
|
if (Pos.X > RIGHT) Pos.X = RIGHT;
|
||||||
set_pos( Pos.X, CUR.Y );
|
set_pos( Pos.X, CUR.Y );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'j': // ESC[#j
|
case 'j': // HPB - ESC[#j
|
||||||
case 'D': // ESC[#D Moves cursor back # spaces
|
case 'D': // CUB - ESC[#D Moves cursor back # spaces
|
||||||
if (es_argc > 1) return; // ESC[D == ESC[1D
|
if (es_argc > 1) return; // ESC[D == ESC[1D
|
||||||
cub:
|
cub:
|
||||||
Pos.X = CUR.X - p1;
|
Pos.X = CUR.X - p1;
|
||||||
@ -1417,22 +1417,22 @@ void InterpretEscSeq( void )
|
|||||||
set_pos( Pos.X, CUR.Y );
|
set_pos( Pos.X, CUR.Y );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case '`': // ESC[#`
|
case '`': // HPA - ESC[#`
|
||||||
case 'G': // ESC[#G Moves cursor column # in current row.
|
case 'G': // CHA - ESC[#G Moves cursor column # in current row.
|
||||||
if (es_argc > 1) return; // ESC[G == ESC[1G
|
if (es_argc > 1) return; // ESC[G == ESC[1G
|
||||||
Pos.X = p1 - 1;
|
Pos.X = p1 - 1;
|
||||||
if (Pos.X > RIGHT) Pos.X = RIGHT;
|
if (Pos.X > RIGHT) Pos.X = RIGHT;
|
||||||
set_pos( Pos.X, CUR.Y );
|
set_pos( Pos.X, CUR.Y );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'f': // ESC[#;#f
|
case 'f': // HVP - ESC[#;#f
|
||||||
case 'H': // ESC[#;#H Moves cursor to line #, column #
|
case 'H': // CUP - ESC[#;#H Moves cursor to line #, column #
|
||||||
if (es_argc > 2) return; // ESC[H == ESC[1;1H ESC[#H == ESC[#;1H
|
if (es_argc > 2) return; // ESC[H == ESC[1;1H ESC[#H == ESC[#;1H
|
||||||
CUR.X = p2 - 1;
|
CUR.X = p2 - 1;
|
||||||
if (CUR.X > RIGHT) CUR.X = RIGHT;
|
if (CUR.X > RIGHT) CUR.X = RIGHT;
|
||||||
--es_argc; // so we can fall through
|
--es_argc; // so we can fall through
|
||||||
|
|
||||||
case 'd': // ESC[#d Moves cursor row #, current column.
|
case 'd': // VPA - ESC[#d Moves cursor row #, current column.
|
||||||
if (es_argc > 1) return; // ESC[d == ESC[1d
|
if (es_argc > 1) return; // ESC[d == ESC[1d
|
||||||
if (tb_margins && om)
|
if (tb_margins && om)
|
||||||
{
|
{
|
||||||
@ -1445,7 +1445,7 @@ void InterpretEscSeq( void )
|
|||||||
set_pos( CUR.X, Pos.Y );
|
set_pos( CUR.X, Pos.Y );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'g':
|
case 'g': // TBC
|
||||||
if (es_argc > 1) return; // ESC[g == ESC[0g
|
if (es_argc > 1) return; // ESC[g == ESC[0g
|
||||||
switch (es_argv[0])
|
switch (es_argv[0])
|
||||||
{
|
{
|
||||||
@ -1465,7 +1465,7 @@ void InterpretEscSeq( void )
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'I': // ESC[#I Moves cursor forward # tabs
|
case 'I': // CHT - ESC[#I Moves cursor forward # tabs
|
||||||
if (es_argc > 1) return; // ESC[I == ESC[1I
|
if (es_argc > 1) return; // ESC[I == ESC[1I
|
||||||
Pos.Y = CUR.Y;
|
Pos.Y = CUR.Y;
|
||||||
if (pState->tabs)
|
if (pState->tabs)
|
||||||
@ -1480,7 +1480,7 @@ void InterpretEscSeq( void )
|
|||||||
SetConsoleCursorPosition( hConOut, Pos );
|
SetConsoleCursorPosition( hConOut, Pos );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'Z': // ESC[#Z Moves cursor back # tabs
|
case 'Z': // CBT - ESC[#Z Moves cursor back # tabs
|
||||||
if (es_argc > 1) return; // ESC[Z == ESC[1Z
|
if (es_argc > 1) return; // ESC[Z == ESC[1Z
|
||||||
if (pState->tabs)
|
if (pState->tabs)
|
||||||
{
|
{
|
||||||
@ -1498,19 +1498,19 @@ void InterpretEscSeq( void )
|
|||||||
set_pos( Pos.X, CUR.Y );
|
set_pos( Pos.X, CUR.Y );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'b': // ESC[#b Repeat character
|
case 'b': // REP - ESC[#b Repeat character
|
||||||
if (es_argc > 1) return; // ESC[b == ESC[1b
|
if (es_argc > 1) return; // ESC[b == ESC[1b
|
||||||
if (ChPrev == '\b') goto cub;
|
if (ChPrev == '\b') goto cub;
|
||||||
while (--p1 >= 0)
|
while (--p1 >= 0)
|
||||||
PushBuffer( ChPrev );
|
PushBuffer( ChPrev );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 's': // ESC[s Saves cursor position for recall later
|
case 's': // SCOSC - ESC[s Saves cursor position for recall later
|
||||||
if (es_argc != 0) return;
|
if (es_argc != 0) return;
|
||||||
pState->SavePos = CUR;
|
pState->SavePos = CUR;
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'u': // ESC[u Return to saved cursor position
|
case 'u': // SCORC - ESC[u Return to saved cursor position
|
||||||
if (es_argc != 0) return;
|
if (es_argc != 0) return;
|
||||||
Pos = pState->SavePos;
|
Pos = pState->SavePos;
|
||||||
if (Pos.X > RIGHT) Pos.X = RIGHT;
|
if (Pos.X > RIGHT) Pos.X = RIGHT;
|
||||||
@ -1518,12 +1518,12 @@ void InterpretEscSeq( void )
|
|||||||
set_pos( Pos.X, Pos.Y );
|
set_pos( Pos.X, Pos.Y );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'c': // ESC[#c Device attributes
|
case 'c': // DA - ESC[#c Device attributes
|
||||||
if (es_argc > 1 || es_argv[0] != 0) return; // ESC[c == ESC[0c
|
if (es_argc > 1 || es_argv[0] != 0) return; // ESC[c == ESC[0c
|
||||||
SendSequence( L"\33[?62;1c" ); // VT220 with 132 columns
|
SendSequence( L"\33[?62;1c" ); // VT220 with 132 columns
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'n': // ESC[#n Device status report
|
case 'n': // DSR - ESC[#n Device status report
|
||||||
if (es_argc != 1) return; // ESC[n == ESC[0n -> ignored
|
if (es_argc != 1) return; // ESC[n == ESC[0n -> ignored
|
||||||
switch (es_argv[0])
|
switch (es_argv[0])
|
||||||
{
|
{
|
||||||
@ -1560,32 +1560,32 @@ void InterpretEscSeq( void )
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'h': // ESC[#h Set Mode
|
case 'h': // SM - ESC[#h Set Mode
|
||||||
for (i = 0; i < es_argc; i++)
|
for (i = 0; i < es_argc; i++)
|
||||||
switch (es_argv[i])
|
switch (es_argv[i])
|
||||||
{
|
{
|
||||||
case 3:
|
case 3: // CRM
|
||||||
pState->crm = TRUE;
|
pState->crm = TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 4:
|
case 4: // IRM
|
||||||
im = TRUE;
|
im = TRUE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case 'l': // ESC[#l Reset Mode
|
case 'l': // RM - ESC[#l Reset Mode
|
||||||
for (i = 0; i < es_argc; i++)
|
for (i = 0; i < es_argc; i++)
|
||||||
switch (es_argv[i]) // ESC[3l is handled during parsing
|
switch (es_argv[i]) // CRM - ESC[3l is handled during parsing
|
||||||
{
|
{
|
||||||
case 4:
|
case 4: // IRM
|
||||||
im = FALSE;
|
im = FALSE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case '~':
|
case '~':
|
||||||
if (suffix2 == ',') // ESC[#;#;#...,~ Play Sound
|
if (suffix2 == ',') // DECPS - ESC[#;#;#...,~ Play Sound
|
||||||
{
|
{
|
||||||
// Frequencies of notes obtained from:
|
// Frequencies of notes obtained from:
|
||||||
// https://pages.mtu.edu/~suits/notefreqs.html
|
// https://pages.mtu.edu/~suits/notefreqs.html
|
||||||
@ -1989,7 +1989,7 @@ ParseAndPrintString( HANDLE hDev,
|
|||||||
suffix2 = c;
|
suffix2 = c;
|
||||||
else if (suffix2 != 0)
|
else if (suffix2 != 0)
|
||||||
{
|
{
|
||||||
if (suffix2 == '(') // Designate G0 character set
|
if (suffix2 == '(') // SCS - Designate G0 character set
|
||||||
{
|
{
|
||||||
if (c == '0')
|
if (c == '0')
|
||||||
shifted = G0_special = TRUE;
|
shifted = G0_special = TRUE;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user