Skip to content
Snippets Groups Projects
Commit cc07b354 authored by Deucе's avatar Deucе :ok_hand_tone4:
Browse files

Fix defaults for variable length sequences

Only SGR was impacted, but this explicitly sets the rest of the
defaults to zero.

Closes ticket 193.
parent e3980d56
Branches
Tags
No related merge requests found
Pipeline #8419 passed
...@@ -2636,9 +2636,9 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * ...@@ -2636,9 +2636,9 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int *
case 'c': case 'c':
/* SyncTERM Device Attributes */ /* SyncTERM Device Attributes */
if (seq->param_str[0] == '<' && parse_parameters(seq)) { if (seq->param_str[0] == '<' && parse_parameters(seq)) {
seq_default(seq, 0, 0);
tmp[0] = 0; tmp[0] = 0;
for (i=0; i<seq->param_count; i++) { for (i=0; i<seq->param_count; i++) {
seq_default(seq, i, 0);
switch (seq->param_int[i]) { switch (seq->param_int[i]) {
case 0: /* Advanced features */ case 0: /* Advanced features */
strcpy(tmp, "\x1b[<0"); strcpy(tmp, "\x1b[<0");
...@@ -2669,6 +2669,7 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * ...@@ -2669,6 +2669,7 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int *
updfg = (oldfg == cterm->fg_color); updfg = (oldfg == cterm->fg_color);
updbg = (oldbg == cterm->bg_color); updbg = (oldbg == cterm->bg_color);
for (i=0; i<seq->param_count; i++) { for (i=0; i<seq->param_count; i++) {
seq_default(seq, i, 0);
switch(seq->param_int[i]) { switch(seq->param_int[i]) {
case 6: case 6:
clear_lcf(cterm); clear_lcf(cterm);
...@@ -2752,6 +2753,7 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * ...@@ -2752,6 +2753,7 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int *
} }
else if(seq->param_str[0] == '=' && parse_parameters(seq)) { else if(seq->param_str[0] == '=' && parse_parameters(seq)) {
for (i=0; i<seq->param_count; i++) { for (i=0; i<seq->param_count; i++) {
seq_default(seq, i, 0);
switch(seq->param_int[i]) { switch(seq->param_int[i]) {
case 4: case 4:
cterm->last_column_flag |= CTERM_LCF_ENABLED; cterm->last_column_flag |= CTERM_LCF_ENABLED;
...@@ -2773,6 +2775,7 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * ...@@ -2773,6 +2775,7 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int *
updfg = (oldfg == cterm->fg_color); updfg = (oldfg == cterm->fg_color);
updbg = (oldbg == cterm->bg_color); updbg = (oldbg == cterm->bg_color);
for (i=0; i<seq->param_count; i++) { for (i=0; i<seq->param_count; i++) {
seq_default(seq, i, 0);
switch(seq->param_int[i]) { switch(seq->param_int[i]) {
case 6: case 6:
clear_lcf(cterm); clear_lcf(cterm);
...@@ -2857,6 +2860,7 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * ...@@ -2857,6 +2860,7 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int *
} }
else if(seq->param_str[0] == '=' && parse_parameters(seq)) { else if(seq->param_str[0] == '=' && parse_parameters(seq)) {
for (i=0; i<seq->param_count; i++) { for (i=0; i<seq->param_count; i++) {
seq_default(seq, i, 0);
switch(seq->param_int[i]) { switch(seq->param_int[i]) {
case 4: case 4:
if ((cterm->last_column_flag & CTERM_LCF_FORCED) == 0) if ((cterm->last_column_flag & CTERM_LCF_FORCED) == 0)
...@@ -3028,6 +3032,7 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * ...@@ -3028,6 +3032,7 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int *
} }
else { else {
for (i=0; i<seq->param_count; i++) { for (i=0; i<seq->param_count; i++) {
seq_default(seq, i, 0);
switch(seq->param_int[i]) { switch(seq->param_int[i]) {
case 6: case 6:
cterm->saved_mode_mask |= CTERM_SAVEMODE_ORIGIN; cterm->saved_mode_mask |= CTERM_SAVEMODE_ORIGIN;
...@@ -3239,6 +3244,7 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * ...@@ -3239,6 +3244,7 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int *
} }
else { else {
for (i=0; i<seq->param_count; i++) { for (i=0; i<seq->param_count; i++) {
seq_default(seq, i, 0);
switch(seq->param_int[i]) { switch(seq->param_int[i]) {
case 6: case 6:
if(cterm->saved_mode_mask & CTERM_SAVEMODE_ORIGIN) { if(cterm->saved_mode_mask & CTERM_SAVEMODE_ORIGIN) {
...@@ -3982,10 +3988,10 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * ...@@ -3982,10 +3988,10 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int *
case 'l': /* TODO? Reset Mode */ case 'l': /* TODO? Reset Mode */
break; break;
case 'm': /* Select Graphic Rendition */ case 'm': /* Select Graphic Rendition */
seq_default(seq, 0, 0);
gettextinfo(&ti); gettextinfo(&ti);
flags = getvideoflags(); flags = getvideoflags();
for (i=0; i < seq->param_count; i++) { for (i=0; i < seq->param_count; i++) {
seq_default(seq, i, 0);
switch(seq->param_int[i]) { switch(seq->param_int[i]) {
case 0: case 0:
set_negative(cterm, false); set_negative(cterm, false);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment