comparison src/frame.c @ 32545:288723d38c06

(Fframe_parameters): If a tty's frame's param_alist says the colors are unspecified and reversed, reverse fore- and back- ground in the returned value. (Fframe_parameter): Ditto.
author Eli Zaretskii <eliz@gnu.org>
date Mon, 16 Oct 2000 19:15:09 +0000
parents f93728883f64
children 923b8d6d8277
comparison
equal deleted inserted replaced
32544:244478dd087e 32545:288723d38c06
2059 2059
2060 if (!FRAME_WINDOW_P (f)) 2060 if (!FRAME_WINDOW_P (f))
2061 { 2061 {
2062 int fg = FRAME_FOREGROUND_PIXEL (f); 2062 int fg = FRAME_FOREGROUND_PIXEL (f);
2063 int bg = FRAME_BACKGROUND_PIXEL (f); 2063 int bg = FRAME_BACKGROUND_PIXEL (f);
2064 2064 Lisp_Object elt;
2065 store_in_alist (&alist, intern ("foreground-color"), 2065
2066 tty_color_name (f, fg)); 2066 /* If the frame's parameter alist says the colors are
2067 store_in_alist (&alist, intern ("background-color"), 2067 unspecified and reversed, take the frame's background pixel
2068 tty_color_name (f, bg)); 2068 for foreground and vice versa. */
2069 elt = Fassq (Qforeground_color, alist);
2070 if (!NILP (elt) && CONSP (elt)
2071 && STRINGP (XCDR (elt))
2072 && strncmp (XSTRING (XCDR (elt))->data,
2073 unspecified_bg,
2074 XSTRING (XCDR (elt))->size) == 0)
2075 store_in_alist (&alist, Qforeground_color, tty_color_name (f, bg));
2076 else
2077 store_in_alist (&alist, Qforeground_color, tty_color_name (f, fg));
2078 elt = Fassq (Qbackground_color, alist);
2079 if (!NILP (elt) && CONSP (elt)
2080 && STRINGP (XCDR (elt))
2081 && strncmp (XSTRING (XCDR (elt))->data,
2082 unspecified_fg,
2083 XSTRING (XCDR (elt))->size) == 0)
2084 store_in_alist (&alist, Qbackground_color, tty_color_name (f, fg));
2085 else
2086 store_in_alist (&alist, Qbackground_color, tty_color_name (f, bg));
2069 store_in_alist (&alist, intern ("font"), 2087 store_in_alist (&alist, intern ("font"),
2070 build_string (FRAME_MSDOS_P (f) 2088 build_string (FRAME_MSDOS_P (f)
2071 ? "ms-dos" 2089 ? "ms-dos"
2072 : FRAME_W32_P (f) ? "w32term" : "tty")); 2090 : FRAME_W32_P (f) ? "w32term" : "tty"));
2073 } 2091 }
2132 else 2150 else
2133 { 2151 {
2134 value = Fassq (parameter, f->param_alist); 2152 value = Fassq (parameter, f->param_alist);
2135 if (CONSP (value)) 2153 if (CONSP (value))
2136 { 2154 {
2137 extern char unspecified_fg[], unspecified_bg[];
2138 extern Lisp_Object Qbackground_color, Qforeground_color;
2139
2140 value = XCDR (value); 2155 value = XCDR (value);
2141 /* Fframe_parameters puts the actual fg/bg color names, 2156 /* Fframe_parameters puts the actual fg/bg color names,
2142 even if f->param_alist says otherwise. This is 2157 even if f->param_alist says otherwise. This is
2143 important when param_alist's notion of colors is 2158 important when param_alist's notion of colors is
2144 "unspecified". We need to do the same here. */ 2159 "unspecified". We need to do the same here. */
2145 if (STRINGP (value) && !FRAME_WINDOW_P (f)) 2160 if (STRINGP (value) && !FRAME_WINDOW_P (f))
2146 { 2161 {
2147 if (EQ (parameter, Qbackground_color) 2162 char *color_name;
2148 && strncmp (XSTRING (value)->data, 2163 EMACS_INT csz;
2149 unspecified_bg, 2164
2150 XSTRING (value)->size) == 0) 2165 if (EQ (parameter, Qbackground_color))
2151 value = tty_color_name (f, FRAME_BACKGROUND_PIXEL (f)); 2166 {
2152 else if (EQ (parameter, Qforeground_color) 2167 color_name = XSTRING (value)->data;
2153 && strncmp (XSTRING (value)->data, 2168 csz = XSTRING (value)->size;
2154 unspecified_fg, 2169 if (strncmp (color_name, unspecified_bg, csz) == 0)
2155 XSTRING (value)->size) == 0) 2170 value = tty_color_name (f, FRAME_BACKGROUND_PIXEL (f));
2156 value = tty_color_name (f, FRAME_FOREGROUND_PIXEL (f)); 2171 else if (strncmp (color_name, unspecified_fg, csz) == 0)
2172 value = tty_color_name (f, FRAME_FOREGROUND_PIXEL (f));
2173 }
2174 else if (EQ (parameter, Qforeground_color))
2175 {
2176 color_name = XSTRING (value)->data;
2177 csz = XSTRING (value)->size;
2178 if (strncmp (color_name, unspecified_fg, csz) == 0)
2179 value = tty_color_name (f, FRAME_FOREGROUND_PIXEL (f));
2180 else if (strncmp (color_name, unspecified_bg, csz) == 0)
2181 value = tty_color_name (f, FRAME_BACKGROUND_PIXEL (f));
2182 }
2157 } 2183 }
2158 } 2184 }
2159 else if (EQ (parameter, Qdisplay_type) 2185 else if (EQ (parameter, Qdisplay_type)
2160 || EQ (parameter, Qbackground_mode)) 2186 || EQ (parameter, Qbackground_mode))
2161 /* Avoid consing in frequent cases. */ 2187 /* Avoid consing in frequent cases. */