|
|
|
@ -2711,12 +2711,28 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { |
|
|
|
|
FcPattern *fcpattern, *fontpattern; |
|
|
|
|
FcFontSet *fcsets[] = { NULL }; |
|
|
|
|
FcCharSet *fccharset; |
|
|
|
|
Colour *fg = &dc.col[base.fg], *bg = &dc.col[base.bg], |
|
|
|
|
*temp, revfg, revbg; |
|
|
|
|
Colour *fg, *bg, *temp, revfg, revbg; |
|
|
|
|
XRenderColor colfg, colbg; |
|
|
|
|
|
|
|
|
|
frcflags = FRC_NORMAL; |
|
|
|
|
|
|
|
|
|
if(base.mode & ATTR_ITALIC) { |
|
|
|
|
if(base.fg == defaultfg) |
|
|
|
|
base.fg = defaultitalic; |
|
|
|
|
font = &dc.ifont; |
|
|
|
|
frcflags = FRC_ITALIC; |
|
|
|
|
} else if((base.mode & ATTR_ITALIC) && (base.mode & ATTR_BOLD)) { |
|
|
|
|
if(base.fg == defaultfg) |
|
|
|
|
base.fg = defaultitalic; |
|
|
|
|
font = &dc.ibfont; |
|
|
|
|
frcflags = FRC_ITALICBOLD; |
|
|
|
|
} else if(base.mode & ATTR_UNDERLINE) { |
|
|
|
|
if(base.fg == defaultfg) |
|
|
|
|
base.fg = defaultunderline; |
|
|
|
|
} |
|
|
|
|
fg = &dc.col[base.fg]; |
|
|
|
|
bg = &dc.col[base.bg]; |
|
|
|
|
|
|
|
|
|
if(base.mode & ATTR_BOLD) { |
|
|
|
|
if(BETWEEN(base.fg, 0, 7)) { |
|
|
|
|
/* basic system colors */ |
|
|
|
@ -2738,15 +2754,6 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { |
|
|
|
|
frcflags = FRC_BOLD; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(base.mode & ATTR_ITALIC) { |
|
|
|
|
font = &dc.ifont; |
|
|
|
|
frcflags = FRC_ITALIC; |
|
|
|
|
} |
|
|
|
|
if((base.mode & ATTR_ITALIC) && (base.mode & ATTR_BOLD)) { |
|
|
|
|
font = &dc.ibfont; |
|
|
|
|
frcflags = FRC_ITALICBOLD; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(IS_SET(MODE_REVERSE)) { |
|
|
|
|
if(fg == &dc.col[defaultfg]) { |
|
|
|
|
fg = &dc.col[defaultbg]; |
|
|
|
@ -2873,8 +2880,7 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { |
|
|
|
|
FcTrue, fcpattern, &fcres); |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Overwrite or create the new cache entry |
|
|
|
|
* entry. |
|
|
|
|
* Overwrite or create the new cache entry. |
|
|
|
|
*/ |
|
|
|
|
frccur++; |
|
|
|
|
frclen++; |
|
|
|
|