Introduction
Introduction Statistics Contact Development Disclaimer Help
Add the possibility to have default highlight colors. - st - simple terminal
git clone git://git.suckless.org/st
Log
Files
Refs
README
LICENSE
---
commit 7e7760c2ed1a6fc9d500da51bd8dc499fb36e1b0
parent adde5c6d9dec3a0ab4d78b9d6e70b970ffb33a05
Author: Christoph Lohmann <[email protected]>
Date: Fri, 29 Mar 2013 19:01:24 +0100
Add the possibility to have default highlight colors.
Thanks to [email protected] for the suggestion!
Diffstat:
M config.def.h | 8 ++++++++
M st.c | 32 ++++++++++++++++++-----------…
2 files changed, 27 insertions(+), 13 deletions(-)
---
diff --git 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;
+/*
+ * 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
diff --git a/st.c b/st.c
@@ -2711,12 +2711,28 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, …
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, i…
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, in…
FcTrue, fcpattern, &fcres);
/*
- * Overwrite or create the new cache entry
- * entry.
+ * Overwrite or create the new cache entry.
*/
frccur++;
frclen++;
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.