Skip to content

Commit 8cc5e5c

Browse files
committed
Win32: Fix fallback parsing of CSI SGR sequences
1 parent 1858233 commit 8cc5e5c

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

win32/win32.c

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6793,47 +6793,54 @@ constat_attr(int count, const int *seq, WORD attr, WORD default_attr, int *rever
67936793
case 1:
67946794
bold = FOREGROUND_INTENSITY;
67956795
break;
6796+
case 22:
6797+
bold = 0;
6798+
break;
67966799
case 4:
67976800
#ifndef COMMON_LVB_UNDERSCORE
67986801
#define COMMON_LVB_UNDERSCORE 0x8000
67996802
#endif
68006803
attr |= COMMON_LVB_UNDERSCORE;
68016804
break;
6805+
case 24:
6806+
attr &= ~COMMON_LVB_UNDERSCORE;
6807+
break;
68026808
case 7:
68036809
rev = 1;
68046810
break;
6811+
case 27:
6812+
rev = 0;
6813+
break;
68056814

68066815
case 30:
68076816
attr &= ~(FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);
68086817
break;
6809-
case 17:
68106818
case 31:
68116819
attr = (attr & ~(FOREGROUND_BLUE | FOREGROUND_GREEN)) | FOREGROUND_RED;
68126820
break;
6813-
case 18:
68146821
case 32:
68156822
attr = (attr & ~(FOREGROUND_BLUE | FOREGROUND_RED)) | FOREGROUND_GREEN;
68166823
break;
6817-
case 19:
68186824
case 33:
68196825
attr = (attr & ~FOREGROUND_BLUE) | FOREGROUND_GREEN | FOREGROUND_RED;
68206826
break;
6821-
case 20:
68226827
case 34:
68236828
attr = (attr & ~(FOREGROUND_GREEN | FOREGROUND_RED)) | FOREGROUND_BLUE;
68246829
break;
6825-
case 21:
68266830
case 35:
68276831
attr = (attr & ~FOREGROUND_GREEN) | FOREGROUND_BLUE | FOREGROUND_RED;
68286832
break;
6829-
case 22:
68306833
case 36:
68316834
attr = (attr & ~FOREGROUND_RED) | FOREGROUND_BLUE | FOREGROUND_GREEN;
68326835
break;
6833-
case 23:
68346836
case 37:
68356837
attr |= FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED;
68366838
break;
6839+
case 38: /* 256-color or true color; N/A on old Command Prompt */
6840+
break;
6841+
case 39:
6842+
attr = (attr & ~FOREGROUND_MASK) | (default_attr & FOREGROUND_MASK);
6843+
break;
68376844

68386845
case 40:
68396846
attr &= ~(BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED);
@@ -6859,6 +6866,11 @@ constat_attr(int count, const int *seq, WORD attr, WORD default_attr, int *rever
68596866
case 47:
68606867
attr |= BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED;
68616868
break;
6869+
case 48: /* 256-color or true color; N/A on old Command Prompt */
6870+
break;
6871+
case 49:
6872+
attr = (attr & ~BACKGROUND_MASK) | (default_attr & BACKGROUND_MASK);
6873+
break;
68626874
}
68636875
}
68646876
attr |= bold;

0 commit comments

Comments
 (0)