madtty only need to control colors, let the caller deal with ncurses.
authorPierre Habouzit <madcoder@debian.org>
Sat, 10 Nov 2007 14:49:21 +0000 (15:49 +0100)
committerPierre Habouzit <madcoder@debian.org>
Sat, 10 Nov 2007 14:49:21 +0000 (15:49 +0100)
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
demo/boxshell.c
madtty/madtty.c
madtty/madtty.h

index 505f6b9..806a1ff 100644 (file)
@@ -8,6 +8,7 @@
 #include <ncurses.h>
 
 #include <fcntl.h>
+#include <locale.h>
 #include <signal.h>
 #include <stdio.h>
 #include <string.h>
@@ -62,7 +63,16 @@ int main(void)
     signal(SIGCHLD, handler);
     signal(SIGWINCH, handler);
 
-    madtty_initialize();
+    setlocale(LC_ALL, "");
+    initscr();
+    start_color();
+    noecho();
+    raw();
+    nodelay(stdscr, TRUE);
+    keypad(stdscr, TRUE);
+    curs_set(0);
+    ESCDELAY=50;
+    madtty_init_colors();
     getmaxyx(stdscr, screen_h, screen_w);
 
     /* create a window with a frame */
index ce21d32..5b51618 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 #include <errno.h>
 #include <fcntl.h>
-#include <locale.h>
 #include <pty.h>
 #include <signal.h>
 #include <stdio.h>
@@ -962,18 +961,8 @@ void madtty_keypress(madtty_t *t, int keycode)
     }
 }
 
-void madtty_initialize(void)
+void madtty_init_colors(void)
 {
-    setlocale(LC_ALL, "");
-    initscr();
-    start_color();
-    noecho();
-    raw();
-    nodelay(stdscr, TRUE);
-    keypad(stdscr, TRUE);
-    curs_set(0);
-    ESCDELAY=50;
-
     if (COLORS > 8) {
         use_default_colors();
         assume_default_colors(-1, -1);
@@ -992,3 +981,8 @@ void madtty_initialize(void)
         }
     }
 }
+
+int madtty_color_pair(int fg, int bg)
+{
+    return has_default ? (fg + 1) * 16 + bg + 1 : (7 - fg) * 8 + bg;
+}
index cd9e7d4..d36ddfb 100644 (file)
@@ -30,7 +30,8 @@
 #include <unistd.h>
 #include <wchar.h>
 
-void madtty_initialize(void);
+void madtty_init_colors(void);
+int madtty_color_pair(int fg, int bg);
 
 typedef struct madtty_t madtty_t;