… | |
… | |
67 | "Yellow", /* 3/11: bright yellow (#FFFF00) */ |
67 | "Yellow", /* 3/11: bright yellow (#FFFF00) */ |
68 | "Blue", /* 4/12: bright blue (#0000FF) */ |
68 | "Blue", /* 4/12: bright blue (#0000FF) */ |
69 | "Magenta", /* 5/13: bright magenta (#FF00FF) */ |
69 | "Magenta", /* 5/13: bright magenta (#FF00FF) */ |
70 | "Cyan", /* 6/14: bright cyan (#00FFFF) */ |
70 | "Cyan", /* 6/14: bright cyan (#00FFFF) */ |
71 | "White", /* 7/15: bright white (#FFFFFF) */ |
71 | "White", /* 7/15: bright white (#FFFFFF) */ |
72 | #ifdef TTY_256COLOR |
72 | |
73 | "rgbi:0/0/0", /* default 16-255 color table */ |
73 | // 88 xterm colours |
74 | "rgbi:0/0/.2", /* consists of 6 6x6 colour cubes */ |
74 | "rgb:00/00/00", |
75 | "rgbi:0/0/.4", /* and a 24 greyscale ramp w/o */ |
|
|
76 | "rgbi:0/0/.6", /* black or white */ |
|
|
77 | "rgbi:0/0/.8", |
75 | "rgb:00/00/8b", |
78 | "rgbi:0/0/1", |
76 | "rgb:00/00/cd", |
79 | "rgbi:0/.2/0", |
77 | "rgb:00/00/ff", |
80 | "rgbi:0/.2/.2", |
|
|
81 | "rgbi:0/.2/.4", |
|
|
82 | "rgbi:0/.2/.6", |
|
|
83 | "rgbi:0/.2/.8", |
|
|
84 | "rgbi:0/.2/1", |
|
|
85 | "rgbi:0/.4/0", |
|
|
86 | "rgbi:0/.4/.2", |
|
|
87 | "rgbi:0/.4/.4", |
|
|
88 | "rgbi:0/.4/.6", |
|
|
89 | "rgbi:0/.4/.8", |
|
|
90 | "rgbi:0/.4/1", |
|
|
91 | "rgbi:0/.6/0", |
|
|
92 | "rgbi:0/.6/.2", |
|
|
93 | "rgbi:0/.6/.4", |
|
|
94 | "rgbi:0/.6/.6", |
|
|
95 | "rgbi:0/.6/.8", |
|
|
96 | "rgbi:0/.6/1", |
|
|
97 | "rgbi:0/.8/0", |
78 | "rgb:00/8b/00", |
98 | "rgbi:0/.8/.2", |
|
|
99 | "rgbi:0/.8/.4", |
|
|
100 | "rgbi:0/.8/.6", |
|
|
101 | "rgbi:0/.8/.8", |
79 | "rgb:00/8b/8b", |
102 | "rgbi:0/.8/1", |
80 | "rgb:00/8b/cd", |
|
|
81 | "rgb:00/8b/ff", |
103 | "rgbi:0/1/0", |
82 | "rgb:00/cd/00", |
104 | "rgbi:0/1/.2", |
|
|
105 | "rgbi:0/1/.4", |
|
|
106 | "rgbi:0/1/.6", |
|
|
107 | "rgbi:0/1/.8", |
83 | "rgb:00/cd/8b", |
108 | "rgbi:0/1/1", |
84 | "rgb:00/cd/cd", |
|
|
85 | "rgb:00/cd/ff", |
109 | "rgbi:.2/0/0", |
86 | "rgb:00/ff/00", |
110 | "rgbi:.2/0/.2", |
87 | "rgb:00/ff/8b", |
111 | "rgbi:.2/0/.4", |
88 | "rgb:00/ff/cd", |
112 | "rgbi:.2/0/.6", |
89 | "rgb:00/ff/ff", |
113 | "rgbi:.2/0/.8", |
|
|
114 | "rgbi:.2/0/1", |
|
|
115 | "rgbi:.2/.2/0", |
|
|
116 | "rgbi:.2/.2/.2", |
|
|
117 | "rgbi:.2/.2/.4", |
|
|
118 | "rgbi:.2/.2/.6", |
|
|
119 | "rgbi:.2/.2/.8", |
|
|
120 | "rgbi:.2/.2/1", |
|
|
121 | "rgbi:.2/.4/0", |
|
|
122 | "rgbi:.2/.4/.2", |
|
|
123 | "rgbi:.2/.4/.4", |
|
|
124 | "rgbi:.2/.4/.6", |
|
|
125 | "rgbi:.2/.4/.8", |
|
|
126 | "rgbi:.2/.4/1", |
|
|
127 | "rgbi:.2/.6/0", |
|
|
128 | "rgbi:.2/.6/.2", |
|
|
129 | "rgbi:.2/.6/.4", |
|
|
130 | "rgbi:.2/.6/.6", |
|
|
131 | "rgbi:.2/.6/.8", |
|
|
132 | "rgbi:.2/.6/1", |
|
|
133 | "rgbi:.2/.8/0", |
|
|
134 | "rgbi:.2/.8/.2", |
|
|
135 | "rgbi:.2/.8/.4", |
|
|
136 | "rgbi:.2/.8/.6", |
|
|
137 | "rgbi:.2/.8/.8", |
|
|
138 | "rgbi:.2/.8/1", |
|
|
139 | "rgbi:.2/1/0", |
|
|
140 | "rgbi:.2/1/.2", |
|
|
141 | "rgbi:.2/1/.4", |
|
|
142 | "rgbi:.2/1/.6", |
|
|
143 | "rgbi:.2/1/.8", |
|
|
144 | "rgbi:.2/1/1", |
|
|
145 | "rgbi:.4/0/0", |
|
|
146 | "rgbi:.4/0/.2", |
|
|
147 | "rgbi:.4/0/.4", |
|
|
148 | "rgbi:.4/0/.6", |
|
|
149 | "rgbi:.4/0/.8", |
|
|
150 | "rgbi:.4/0/1", |
|
|
151 | "rgbi:.4/.2/0", |
|
|
152 | "rgbi:.4/.2/.2", |
|
|
153 | "rgbi:.4/.2/.4", |
|
|
154 | "rgbi:.4/.2/.6", |
|
|
155 | "rgbi:.4/.2/.8", |
|
|
156 | "rgbi:.4/.2/1", |
|
|
157 | "rgbi:.4/.4/0", |
|
|
158 | "rgbi:.4/.4/.2", |
|
|
159 | "rgbi:.4/.4/.4", |
|
|
160 | "rgbi:.4/.4/.6", |
|
|
161 | "rgbi:.4/.4/.8", |
|
|
162 | "rgbi:.4/.4/1", |
|
|
163 | "rgbi:.4/.6/0", |
|
|
164 | "rgbi:.4/.6/.2", |
|
|
165 | "rgbi:.4/.6/.4", |
|
|
166 | "rgbi:.4/.6/.6", |
|
|
167 | "rgbi:.4/.6/.8", |
|
|
168 | "rgbi:.4/.6/1", |
|
|
169 | "rgbi:.4/.8/0", |
|
|
170 | "rgbi:.4/.8/.2", |
|
|
171 | "rgbi:.4/.8/.4", |
|
|
172 | "rgbi:.4/.8/.6", |
|
|
173 | "rgbi:.4/.8/.8", |
|
|
174 | "rgbi:.4/.8/1", |
|
|
175 | "rgbi:.4/1/0", |
|
|
176 | "rgbi:.4/1/.2", |
|
|
177 | "rgbi:.4/1/.4", |
|
|
178 | "rgbi:.4/1/.6", |
|
|
179 | "rgbi:.4/1/.8", |
|
|
180 | "rgbi:.4/1/1", |
|
|
181 | "rgbi:.6/0/0", |
|
|
182 | "rgbi:.6/0/.2", |
|
|
183 | "rgbi:.6/0/.4", |
|
|
184 | "rgbi:.6/0/.6", |
|
|
185 | "rgbi:.6/0/.8", |
|
|
186 | "rgbi:.6/0/1", |
|
|
187 | "rgbi:.6/.2/0", |
|
|
188 | "rgbi:.6/.2/.2", |
|
|
189 | "rgbi:.6/.2/.4", |
|
|
190 | "rgbi:.6/.2/.6", |
|
|
191 | "rgbi:.6/.2/.8", |
|
|
192 | "rgbi:.6/.2/1", |
|
|
193 | "rgbi:.6/.4/0", |
|
|
194 | "rgbi:.6/.4/.2", |
|
|
195 | "rgbi:.6/.4/.4", |
|
|
196 | "rgbi:.6/.4/.6", |
|
|
197 | "rgbi:.6/.4/.8", |
|
|
198 | "rgbi:.6/.4/1", |
|
|
199 | "rgbi:.6/.6/0", |
|
|
200 | "rgbi:.6/.6/.2", |
|
|
201 | "rgbi:.6/.6/.4", |
|
|
202 | "rgbi:.6/.6/.6", |
|
|
203 | "rgbi:.6/.6/.8", |
|
|
204 | "rgbi:.6/.6/1", |
|
|
205 | "rgbi:.6/.8/0", |
|
|
206 | "rgbi:.6/.8/.2", |
|
|
207 | "rgbi:.6/.8/.4", |
|
|
208 | "rgbi:.6/.8/.6", |
|
|
209 | "rgbi:.6/.8/.8", |
|
|
210 | "rgbi:.6/.8/1", |
|
|
211 | "rgbi:.6/1/0", |
|
|
212 | "rgbi:.6/1/.2", |
|
|
213 | "rgbi:.6/1/.4", |
|
|
214 | "rgbi:.6/1/.6", |
|
|
215 | "rgbi:.6/1/.8", |
|
|
216 | "rgbi:.6/1/1", |
|
|
217 | "rgbi:.8/0/0", |
90 | "rgb:8b/00/00", |
218 | "rgbi:.8/0/.2", |
|
|
219 | "rgbi:.8/0/.4", |
|
|
220 | "rgbi:.8/0/.6", |
|
|
221 | "rgbi:.8/0/.8", |
91 | "rgb:8b/00/8b", |
222 | "rgbi:.8/0/1", |
92 | "rgb:8b/00/cd", |
223 | "rgbi:.8/.2/0", |
93 | "rgb:8b/00/ff", |
224 | "rgbi:.8/.2/.2", |
|
|
225 | "rgbi:.8/.2/.4", |
|
|
226 | "rgbi:.8/.2/.6", |
|
|
227 | "rgbi:.8/.2/.8", |
|
|
228 | "rgbi:.8/.2/1", |
|
|
229 | "rgbi:.8/.4/0", |
|
|
230 | "rgbi:.8/.4/.2", |
|
|
231 | "rgbi:.8/.4/.4", |
|
|
232 | "rgbi:.8/.4/.6", |
|
|
233 | "rgbi:.8/.4/.8", |
|
|
234 | "rgbi:.8/.4/1", |
|
|
235 | "rgbi:.8/.6/0", |
|
|
236 | "rgbi:.8/.6/.2", |
|
|
237 | "rgbi:.8/.6/.4", |
|
|
238 | "rgbi:.8/.6/.6", |
|
|
239 | "rgbi:.8/.6/.8", |
|
|
240 | "rgbi:.8/.6/1", |
|
|
241 | "rgbi:.8/.8/0", |
94 | "rgb:8b/8b/00", |
242 | "rgbi:.8/.8/.2", |
|
|
243 | "rgbi:.8/.8/.4", |
|
|
244 | "rgbi:.8/.8/.6", |
|
|
245 | "rgbi:.8/.8/.8", |
|
|
246 | "rgbi:.8/.8/1", |
|
|
247 | "rgbi:.8/1/0", |
|
|
248 | "rgbi:.8/1/.2", |
|
|
249 | "rgbi:.8/1/.4", |
|
|
250 | "rgbi:.8/1/.6", |
|
|
251 | "rgbi:.8/1/.8", |
|
|
252 | "rgbi:.8/1/1", |
|
|
253 | "rgbi:1/0/0", |
|
|
254 | "rgbi:1/0/.2", |
|
|
255 | "rgbi:1/0/.4", |
|
|
256 | "rgbi:1/0/.6", |
|
|
257 | "rgbi:1/0/.8", |
|
|
258 | "rgbi:1/0/1", |
|
|
259 | "rgbi:1/.2/0", |
|
|
260 | "rgbi:1/.2/.2", |
|
|
261 | "rgbi:1/.2/.4", |
|
|
262 | "rgbi:1/.2/.6", |
|
|
263 | "rgbi:1/.2/.8", |
|
|
264 | "rgbi:1/.2/1", |
|
|
265 | "rgbi:1/.4/0", |
|
|
266 | "rgbi:1/.4/.2", |
|
|
267 | "rgbi:1/.4/.4", |
|
|
268 | "rgbi:1/.4/.6", |
|
|
269 | "rgbi:1/.4/.8", |
|
|
270 | "rgbi:1/.4/1", |
|
|
271 | "rgbi:1/.6/0", |
|
|
272 | "rgbi:1/.6/.2", |
|
|
273 | "rgbi:1/.6/.4", |
|
|
274 | "rgbi:1/.6/.6", |
|
|
275 | "rgbi:1/.6/.8", |
|
|
276 | "rgbi:1/.6/1", |
|
|
277 | "rgbi:1/.8/0", |
|
|
278 | "rgbi:1/.8/.2", |
|
|
279 | "rgbi:1/.8/.4", |
|
|
280 | "rgbi:1/.8/.6", |
|
|
281 | "rgbi:1/.8/.8", |
|
|
282 | "rgbi:1/.8/1", |
|
|
283 | "rgbi:1/1/0", |
|
|
284 | "rgbi:1/1/.2", |
|
|
285 | "rgbi:1/1/.4", |
|
|
286 | "rgbi:1/1/.6", |
|
|
287 | "rgbi:1/1/.8", |
|
|
288 | "rgbi:1/1/1", |
|
|
289 | "rgb:08/08/08", |
95 | "rgb:8b/8b/8b", |
290 | "rgb:12/12/12", |
96 | "rgb:8b/8b/cd", |
|
|
97 | "rgb:8b/8b/ff", |
|
|
98 | "rgb:8b/cd/00", |
|
|
99 | "rgb:8b/cd/8b", |
|
|
100 | "rgb:8b/cd/cd", |
|
|
101 | "rgb:8b/cd/ff", |
|
|
102 | "rgb:8b/ff/00", |
|
|
103 | "rgb:8b/ff/8b", |
|
|
104 | "rgb:8b/ff/cd", |
|
|
105 | "rgb:8b/ff/ff", |
|
|
106 | "rgb:cd/00/00", |
|
|
107 | "rgb:cd/00/8b", |
|
|
108 | "rgb:cd/00/cd", |
|
|
109 | "rgb:cd/00/ff", |
|
|
110 | "rgb:cd/8b/00", |
|
|
111 | "rgb:cd/8b/8b", |
|
|
112 | "rgb:cd/8b/cd", |
|
|
113 | "rgb:cd/8b/ff", |
|
|
114 | "rgb:cd/cd/00", |
|
|
115 | "rgb:cd/cd/8b", |
291 | "rgb:1c/1c/1c", |
116 | "rgb:cd/cd/cd", |
|
|
117 | "rgb:cd/cd/ff", |
|
|
118 | "rgb:cd/ff/00", |
|
|
119 | "rgb:cd/ff/8b", |
|
|
120 | "rgb:cd/ff/cd", |
|
|
121 | "rgb:cd/ff/ff", |
|
|
122 | "rgb:ff/00/00", |
|
|
123 | "rgb:ff/00/8b", |
|
|
124 | "rgb:ff/00/cd", |
|
|
125 | "rgb:ff/00/ff", |
|
|
126 | "rgb:ff/8b/00", |
|
|
127 | "rgb:ff/8b/8b", |
|
|
128 | "rgb:ff/8b/cd", |
|
|
129 | "rgb:ff/8b/ff", |
|
|
130 | "rgb:ff/cd/00", |
|
|
131 | "rgb:ff/cd/8b", |
|
|
132 | "rgb:ff/cd/cd", |
|
|
133 | "rgb:ff/cd/ff", |
|
|
134 | "rgb:ff/ff/00", |
|
|
135 | "rgb:ff/ff/8b", |
|
|
136 | "rgb:ff/ff/cd", |
|
|
137 | "rgb:ff/ff/ff", |
292 | "rgb:26/26/26", |
138 | "rgb:2e/2e/2e", |
293 | "rgb:30/30/30", |
|
|
294 | "rgb:3a/3a/3a", |
|
|
295 | "rgb:44/44/44", |
|
|
296 | "rgb:4e/4e/4e", |
|
|
297 | "rgb:58/58/58", |
139 | "rgb:5c/5c/5c", |
298 | "rgb:62/62/62", |
|
|
299 | "rgb:6c/6c/6c", |
|
|
300 | "rgb:76/76/76", |
140 | "rgb:73/73/73", |
301 | "rgb:80/80/80", |
141 | "rgb:8b/8b/8b", |
302 | "rgb:8a/8a/8a", |
142 | "rgb:a2/a2/a2", |
303 | "rgb:94/94/94", |
143 | "rgb:b9/b9/b9", |
304 | "rgb:9e/9e/9e", |
|
|
305 | "rgb:a8/a8/a8", |
|
|
306 | "rgb:b2/b2/b2", |
|
|
307 | "rgb:bc/bc/bc", |
|
|
308 | "rgb:c6/c6/c6", |
|
|
309 | "rgb:d0/d0/d0", |
144 | "rgb:d0/d0/d0", |
310 | "rgb:da/da/da", |
|
|
311 | "rgb:e4/e4/e4", |
145 | "rgb:e7/e7/e7", |
312 | "rgb:ee/ee/ee", |
146 | |
313 | #endif |
|
|
314 | #ifndef NO_CURSORCOLOR |
147 | #ifndef NO_CURSORCOLOR |
315 | COLOR_CURSOR_BACKGROUND, |
148 | COLOR_CURSOR_BACKGROUND, |
316 | COLOR_CURSOR_FOREGROUND, |
149 | COLOR_CURSOR_FOREGROUND, |
317 | #endif /* ! NO_CURSORCOLOR */ |
150 | #endif /* ! NO_CURSORCOLOR */ |
318 | NULL, /* Color_pointer_fg */ |
151 | NULL, /* Color_pointer_fg */ |
319 | NULL, /* Color_pointer_bg */ |
152 | NULL, /* Color_pointer_bg */ |
320 | NULL, /* Color_border */ |
153 | NULL, /* Color_border */ |
321 | #ifndef NO_BOLD_UNDERLINE_REVERSE |
154 | #ifndef NO_BOLD_UNDERLINE_REVERSE |
322 | NULL, /* Color_BD */ |
155 | NULL, /* Color_BD */ |
|
|
156 | NULL, /* Color_IT */ |
323 | NULL, /* Color_UL */ |
157 | NULL, /* Color_UL */ |
324 | NULL, /* Color_RV */ |
158 | NULL, /* Color_RV */ |
325 | #endif /* ! NO_BOLD_UNDERLINE_REVERSE */ |
159 | #endif /* ! NO_BOLD_UNDERLINE_REVERSE */ |
326 | #ifdef OPTION_HC |
160 | #ifdef OPTION_HC |
327 | NULL, |
161 | NULL, |
… | |
… | |
333 | #if TINTING |
167 | #if TINTING |
334 | NULL, |
168 | NULL, |
335 | #endif |
169 | #endif |
336 | }; |
170 | }; |
337 | |
171 | |
338 | const char *const xa_names[NUM_XA] = |
172 | const char *const xa_names[] = |
339 | { |
173 | { |
340 | "TEXT", |
174 | "TEXT", |
341 | "COMPOUND_TEXT", |
175 | "COMPOUND_TEXT", |
342 | "UTF8_STRING", |
176 | "UTF8_STRING", |
343 | "MULTIPLE", |
177 | "MULTIPLE", |
344 | "TARGETS", |
178 | "TARGETS", |
345 | "TIMESTAMP", |
179 | "TIMESTAMP", |
346 | "VT_SELECTION", |
180 | "VT_SELECTION", |
347 | "INCR", |
181 | "INCR", |
348 | "WM_DELETE_WINDOW", |
182 | "WM_DELETE_WINDOW", |
|
|
183 | "CLIPBOARD", |
|
|
184 | #if ENABLE_FRILLS |
|
|
185 | "_NET_WM_PID", |
|
|
186 | "_MOTIF_WM_HINTS", |
|
|
187 | "_NET_WM_NAME", |
|
|
188 | "_NET_WM_ICON_NAME", |
|
|
189 | #endif |
|
|
190 | #if USE_XIM |
|
|
191 | "WM_LOCALE_NAME", |
|
|
192 | #endif |
349 | #ifdef TRANSPARENT |
193 | #ifdef TRANSPARENT |
350 | "_XROOTPMAP_ID", |
194 | "_XROOTPMAP_ID", |
|
|
195 | "_XSETROOT_ID", |
351 | #endif |
196 | #endif |
352 | #ifdef OFFIX_DND |
197 | #ifdef OFFIX_DND |
353 | "DndProtocol", |
198 | "DndProtocol", |
354 | "DndSelection", |
199 | "DndSelection", |
355 | #endif |
200 | #endif |
356 | "CLIPBOARD" |
|
|
357 | }; |
201 | }; |
358 | |
202 | |
359 | bool |
203 | bool |
360 | rxvt_term::init_vars () |
204 | rxvt_term::init_vars () |
361 | { |
205 | { |
|
|
206 | sw_term.start (SIGTERM); |
|
|
207 | |
362 | pix_colors_focused = new rxvt_color [TOTAL_COLORS]; |
208 | pix_colors_focused = new rxvt_color [TOTAL_COLORS]; |
363 | #ifdef OFF_FOCUS_FADING |
209 | #ifdef OFF_FOCUS_FADING |
364 | pix_colors_unfocused = new rxvt_color [TOTAL_COLORS]; |
210 | pix_colors_unfocused = new rxvt_color [TOTAL_COLORS]; |
365 | #endif |
211 | #endif |
366 | pix_colors = pix_colors_focused; |
212 | pix_colors = pix_colors_focused; |
… | |
… | |
386 | TermWin.ext_bwidth = EXTERNALBORDERWIDTH; |
232 | TermWin.ext_bwidth = EXTERNALBORDERWIDTH; |
387 | TermWin.lineSpace = LINESPACE; |
233 | TermWin.lineSpace = LINESPACE; |
388 | TermWin.saveLines = SAVELINES; |
234 | TermWin.saveLines = SAVELINES; |
389 | numpix_colors = TOTAL_COLORS; |
235 | numpix_colors = TOTAL_COLORS; |
390 | |
236 | |
391 | #ifndef NO_BRIGHTCOLOR |
|
|
392 | colorfgbg = DEFAULT_RSTYLE; |
|
|
393 | #endif |
|
|
394 | |
|
|
395 | refresh_limit = 1; |
237 | refresh_limit = 1; |
396 | refresh_type = SLOW_REFRESH; |
238 | refresh_type = SLOW_REFRESH; |
397 | prev_nrow = prev_ncol = 0; |
239 | prev_nrow = prev_ncol = 0; |
398 | |
240 | |
399 | oldcursor.row = oldcursor.col = -1; |
241 | oldcursor.row = oldcursor.col = -1; |
… | |
… | |
599 | rxvt_Str_trim ((char *)rs[Rs_answerbackstring]); |
441 | rxvt_Str_trim ((char *)rs[Rs_answerbackstring]); |
600 | rxvt_Str_escaped ((char *)rs[Rs_answerbackstring]); |
442 | rxvt_Str_escaped ((char *)rs[Rs_answerbackstring]); |
601 | } |
443 | } |
602 | |
444 | |
603 | #ifdef HAVE_SCROLLBARS |
445 | #ifdef HAVE_SCROLLBARS |
604 | setup_scrollbar (rs[Rs_scrollBar_align], rs[Rs_scrollstyle], |
446 | setup_scrollbar (rs[Rs_scrollBar_align], rs[Rs_scrollstyle], rs[Rs_scrollBar_thickness]); |
605 | rs[Rs_scrollBar_thickness]); |
|
|
606 | #endif |
447 | #endif |
607 | |
448 | |
608 | #ifdef XTERM_REVERSE_VIDEO |
449 | #ifdef XTERM_REVERSE_VIDEO |
609 | /* this is how xterm implements reverseVideo */ |
450 | /* this is how xterm implements reverseVideo */ |
610 | if (options & Opt_reverseVideo) |
451 | if (options & Opt_reverseVideo) |
… | |
… | |
640 | color_aliases (Color_BD); |
481 | color_aliases (Color_BD); |
641 | color_aliases (Color_UL); |
482 | color_aliases (Color_UL); |
642 | color_aliases (Color_RV); |
483 | color_aliases (Color_RV); |
643 | #endif /* ! NO_BOLD_UNDERLINE_REVERSE */ |
484 | #endif /* ! NO_BOLD_UNDERLINE_REVERSE */ |
644 | |
485 | |
|
|
486 | if (!rs[Rs_color + Color_border]) |
|
|
487 | rs[Rs_color + Color_border] = rs[Rs_color + Color_bg]; |
|
|
488 | |
645 | return cmd_argv; |
489 | return cmd_argv; |
646 | } |
490 | } |
647 | |
491 | |
648 | /*----------------------------------------------------------------------*/ |
492 | /*----------------------------------------------------------------------*/ |
649 | void |
493 | void |
… | |
… | |
756 | |
600 | |
757 | this->locale = rxvt_strdup (this->locale); |
601 | this->locale = rxvt_strdup (this->locale); |
758 | SET_LOCALE (this->locale); |
602 | SET_LOCALE (this->locale); |
759 | mbstate.reset (); |
603 | mbstate.reset (); |
760 | #endif |
604 | #endif |
|
|
605 | |
761 | #if 0 |
606 | #if 0 |
762 | #if HAVE_NL_LANGINFO |
607 | #if HAVE_NL_LANGINFO |
763 | free (codeset); |
|
|
764 | codeset = strdup (nl_langinfo (CODESET)); |
608 | char *codeset = strdup (nl_langinfo (CODESET)); |
765 | enc_utf8 = !strcasecmp (codeset, "UTF-8") |
609 | enc_utf8 = !strcasecmp (codeset, "UTF-8") |
766 | || !strcasecmp (codeset, "UTF8"); |
610 | || !strcasecmp (codeset, "UTF8"); |
|
|
611 | free (codeset); |
767 | #else |
612 | #else |
768 | enc_utf8 = 1; |
613 | enc_utf8 = 0; |
769 | #endif |
614 | #endif |
770 | #endif |
615 | #endif |
771 | } |
616 | } |
772 | |
617 | |
773 | void |
618 | void |
… | |
… | |
776 | #ifdef USE_XIM |
621 | #ifdef USE_XIM |
777 | if (!locale) |
622 | if (!locale) |
778 | rxvt_warn ("setting locale failed, working without locale support.\n"); |
623 | rxvt_warn ("setting locale failed, working without locale support.\n"); |
779 | else |
624 | else |
780 | { |
625 | { |
781 | Atom wmlocale; |
626 | set_string_property (xa[XA_WM_LOCALE_NAME], locale); |
782 | |
|
|
783 | wmlocale = XInternAtom (display->display, "WM_LOCALE_NAME", False); |
|
|
784 | XChangeProperty (display->display, TermWin.parent[0], wmlocale, |
|
|
785 | XA_STRING, 8, PropModeReplace, |
|
|
786 | (unsigned char *)locale, strlen (locale)); |
|
|
787 | |
627 | |
788 | if (!XSupportsLocale ()) |
628 | if (!XSupportsLocale ()) |
789 | { |
629 | { |
790 | rxvt_warn ("the locale is not supported by Xlib, working withotu locale support.\n"); |
630 | rxvt_warn ("the locale is not supported by Xlib, working without locale support.\n"); |
791 | return; |
631 | return; |
792 | } |
632 | } |
793 | |
633 | |
794 | im_ev.start (display); |
634 | im_ev.start (display); |
795 | |
635 | |
… | |
… | |
805 | { |
645 | { |
806 | /* |
646 | /* |
807 | * Initialize the command connection. |
647 | * Initialize the command connection. |
808 | * This should be called after the X server connection is established. |
648 | * This should be called after the X server connection is established. |
809 | */ |
649 | */ |
810 | int i; |
|
|
811 | |
|
|
812 | for (i = 0; i < NUM_XA; i++) |
|
|
813 | xa[i] = XInternAtom (display->display, xa_names[i], False); |
|
|
814 | |
|
|
815 | /* Enable delete window protocol */ |
|
|
816 | XSetWMProtocols (display->display, TermWin.parent[0], |
|
|
817 | & (xa[XA_WMDELETEWINDOW]), 1); |
|
|
818 | |
|
|
819 | #ifdef USING_W11LIB |
|
|
820 | /* enable W11 callbacks */ |
|
|
821 | W11AddEventHandler (display->display, rxvt_W11_process_x_event); |
|
|
822 | #endif |
|
|
823 | |
650 | |
824 | #ifdef META8_OPTION |
651 | #ifdef META8_OPTION |
825 | meta_char = (options & Opt_meta8 ? 0x80 : C0_ESC); |
652 | meta_char = (options & Opt_meta8 ? 0x80 : C0_ESC); |
826 | #endif |
653 | #endif |
827 | |
654 | |
… | |
… | |
985 | i -= 8; |
812 | i -= 8; |
986 | #ifndef NO_BRIGHTCOLOR |
813 | #ifndef NO_BRIGHTCOLOR |
987 | rs[Rs_color + idx] = rs[Rs_color + minBrightCOLOR + i]; |
814 | rs[Rs_color + idx] = rs[Rs_color + minBrightCOLOR + i]; |
988 | return; |
815 | return; |
989 | #endif |
816 | #endif |
990 | |
|
|
991 | } |
817 | } |
992 | |
818 | |
993 | if (i >= 0 && i <= 7) /* normal colors */ |
819 | if (i >= 0 && i <= 7) /* normal colors */ |
994 | rs[Rs_color + idx] = rs[Rs_color + minCOLOR + i]; |
820 | rs[Rs_color + idx] = rs[Rs_color + minCOLOR + i]; |
995 | } |
821 | } |
… | |
… | |
1080 | XGCValues gcvalue; |
906 | XGCValues gcvalue; |
1081 | long vt_emask; |
907 | long vt_emask; |
1082 | XSetWindowAttributes attributes; |
908 | XSetWindowAttributes attributes; |
1083 | XWindowAttributes gattr; |
909 | XWindowAttributes gattr; |
1084 | |
910 | |
|
|
911 | #ifdef USING_W11LIB |
|
|
912 | /* enable W11 callbacks */ |
|
|
913 | W11AddEventHandler (display->display, rxvt_W11_process_x_event); |
|
|
914 | #endif |
|
|
915 | |
|
|
916 | assert (sizeof (xa_names) / sizeof (char *) == NUM_XA); |
|
|
917 | XInternAtoms (display->display, (char **)xa_names, NUM_XA, False, xa); |
|
|
918 | |
1085 | if (options & Opt_transparent) |
919 | if (options & Opt_transparent) |
1086 | { |
920 | { |
1087 | XGetWindowAttributes (display->display, RootWindow (display->display, display->screen), &gattr); |
921 | XGetWindowAttributes (display->display, RootWindow (display->display, display->screen), &gattr); |
1088 | display->depth = gattr.depth; // doh //TODO, per-term not per-display? |
922 | display->depth = gattr.depth; // doh //TODO, per-term not per-display? |
1089 | } |
923 | } |
1090 | |
924 | |
1091 | #if ENABLE_FRILLS |
925 | #if ENABLE_FRILLS |
1092 | if (options & Opt_borderLess) |
926 | if (options & Opt_borderLess) |
1093 | { |
927 | { |
1094 | prop = XInternAtom(display->display, "_MOTIF_WM_INFO", True); |
928 | prop = XInternAtom(display->display, "_MOTIF_WM_INFO", True); |
|
|
929 | |
1095 | if (prop == None) |
930 | if (prop == None) |
1096 | { |
931 | { |
1097 | /* print_warning("Window Manager does not support MWM hints. Bypassing window manager control for borderless window.\n");*/ |
932 | /* print_warning("Window Manager does not support MWM hints. Bypassing window manager control for borderless window.\n");*/ |
1098 | #ifdef PREFER_24BIT |
933 | #ifdef PREFER_24BIT |
1099 | attributes.override_redirect = TRUE; |
934 | attributes.override_redirect = TRUE; |
… | |
… | |
1113 | #endif |
948 | #endif |
1114 | |
949 | |
1115 | /* grab colors before netscape does */ |
950 | /* grab colors before netscape does */ |
1116 | Get_Colours (); |
951 | Get_Colours (); |
1117 | |
952 | |
1118 | if (!change_font (rs[Rs_font])) |
953 | if (!set_fonts ()) |
1119 | { |
954 | rxvt_fatal ("unable to load base fontset, please specify a valid one using -fn, aborting.\n"); |
1120 | fprintf (stderr, "unable to load a base font, please provide one using -fn fontname\n"); |
|
|
1121 | destroy (); |
|
|
1122 | return; |
|
|
1123 | } |
|
|
1124 | |
955 | |
1125 | window_calc (0, 0); |
956 | window_calc (0, 0); |
1126 | old_width = szHint.width; |
957 | old_width = szHint.width; |
1127 | old_height = szHint.height; |
958 | old_height = szHint.height; |
1128 | |
959 | |
1129 | /* sub-window placement & size in rxvt_resize_subwindows () */ |
960 | /* sub-window placement & size in rxvt_resize_subwindows () */ |
1130 | |
961 | |
1131 | #ifdef PREFER_24BIT |
962 | #ifdef PREFER_24BIT |
1132 | attributes.background_pixel = pix_colors[Color_bg]; |
963 | attributes.background_pixel = pix_colors_focused[Color_border]; |
1133 | attributes.border_pixel = pix_colors[Color_border]; |
964 | attributes.border_pixel = pix_colors_focused[Color_border]; |
1134 | attributes.colormap = display->cmap; |
965 | attributes.colormap = display->cmap; |
1135 | TermWin.parent[0] = XCreateWindow (display->display, DefaultRootWindow (display->display), |
966 | TermWin.parent[0] = XCreateWindow (display->display, DefaultRootWindow (display->display), |
1136 | szHint.x, szHint.y, |
967 | szHint.x, szHint.y, |
1137 | szHint.width, szHint.height, |
968 | szHint.width, szHint.height, |
1138 | TermWin.ext_bwidth, |
969 | TermWin.ext_bwidth, |
… | |
… | |
1142 | #else |
973 | #else |
1143 | TermWin.parent[0] = XCreateSimpleWindow (display->display, DefaultRootWindow (display->display), |
974 | TermWin.parent[0] = XCreateSimpleWindow (display->display, DefaultRootWindow (display->display), |
1144 | szHint.x, szHint.y, |
975 | szHint.x, szHint.y, |
1145 | szHint.width, szHint.height, |
976 | szHint.width, szHint.height, |
1146 | TermWin.ext_bwidth, |
977 | TermWin.ext_bwidth, |
1147 | pix_colors[Color_border], |
978 | pix_colors_focused[Color_border], |
1148 | pix_colors[Color_bg]); |
979 | pix_colors_focused[Color_border]); |
1149 | #endif |
980 | #endif |
1150 | |
981 | |
1151 | process_xterm_seq (XTerm_title, rs[Rs_title], CHAR_ST); |
982 | process_xterm_seq (XTerm_title, rs[Rs_title], CHAR_ST); |
1152 | process_xterm_seq (XTerm_iconName, rs[Rs_iconName], CHAR_ST); |
983 | process_xterm_seq (XTerm_iconName, rs[Rs_iconName], CHAR_ST); |
1153 | |
984 | |
… | |
… | |
1160 | wmHint.window_group = TermWin.parent[0]; |
991 | wmHint.window_group = TermWin.parent[0]; |
1161 | |
992 | |
1162 | XSetWMProperties (display->display, TermWin.parent[0], NULL, NULL, |
993 | XSetWMProperties (display->display, TermWin.parent[0], NULL, NULL, |
1163 | (char **)argv, argc, &szHint, &wmHint, &classHint); |
994 | (char **)argv, argc, &szHint, &wmHint, &classHint); |
1164 | |
995 | |
|
|
996 | /* Enable delete window protocol */ |
|
|
997 | XSetWMProtocols (display->display, TermWin.parent[0], |
|
|
998 | &xa[XA_WMDELETEWINDOW], 1); |
|
|
999 | |
1165 | #if ENABLE_FRILLS |
1000 | #if ENABLE_FRILLS |
1166 | long pid = getpid (); |
1001 | long pid = getpid (); |
|
|
1002 | |
1167 | XChangeProperty (display->display, TermWin.parent[0], |
1003 | XChangeProperty (display->display, TermWin.parent[0], |
1168 | display->atom ("_NET_WM_PID"), XA_CARDINAL, 32, |
1004 | xa[XA_NET_WM_PID], XA_CARDINAL, 32, |
1169 | PropModeReplace, (unsigned char *)&pid, 1); |
1005 | PropModeReplace, (unsigned char *)&pid, 1); |
1170 | #endif |
1006 | #endif |
1171 | |
1007 | |
1172 | XSelectInput (display->display, TermWin.parent[0], |
1008 | XSelectInput (display->display, TermWin.parent[0], |
1173 | KeyPressMask |
1009 | KeyPressMask |
1174 | #if defined(MOUSE_WHEEL) && defined(MOUSE_SLIP_WHEELING) |
1010 | #if (MOUSE_WHEEL && MOUSE_SLIP_WHEELING) || ENABLE_FRILLS || ISO_14755 |
1175 | | KeyReleaseMask |
1011 | | KeyReleaseMask |
1176 | #endif |
1012 | #endif |
1177 | | FocusChangeMask | VisibilityChangeMask |
1013 | | FocusChangeMask | VisibilityChangeMask |
1178 | | ExposureMask |
1014 | | ExposureMask |
1179 | | StructureNotifyMask); |
1015 | | StructureNotifyMask); |
1180 | termwin_ev.start (display, TermWin.parent[0]); |
1016 | termwin_ev.start (display, TermWin.parent[0]); |
1181 | |
1017 | |
1182 | #if ENABLE_FRILLS |
1018 | #if ENABLE_FRILLS |
1183 | if (mwmhints.flags) |
1019 | if (mwmhints.flags) |
1184 | { |
1020 | XChangeProperty (display->display, TermWin.parent[0], xa[XA_MOTIF_WM_HINTS], xa[XA_MOTIF_WM_HINTS], 32, |
1185 | prop = XInternAtom(display->display, "_MOTIF_WM_HINTS", False); |
1021 | PropModeReplace, (unsigned char *)&mwmhints, PROP_MWM_HINTS_ELEMENTS); |
1186 | XChangeProperty(display->display, TermWin.parent[0], prop, prop, 32, PropModeReplace, (unsigned char *) &mwmhints, PROP_MWM_HINTS_ELEMENTS); |
|
|
1187 | } |
|
|
1188 | #endif |
1022 | #endif |
1189 | |
1023 | |
1190 | /* vt cursor: Black-on-White is standard, but this is more popular */ |
1024 | /* vt cursor: Black-on-White is standard, but this is more popular */ |
1191 | TermWin_cursor = XCreateFontCursor (display->display, XC_xterm); |
1025 | TermWin_cursor = XCreateFontCursor (display->display, XC_xterm); |
1192 | |
1026 | |
… | |
… | |
1213 | window_vt_x, |
1047 | window_vt_x, |
1214 | window_vt_y, |
1048 | window_vt_y, |
1215 | TermWin_TotalWidth (), |
1049 | TermWin_TotalWidth (), |
1216 | TermWin_TotalHeight (), |
1050 | TermWin_TotalHeight (), |
1217 | 0, |
1051 | 0, |
1218 | pix_colors[Color_fg], |
1052 | pix_colors_focused[Color_fg], |
1219 | pix_colors[Color_bg]); |
1053 | pix_colors_focused[Color_bg]); |
1220 | #ifdef DEBUG_X |
1054 | #ifdef DEBUG_X |
1221 | XStoreName (display->display, TermWin.vt, "vt window"); |
1055 | XStoreName (display->display, TermWin.vt, "vt window"); |
1222 | #endif |
1056 | #endif |
1223 | |
1057 | |
1224 | attributes.bit_gravity = NorthWestGravity; |
1058 | attributes.bit_gravity = NorthWestGravity; |
… | |
… | |
1244 | menuBar.win = XCreateSimpleWindow (display->display, TermWin.parent[0], |
1078 | menuBar.win = XCreateSimpleWindow (display->display, TermWin.parent[0], |
1245 | window_vt_x, 0, |
1079 | window_vt_x, 0, |
1246 | TermWin_TotalWidth (), |
1080 | TermWin_TotalWidth (), |
1247 | menuBar_TotalHeight (), |
1081 | menuBar_TotalHeight (), |
1248 | 0, |
1082 | 0, |
1249 | pix_colors[Color_fg], |
1083 | pix_colors_focused[Color_fg], |
1250 | pix_colors[Color_scroll]); |
1084 | pix_colors_focused[Color_scroll]); |
1251 | |
1085 | |
1252 | #ifdef DEBUG_X |
1086 | #ifdef DEBUG_X |
1253 | XStoreName (display->display, menuBar.win, "menubar"); |
1087 | XStoreName (display->display, menuBar.win, "menubar"); |
1254 | #endif |
1088 | #endif |
1255 | |
1089 | |
… | |
… | |
1274 | if ((p = strchr (p, ';')) != NULL) |
1108 | if ((p = strchr (p, ';')) != NULL) |
1275 | { |
1109 | { |
1276 | p++; |
1110 | p++; |
1277 | scale_pixmap (p); |
1111 | scale_pixmap (p); |
1278 | } |
1112 | } |
|
|
1113 | |
1279 | set_bgPixmap (rs[Rs_backgroundPixmap]); |
1114 | set_bgPixmap (rs[Rs_backgroundPixmap]); |
1280 | scr_touch (True); |
1115 | scr_touch (true); |
1281 | } |
1116 | } |
1282 | #endif |
1117 | #endif |
1283 | |
1118 | |
1284 | /* graphics context for the vt window */ |
1119 | /* graphics context for the vt window */ |
1285 | gcvalue.foreground = pix_colors[Color_fg]; |
1120 | gcvalue.foreground = pix_colors[Color_fg]; |
… | |
… | |
1303 | #ifdef OFF_FOCUS_FADING |
1138 | #ifdef OFF_FOCUS_FADING |
1304 | // initially we are in unfocused state |
1139 | // initially we are in unfocused state |
1305 | if (rs[Rs_fade]) |
1140 | if (rs[Rs_fade]) |
1306 | pix_colors = pix_colors_unfocused; |
1141 | pix_colors = pix_colors_unfocused; |
1307 | #endif |
1142 | #endif |
|
|
1143 | |
|
|
1144 | scr_recolour (); |
1308 | } |
1145 | } |
1309 | |
1146 | |
1310 | /* ------------------------------------------------------------------------- * |
1147 | /* ------------------------------------------------------------------------- * |
1311 | * GET TTY CURRENT STATE * |
1148 | * GET TTY CURRENT STATE * |
1312 | * ------------------------------------------------------------------------- */ |
1149 | * ------------------------------------------------------------------------- */ |
… | |
… | |
1559 | |
1396 | |
1560 | rxvt_get_ttymode (&tio, er); |
1397 | rxvt_get_ttymode (&tio, er); |
1561 | |
1398 | |
1562 | /* set initial window size */ |
1399 | /* set initial window size */ |
1563 | tt_winch (); |
1400 | tt_winch (); |
|
|
1401 | |
|
|
1402 | sw_chld.start (SIGCHLD); |
1564 | |
1403 | |
1565 | #ifndef __QNX__ |
1404 | #ifndef __QNX__ |
1566 | /* spin off the command interpreter */ |
1405 | /* spin off the command interpreter */ |
1567 | switch (cmd_pid = fork ()) |
1406 | switch (cmd_pid = fork ()) |
1568 | { |
1407 | { |