Bug #10158 » win32.c.patch
C:/Application/DevKit/home/sasa/ruby/win32/win32.c Thu Aug 21 04:10:32 2014 | ||
---|---|---|
p->vt100.state = constat_init;
|
||
}
|
||
|
||
#define FOREGROUND_MASK (FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY)
|
||
#define BACKGROUND_MASK (BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_INTENSITY)
|
||
|
||
#define constat_attr_color_reverse(attr) \
|
||
(attr) & ~(FOREGROUND_MASK | BACKGROUND_MASK) | \
|
||
(((attr) & FOREGROUND_MASK) << 4) | \
|
||
(((attr) & BACKGROUND_MASK) >> 4);
|
||
|
||
/* License: Ruby's */
|
||
static WORD
|
||
constat_attr(int count, const int *seq, WORD attr, WORD default_attr)
|
||
{
|
||
#define FOREGROUND_MASK (FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED)
|
||
#define BACKGROUND_MASK (BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED)
|
||
WORD bold = attr & (FOREGROUND_INTENSITY | BACKGROUND_INTENSITY);
|
||
int rev = 0;
|
||
static WORD bold = 0;
|
||
static int rev = 0;
|
||
|
||
if (!count) return attr;
|
||
attr &= ~(FOREGROUND_INTENSITY | BACKGROUND_INTENSITY);
|
||
if (rev) attr = constat_attr_color_reverse(attr);
|
||
|
||
while (count-- > 0) {
|
||
switch (*seq++) {
|
||
case 0:
|
||
... | ... | |
bold = 0;
|
||
break;
|
||
case 1:
|
||
bold |= rev ? BACKGROUND_INTENSITY : FOREGROUND_INTENSITY;
|
||
bold = FOREGROUND_INTENSITY;
|
||
break;
|
||
case 4:
|
||
#ifndef COMMON_LVB_UNDERSCORE
|
||
... | ... | |
break;
|
||
}
|
||
}
|
||
if (rev) {
|
||
attr = attr & ~(FOREGROUND_MASK | BACKGROUND_MASK) |
|
||
((attr & FOREGROUND_MASK) << 4) |
|
||
((attr & BACKGROUND_MASK) >> 4);
|
||
}
|
||
return attr | bold;
|
||
attr |= bold;
|
||
if (rev) attr = constat_attr_color_reverse(attr);
|
||
return attr;
|
||
}
|
||
|
||
/* License: Ruby's */
|