From b02604a50e7df4c843d362fa5c589918010888d2 Mon Sep 17 00:00:00 2001 From: deuce <> Date: Thu, 1 Feb 2018 03:30:35 +0000 Subject: [PATCH] Add case and comment for all standard sequences. Also, delineate standard from non-standard. --- src/conio/cterm.c | 61 +++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 56 insertions(+), 5 deletions(-) diff --git a/src/conio/cterm.c b/src/conio/cterm.c index ecb5af36be..ef772af05d 100644 --- a/src/conio/cterm.c +++ b/src/conio/cterm.c @@ -1622,7 +1622,7 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * } break; } - else if (seq->ctrl_func[1]) { // Private control function + else if (seq->ctrl_func[1]) { // Control Function with Intermediate Character // Font Select if (strcmp(seq->ctrl_func, " D") == 0) { seq_default(seq, 0, 0); @@ -1638,6 +1638,10 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * break; } } + /* + * END OF STANDARD CONTROL FUNCTIONS + * AFTER THIS IS ALL PRIVATE EXTENSIONS + */ // Communication speed else if (strcmp(seq->ctrl_func, "*r") == 0) { /* @@ -1789,6 +1793,8 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * col=cterm->width; GOTOXY(col,row); break; + case 'I': /* TODO? Cursor Forward Tabulation */ + break; case 'J': /* Erase In Page */ seq_default(seq, 0, 0); switch(seq->param_int[0]) { @@ -1853,7 +1859,7 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * } GOTOXY(col,row); break; - case 'M': /* ANSI music and also supposed to be delete line! */ + case 'M': /* Delete Line (also ANSI music) */ if(cterm->music_enable==CTERM_MUSIC_ENABLED) { cterm->music=1; } @@ -1866,12 +1872,14 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * } } break; - case 'N': + case 'N': /* Erase In Field (also ANSI Music) */ /* BananANSI style... does NOT start with MF or MB */ /* This still conflicts (ANSI erase field) */ if(cterm->music_enable >= CTERM_MUSIC_BANSI) cterm->music=2; break; + case 'O': /* TODO? Erase In Area */ + break; case 'P': /* Delete char */ row=WHEREY(); col=WHEREX(); @@ -1885,6 +1893,10 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * CLREOL(); GOTOXY(col,row); break; + case 'Q': /* TODO? Select Editing Extent */ + break; + case 'R': /* TODO? Active Position Report */ + break; case 'S': /* Scroll Up */ seq_default(seq, 0, 1); for(j=0; j<seq->param_int[0]; j++) @@ -1905,6 +1917,10 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * GOTOXY(1,1); break; #endif + case 'V': /* TODO? Preceding Page */ + break; + case 'W': /* TODO? Cursor Tabulation Control */ + break; case 'X': /* Erase Character */ seq_default(seq, 0, 1); i=seq->param_int[0]; @@ -1919,6 +1935,8 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * PUTTEXT(cterm->x+WHEREX()-1,cterm->y+WHEREY()-1,cterm->x+WHEREX()-1+i-1,cterm->y+WHEREY()-1,p2); free(p2); break; + case 'Y': /* TODO? Cursor Line Tabulation */ + break; case 'Z': /* Cursor Backward Tabulation */ seq_default(seq, 0, 1); i=strtoul(cterm->escbuf+1,NULL,10); @@ -1932,7 +1950,21 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * } } break; - case 'b': /* ToDo? Banana ANSI/Repeat */ + case '[': /* TODO? Start Reversed String */ + break; + case '\\': /* TODO? Parallel Texts */ + break; + case ']': /* TODO? Start Directed String */ + break; + case '^': /* TODO? Select Implicit Movement Direction */ + break; + case '_': /* NOT DEFIFINED IN STANDARD */ + break; + case '`': /* TODO? Character Position Absolute */ + break; + case 'a': /* TODO? Character Position Forward */ + break; + case 'b': /* ToDo? Repeat */ break; case 'c': /* Device Attributes */ seq_default(seq, 0, 0); @@ -1943,9 +1975,22 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * } } break; + case 'd': /* TODO? Line Position Absolute */ + break; + case 'e': /* TODO? Line Position Forward */ + break; + // for case 'f': see case 'H': case 'g': /* ToDo? Tabulation Clear */ break; - case 'i': /* ToDo? Printing (Media Copy) */ + case 'h': /* TODO? Set Mode */ + break; + case 'i': /* ToDo? Media Copy (Printing) */ + break; + case 'j': /* TODO? Character Position Backward */ + break; + case 'k': /* TODO? Line Position Backward */ + break; + case 'l': /* TODO? Reset Mode */ break; case 'm': /* Select Graphic Rendition */ seq_default(seq, 0, 0); @@ -2086,6 +2131,12 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * break; } break; + case 'o': /* ToDo? Define Area Qualification */ + break; + /* + * END OF STANDARD CONTROL FUNCTIONS + * AFTER THIS IS ALL PRIVATE EXTENSIONS + */ case 'p': /* ToDo? ANSI keyboard reassignment */ break; case 'q': /* ToDo? VT100 keyboard lights */ -- GitLab