# HG changeset patch # User Jason Rumney # Date 1196373432 0 # Node ID ca4d8fae0af9d621da295471113285b015b0f465 # Parent 9a5165586076ad4ec018143a1fc89dcc757ddf71 Leave HAVE_WINDOW_SYSTEM defined. (w32_face_attributes): Use Vtty_defined_color_alist to determine if the terminal colors are initialized. (unspecified_fg, unspecified_bg): Remove unused declarations. diff -r 9a5165586076 -r ca4d8fae0af9 src/w32console.c --- a/src/w32console.c Thu Nov 29 11:49:23 2007 +0000 +++ b/src/w32console.c Thu Nov 29 21:57:12 2007 +0000 @@ -35,8 +35,6 @@ #include "charset.h" #include "coding.h" #include "disptab.h" -/* Disable features in frame.h that require a Window System. */ -#undef HAVE_WINDOW_SYSTEM #include "frame.h" #include "termhooks.h" #include "termchar.h" @@ -76,6 +74,8 @@ static CONSOLE_CURSOR_INFO prev_console_cursor; #endif +extern Lisp_Object Vtty_defined_color_alist; + /* Determine whether to make frame dimensions match the screen buffer, or the current window size. The former is desirable when running over telnet, while the latter is more useful when working directly at @@ -491,12 +491,10 @@ && face->background != FACE_TTY_DEFAULT_COLOR) char_attr = (char_attr & 0xff0f) + ((face->background % 16) << 4); - - /* NTEMACS_TODO: Faces defined during startup get both foreground - and background of 0. Need a better way around this - for now detect - the problem and invert one of the faces to make the text readable. */ - if (((char_attr & 0x00f0) >> 4) == (char_attr & 0x000f)) - char_attr ^= 0x0007; + /* Before the terminal is properly initialized, all colors map to 0. + If we get a face like this, use the normal terminal attributes. */ + if (NILP (Vtty_defined_color_alist)) + char_attr = char_attr_normal; if (face->tty_reverse_p) char_attr = (char_attr & 0xff00) + ((char_attr & 0x000f) << 4) @@ -506,10 +504,6 @@ } -/* Emulation of some X window features from xfns.c and xfaces.c. */ - -extern char unspecified_fg[], unspecified_bg[]; - /* Given a color index, return its standard name. */ Lisp_Object