Mercurial > emacs
comparison src/xfaces.c @ 27088:23bd823f11f4
(tty_defined_color): Pass frame to tty-color-desc. The
list of colors renamed to tty-defined-color-alist.
(tty_color_name): Pass the frame to tty-color-by-index.
(realize_tty_face): tty-color-alist is now a function which
accepts the frame as argument.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sun, 02 Jan 2000 14:07:32 +0000 |
parents | 459081ff1f05 |
children | 9a0d8503806e |
comparison
equal
deleted
inserted
replaced
27087:8de2d17323c2 | 27088:23bd823f11f4 |
---|---|
1086 int color_idx = FACE_TTY_DEFAULT_COLOR, red = 0, green = 0, blue = 0; | 1086 int color_idx = FACE_TTY_DEFAULT_COLOR, red = 0, green = 0, blue = 0; |
1087 int status = 1; | 1087 int status = 1; |
1088 | 1088 |
1089 if (*color_name && !NILP (Ffboundp (Qtty_color_desc))) | 1089 if (*color_name && !NILP (Ffboundp (Qtty_color_desc))) |
1090 { | 1090 { |
1091 Lisp_Object frame; | |
1092 | |
1093 XSETFRAME (frame, f); | |
1091 status = 0; | 1094 status = 0; |
1092 color_desc = call1 (Qtty_color_desc, build_string (color_name)); | 1095 color_desc = call2 (Qtty_color_desc, build_string (color_name), frame); |
1093 if (CONSP (color_desc) && CONSP (XCDR (color_desc))) | 1096 if (CONSP (color_desc) && CONSP (XCDR (color_desc))) |
1094 { | 1097 { |
1095 color_idx = XINT (XCAR (XCDR (color_desc))); | 1098 color_idx = XINT (XCAR (XCDR (color_desc))); |
1096 if (CONSP (XCDR (XCDR (color_desc)))) | 1099 if (CONSP (XCDR (XCDR (color_desc)))) |
1097 { | 1100 { |
1099 green = XINT (XCAR (XCDR (XCDR (XCDR (color_desc))))); | 1102 green = XINT (XCAR (XCDR (XCDR (XCDR (color_desc))))); |
1100 blue = XINT (XCAR (XCDR (XCDR (XCDR (XCDR (color_desc)))))); | 1103 blue = XINT (XCAR (XCDR (XCDR (XCDR (XCDR (color_desc)))))); |
1101 } | 1104 } |
1102 status = 1; | 1105 status = 1; |
1103 } | 1106 } |
1104 else if (NILP (Fsymbol_value (intern ("tty-color-alist")))) | 1107 else if (NILP (Fsymbol_value (intern ("tty-defined-color-alist")))) |
1105 /* We were called early during startup, and the colors are not | 1108 /* We were called early during startup, and the colors are not |
1106 yet set up in tty-color-alist. Don't return a failure | 1109 yet set up in tty-defined-color-alist. Don't return a failure |
1107 indication, since this produces the annoying "Unable to | 1110 indication, since this produces the annoying "Unable to |
1108 load color" messages in the *Messages* buffer. */ | 1111 load color" messages in the *Messages* buffer. */ |
1109 status = 1; | 1112 status = 1; |
1110 } | 1113 } |
1111 if (color_idx == FACE_TTY_DEFAULT_COLOR && *color_name) | 1114 if (color_idx == FACE_TTY_DEFAULT_COLOR && *color_name) |
1167 { | 1170 { |
1168 char *color; | 1171 char *color; |
1169 | 1172 |
1170 if (idx >= 0 && !NILP (Ffboundp (Qtty_color_by_index))) | 1173 if (idx >= 0 && !NILP (Ffboundp (Qtty_color_by_index))) |
1171 { | 1174 { |
1172 Lisp_Object coldesc = call1 (Qtty_color_by_index, make_number (idx)); | 1175 Lisp_Object frame; |
1176 Lisp_Object coldesc; | |
1177 | |
1178 XSETFRAME (frame, f); | |
1179 coldesc = call2 (Qtty_color_by_index, make_number (idx), frame); | |
1173 | 1180 |
1174 if (!NILP (coldesc)) | 1181 if (!NILP (coldesc)) |
1175 return XCAR (coldesc); | 1182 return XCAR (coldesc); |
1176 } | 1183 } |
1177 #ifdef MSDOS | 1184 #ifdef MSDOS |
6061 int charset; | 6068 int charset; |
6062 { | 6069 { |
6063 struct face *face; | 6070 struct face *face; |
6064 int weight, slant; | 6071 int weight, slant; |
6065 Lisp_Object color; | 6072 Lisp_Object color; |
6066 Lisp_Object tty_color_alist = Fsymbol_value (intern ("tty-color-alist")); | 6073 Lisp_Object tty_defined_color_alist = |
6074 Fsymbol_value (intern ("tty-defined-color-alist")); | |
6075 Lisp_Object tty_color_alist = intern ("tty-color-alist"); | |
6076 Lisp_Object frame; | |
6067 int face_colors_defaulted = 0; | 6077 int face_colors_defaulted = 0; |
6068 | 6078 |
6069 /* Frame must be a termcap frame. */ | 6079 /* Frame must be a termcap frame. */ |
6070 xassert (FRAME_TERMCAP_P (c->f) || FRAME_MSDOS_P (c->f)); | 6080 xassert (FRAME_TERMCAP_P (c->f) || FRAME_MSDOS_P (c->f)); |
6071 | 6081 |
6090 | 6100 |
6091 /* Map color names to color indices. */ | 6101 /* Map color names to color indices. */ |
6092 face->foreground = FACE_TTY_DEFAULT_FG_COLOR; | 6102 face->foreground = FACE_TTY_DEFAULT_FG_COLOR; |
6093 face->background = FACE_TTY_DEFAULT_BG_COLOR; | 6103 face->background = FACE_TTY_DEFAULT_BG_COLOR; |
6094 | 6104 |
6105 XSETFRAME (frame, c->f); | |
6095 color = attrs[LFACE_FOREGROUND_INDEX]; | 6106 color = attrs[LFACE_FOREGROUND_INDEX]; |
6096 if (STRINGP (color) | 6107 if (STRINGP (color) |
6097 && XSTRING (color)->size | 6108 && XSTRING (color)->size |
6098 && !NILP (tty_color_alist) | 6109 && !NILP (tty_defined_color_alist) |
6099 && (color = Fassoc (color, tty_color_alist), | 6110 && (color = Fassoc (color, call1 (tty_color_alist, frame)), |
6100 CONSP (color))) | 6111 CONSP (color))) |
6101 /* Associations in tty-color-alist are of the form | 6112 /* Associations in tty-defined-color-alist are of the form |
6102 (NAME INDEX R G B). We need the INDEX part. */ | 6113 (NAME INDEX R G B). We need the INDEX part. */ |
6103 face->foreground = XINT (XCAR (XCDR (color))); | 6114 face->foreground = XINT (XCAR (XCDR (color))); |
6104 | 6115 |
6105 if (face->foreground == FACE_TTY_DEFAULT_FG_COLOR | 6116 if (face->foreground == FACE_TTY_DEFAULT_FG_COLOR |
6106 && STRINGP (attrs[LFACE_FOREGROUND_INDEX])) | 6117 && STRINGP (attrs[LFACE_FOREGROUND_INDEX])) |
6133 } | 6144 } |
6134 | 6145 |
6135 color = attrs[LFACE_BACKGROUND_INDEX]; | 6146 color = attrs[LFACE_BACKGROUND_INDEX]; |
6136 if (STRINGP (color) | 6147 if (STRINGP (color) |
6137 && XSTRING (color)->size | 6148 && XSTRING (color)->size |
6138 && !NILP (tty_color_alist) | 6149 && !NILP (tty_defined_color_alist) |
6139 && (color = Fassoc (color, tty_color_alist), | 6150 && (color = Fassoc (color, call1 (tty_color_alist, frame)), |
6140 CONSP (color))) | 6151 CONSP (color))) |
6141 /* Associations in tty-color-alist are of the form | 6152 /* Associations in tty-defined-color-alist are of the form |
6142 (NAME INDEX R G B). We need the INDEX part. */ | 6153 (NAME INDEX R G B). We need the INDEX part. */ |
6143 face->background = XINT (XCAR (XCDR (color))); | 6154 face->background = XINT (XCAR (XCDR (color))); |
6144 | 6155 |
6145 if (face->background == FACE_TTY_DEFAULT_BG_COLOR | 6156 if (face->background == FACE_TTY_DEFAULT_BG_COLOR |
6146 && STRINGP (attrs[LFACE_BACKGROUND_INDEX])) | 6157 && STRINGP (attrs[LFACE_BACKGROUND_INDEX])) |