diff --git a/ANSI.c b/ANSI.c index c708782..e008a3e 100644 --- a/ANSI.c +++ b/ANSI.c @@ -152,7 +152,7 @@ remove wcstok, avoiding potential interference with the host; similarly, use a private heap instead of malloc. - v1.80, 26 October to 29 November, 2017: + v1.80, 26 October to 30 November, 2017: fix unloading; revert back to (re)storing buffer cursor position; increase cache to five handles; @@ -1482,7 +1482,7 @@ ParseAndPrintString( HANDLE hDev, { FlushBuffer(); pState->crm = TRUE; - PushBuffer( (WCHAR)c ); + ChBuffer[nCharInBuffer++] = c; // skip newline handling FlushBuffer(); pState->crm = FALSE; state = 1; @@ -1543,7 +1543,7 @@ ParseAndPrintString( HANDLE hDev, { suffix2 = c; } - else if (suffix2 != 0 && suffix2 != ',' && suffix2 != '+') + else if (suffix2 != 0 && suffix2 != '+' && (suffix2 != ',' || c != '~')) { state = 1; } @@ -1576,7 +1576,7 @@ ParseAndPrintString( HANDLE hDev, { suffix2 = c; } - else if (suffix2 != 0 && suffix2 != ',' && suffix2 != '+') + else if (suffix2 != 0 && suffix2 != '+' && (suffix2 != ',' || c != '~')) { state = 1; } diff --git a/ansicon.c b/ansicon.c index 3aa8b6a..206b0d1 100644 --- a/ansicon.c +++ b/ansicon.c @@ -90,7 +90,7 @@ write newline with _putws, not putwchar (fixes redirecting to CON). */ -#define PDATE L"29 November, 2017" +#define PDATE L"30 November, 2017" #include "ansicon.h" #include "version.h" diff --git a/readme.txt b/readme.txt index 185df09..d209d19 100644 --- a/readme.txt +++ b/readme.txt @@ -157,6 +157,7 @@ Sequences Recognised \e[21t xterm: Report window's title \e[s ANSI.SYS: Save Cursor Position \e[u ANSI.SYS: Restore Cursor Position + BEL BEL Bell \e[#Z CBT Cursor Backward Tabulation \e[#G CHA Cursor Character Absolute \e[#I CHT Cursor Forward Tabulation @@ -301,7 +302,7 @@ Version History Legend: + added, - bug-fixed, * changed. - 1.80 - 29 November, 2017: + 1.80 - 30 November, 2017: - fix unloading; - fix -e et al when redirecting to CON; - hook CreateFile and CreateConsoleScreenBuffer to force read/write access @@ -544,4 +545,4 @@ Distribution ============================= -Jason Hood, 29 November, 2017. +Jason Hood, 30 November, 2017. diff --git a/sequences.txt b/sequences.txt index 33b4bb4..a13fb3a 100644 --- a/sequences.txt +++ b/sequences.txt @@ -6,7 +6,8 @@ This is a complete list of the ANSI escape sequences recognised by ANSICON, roughly ordered by function. The initial escape character is assumed. The display consists of the buffer width and window height; add '+' before the final character to use the buffer height (e.g. "[2J" will erase the window, -whilst "[2+J" will erase the buffer). +whilst "[2+J" will erase the buffer). BEL will also be recognised, playing +the Windows default beep (but only if it's not already playing). [m restore default color (and intensity) @@ -160,3 +161,11 @@ whilst "[2+J" will erase the buffer). 6 F5 698 15 D6 1174 24 B6 1976 7 F#5/Gb5 740 16 D#6/Eb6 1244 25 C7 2094 8 G5 784 17 E6 1318 + +P...ST ignored (Device Control String) +X...ST ignored (Start Of String) +^...ST ignored (Privacy Message) +_...ST ignored (Application Program Command) + +Any of space and !"#$%&'()*+,-./, possibly repeated, followed by anything else, +will be ignored.