2. support the 8 basic highlighted colors, plus a couple of color_hash fixes


On 03/25/2011 10:25 PM, Ross Mohn wrote:
>  I'm going to post a series of 6 patches for dvtm over the next several
> minutes. They all apply to the current HEAD of the dvtm git repository
> (committed 2011-01-07). I think I've teased them all apart pretty well
> so that each one is separate and complete.
>
> 1. support for compiling under AIX
> 2. support the 8 basic highlighted colors, plus a couple of color_hash fixes
> 3. fix a scrolling issue and add in "ESC #" to call interpret_esc_SCS()
> 4. support for "ESC 6 n", get cursor position, which calls a new
> function, send_curs()
> 5. support colorrules[] to match strings against window titles,
> applycolorrules(), and call madtty_set_dflt_colors()
> 6. support to backfill text from the buffer when a windows is resized
> with more rows
>
> Comments, testing, and bugfixes sincerely welcome!
>
> Cheers! -Ross
>
>
Index: madtty.c
===================================================================
--- madtty.c    (.../vendor/current)    (revision 47)
+++ madtty.c    (.../trunk)     (revision 47)
@@ -54,8 +54,8 @@
 #define IS_CONTROL(ch) !((ch) & 0xffffff60UL)
 
 static int has_default, is_utf8, use_palette;
-static const unsigned palette_start = 1;
-static const unsigned palette_end = 256;
+#define palette_start 1
+#define palette_end   512
 static unsigned palette_cur;
 static short *color2palette;
 
@@ -415,8 +419,14 @@
           case 49:
             t->curbg = -1;
             break;
+          case 90 ... 97: /* hi fg */
+            t->curfg = param[i] - 82;
+            break;
+          case 100 ... 107: /*hi bg */
+            t->curbg = param[i] - 92;
+            break;
           default:
             break;
         }
@@ -1439,7 +1492,7 @@
 
 static unsigned color_hash(short f, short b)
 {
-       return ((f+1) * (COLORS+1)) + b + 1;
+       return ((f+1) * COLORS) + b + 1;
 }
 
 void madtty_color_set(WINDOW *win, short fg, short bg)
@@ -1488,8 +1541,8 @@
         color2palette = calloc((COLORS+1)*(COLORS+1), sizeof(short));
         int bg = 0, fg = 0;
         for (int i = palette_start; i < palette_end; i++) {
-            init_pair(i, bg, fg);
-            color2palette[color_hash(bg, fg)] = i;
+            init_pair(i, fg, bg);
+            color2palette[color_hash(fg, bg)] = i;
             if (++fg == COLORS) {
                 fg = 0;
                 bg++;

Reply via email to