/* handle "special" bold & underlined characters */
if (special || a->attr)
{
- if ((special & A_BOLD) || (a->attr & ANSI_BOLD))
+#ifdef HAVE_COLOR
+ if (a->attr & ANSI_COLOR)
+ {
+ if (a->pair == -1)
+ a->pair = mutt_alloc_color (a->fg,a->bg);
+ color = a->pair;
+ if (a->attr & ANSI_BOLD)
+ color |= A_BOLD;
+ }
+ else
+#endif
+ if ((special & A_BOLD) || (a->attr & ANSI_BOLD))
{
if (ColorDefs[MT_COLOR_BOLD] && !search)
color = ColorDefs[MT_COLOR_BOLD];
{
color ^= A_BLINK;
}
-#ifdef HAVE_COLOR
- else if (a->attr & ANSI_COLOR)
- {
- if (a->pair == -1)
- a->pair = mutt_alloc_color (a->fg,a->bg);
- color = a->pair;
- }
-#endif
else if (a->attr & ANSI_OFF)
{
a->attr = 0;
}
else if (buf[pos] == '3' && isdigit(buf[pos+1]))
{
+#ifdef HAVE_COLOR
+ if (a->pair != -1)
+ mutt_free_color(a->fg,a->bg);
+#endif
+ a->pair = -1;
a->attr |= ANSI_COLOR;
a->fg = buf[pos+1] - '0';
pos += 3;
}
else if (buf[pos] == '4' && isdigit(buf[pos+1]))
{
+#ifdef HAVE_COLOR
+ if (a->pair != -1)
+ mutt_free_color(a->fg,a->bg);
+#endif
+ a->pair = -1;
a->attr |= ANSI_COLOR;
a->bg = buf[pos+1] - '0';
pos += 3;