1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Fixed commit miss at 19cc24b34b

This commit is contained in:
Nobuyoshi Nakada 2021-02-23 20:46:40 +09:00
parent da18d6f015
commit 41eb4fbf86
No known key found for this signature in database
GPG key ID: 7CD2805BFA3770C6

View file

@ -6591,36 +6591,32 @@ constat_handle(HANDLE h)
{
st_data_t data;
struct constat *p;
EnterCriticalSection(&conlist_mutex);
if (!conlist) {
if (console_emulator_p()) {
conlist = conlist_disabled;
} else {
conlist = st_init_numtable();
install_vm_exit_handler();
return NULL;
}
conlist = st_init_numtable();
install_vm_exit_handler();
}
if (conlist != conlist_disabled) {
if (st_lookup(conlist, (st_data_t)h, &data)) {
p = (struct constat *)data;
} else {
CONSOLE_SCREEN_BUFFER_INFO csbi;
p = ALLOC(struct constat);
p->vt100.state = constat_init;
p->vt100.attr = FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED;
p->vt100.reverse = 0;
p->vt100.saved.X = p->vt100.saved.Y = 0;
if (GetConsoleScreenBufferInfo(h, &csbi)) {
p->vt100.attr = csbi.wAttributes;
}
st_insert(conlist, (st_data_t)h, (st_data_t)p);
else if (conlist == conlist_disabled) {
return NULL;
}
if (st_lookup(conlist, (st_data_t)h, &data)) {
p = (struct constat *)data;
}
else {
CONSOLE_SCREEN_BUFFER_INFO csbi;
p = ALLOC(struct constat);
p->vt100.state = constat_init;
p->vt100.attr = FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED;
p->vt100.reverse = 0;
p->vt100.saved.X = p->vt100.saved.Y = 0;
if (GetConsoleScreenBufferInfo(h, &csbi)) {
p->vt100.attr = csbi.wAttributes;
}
} else {
p = NULL;
st_insert(conlist, (st_data_t)h, (st_data_t)p);
}
LeaveCriticalSection(&conlist_mutex);
return p;
}
@ -6630,16 +6626,12 @@ constat_reset(HANDLE h)
{
st_data_t data;
struct constat *p;
EnterCriticalSection(&conlist_mutex);
if (
conlist && conlist != conlist_disabled &&
st_lookup(conlist, (st_data_t)h, &data)
) {
thread_exclusive(conlist) {
if (!conlist || conlist == conlist_disabled) continue;
if (!st_lookup(conlist, (st_data_t)h, &data)) continue;
p = (struct constat *)data;
p->vt100.state = constat_init;
}
LeaveCriticalSection(&conlist_mutex);
}
#define FOREGROUND_MASK (FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY)