Xinqi Bao's Git
projects
/
st.git
/ diff
summary
|
log
|
commit
|
diff
|
tree
raw
|
patch
|
inline
| side by side (parent:
adde5c6
)
Add the possibility to have default highlight colors.
author
Christoph Lohmann <
[email protected]
>
Fri, 29 Mar 2013 18:01:24 +0000
(19:01 +0100)
committer
Christoph Lohmann <
[email protected]
>
Fri, 29 Mar 2013 18:01:24 +0000
(19:01 +0100)
Thanks to
[email protected]
for the suggestion!
config.def.h
diff
|
blob
|
history
st.c
diff
|
blob
|
history
diff --git
a/config.def.h
b/config.def.h
index
75abefb
..
693bdbd
100644
(file)
--- a/
config.def.h
+++ b/
config.def.h
@@
-62,6
+62,14
@@
static unsigned int defaultbg = 0;
static unsigned int defaultcs = 256;
static unsigned int defaultucs = 257;
static unsigned int defaultcs = 256;
static unsigned int defaultucs = 257;
+/*
+ * Colors used, when the specific fg == defaultfg. So in reverse mode this
+ * will reverse too. Another logic would only make the simple feature too
+ * complex.
+ */
+static unsigned int defaultitalic = 11;
+static unsigned int defaultunderline = 7;
+
/* Internal shortcuts. */
#define MODKEY Mod1Mask
/* Internal shortcuts. */
#define MODKEY Mod1Mask
diff --git
a/st.c
b/st.c
index
599685c
..
8b1fc56
100644
(file)
--- a/
st.c
+++ b/
st.c
@@
-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;
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;
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 */
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;
}
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];
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);
/*
FcTrue, fcpattern, &fcres);
/*
- * Overwrite or create the new cache entry
- * entry.
+ * Overwrite or create the new cache entry.
*/
frccur++;
frclen++;
*/
frccur++;
frclen++;