st

fork of suckless's simple terminal
Index Commits Files Refs README LICENSE
commit bf6cf05ba5211b35d7b10169624679428c5f4974
parent 5caa46cf575a48e6421aaf8757e066f6d32263d9
Author: Christoph Lohmann <20h@r-36.net>
Date:   Fri,  5 Oct 2012 22:51:08 +0200

Fixing the brightening on bold. For the 256 colors and greyscale I assumed a

reasonable solution.
Diffstat:
Mst.c | 19++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/st.c b/st.c
@@ -2192,10 +2192,27 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
 
     if(base.mode & ATTR_REVERSE)
         temp = fg, fg = bg, bg = temp;
+
     if(base.mode & ATTR_BOLD) {
-        fg = &dc.xft_col[base.fg + 8];
+        if(BETWEEN(base.fg, 0, 7)) {
+            /* basic system colors */
+            fg = &dc.xft_col[base.fg + 8];
+        } else if(BETWEEN(base.fg, 16, 195)) {
+            /* 256 colors */
+            fg = &dc.xft_col[base.fg + 36];
+        } else if(BETWEEN(base.fg, 232, 251)) {
+            /* greyscale */
+            fg = &dc.xft_col[base.fg + 4];
+        }
+        /*
+         * Those ranges will not be brightened:
+         *    8 - 15 – bright system colors
+         *    196 - 231 – highest 256 color cube
+         *    252 - 255 – brightest colors in grescale
+         */
         font = &dc.bfont;
     }
+
     if(base.mode & ATTR_ITALIC)
         font = &dc.ifont;
     if(base.mode & (ATTR_ITALIC|ATTR_ITALIC))