ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/main.C
(Generate patch)

Comparing rxvt-unicode/src/main.C (file contents):
Revision 1.118 by root, Thu Dec 9 06:20:41 2004 UTC vs.
Revision 1.128 by root, Mon Jan 17 00:59:23 2005 UTC

32 32
33#include "../config.h" /* NECESSARY */ 33#include "../config.h" /* NECESSARY */
34#include "rxvt.h" /* NECESSARY */ 34#include "rxvt.h" /* NECESSARY */
35#include "main.intpro" /* PROTOS for internal routines */ 35#include "main.intpro" /* PROTOS for internal routines */
36 36
37#include <signal.h> 37#include <csignal>
38#include <cstring>
38 39
39#ifdef TTY_GID_SUPPORT 40#ifdef TTY_GID_SUPPORT
40# include <grp.h> 41# include <grp.h>
41#endif 42#endif
42 43
43#ifdef HAVE_TERMIOS_H 44#ifdef HAVE_TERMIOS_H
44# include <termios.h> 45# include <termios.h>
45#endif 46#endif
46 47
47#include <cstring> 48#ifdef KEYSYM_RESOURCE
49# include "keyboard.h"
50#endif
48 51
49vector<rxvt_term *> rxvt_term::termlist; 52vector<rxvt_term *> rxvt_term::termlist;
50 53
51static char curlocale[128]; 54static char curlocale[128];
52 55
168 incr_ev (this, &rxvt_term::incr_cb) 171 incr_ev (this, &rxvt_term::incr_cb)
169{ 172{
170 cmdbuf_ptr = cmdbuf_endp = cmdbuf_base; 173 cmdbuf_ptr = cmdbuf_endp = cmdbuf_base;
171 174
172 termlist.push_back (this); 175 termlist.push_back (this);
176
177#ifdef KEYSYM_RESOURCE
178 keyboard = new keyboard_manager;
179
180 if (!keyboard)
181 rxvt_fatal ("out of memory, aborting.\n");
182#endif
173} 183}
174 184
175rxvt_term::~rxvt_term () 185rxvt_term::~rxvt_term ()
176{ 186{
177 termlist.erase (find (termlist.begin (), termlist.end(), this)); 187 termlist.erase (find (termlist.begin (), termlist.end(), this));
259 free (env_windowid); 269 free (env_windowid);
260 free (env_display); 270 free (env_display);
261 free (env_term); 271 free (env_term);
262 free (env_colorfgbg); 272 free (env_colorfgbg);
263 free (locale); 273 free (locale);
264#if 0 274 free (v_buffer);
265 free (codeset); 275 free (incr_buf);
266#endif
267 276
268 delete envv; 277 delete envv;
269 delete argv; 278 delete argv;
279
280#ifdef KEYSYM_RESOURCE
281 delete keyboard;
282#endif
270} 283}
271 284
272void 285void
273rxvt_term::destroy () 286rxvt_term::destroy ()
274{ 287{
332bool 345bool
333rxvt_term::init (int argc, const char *const *argv) 346rxvt_term::init (int argc, const char *const *argv)
334{ 347{
335 SET_R (this); 348 SET_R (this);
336 349
350 set_locale ("");
351
337 if (!init_vars ()) 352 if (!init_vars ())
338 return false; 353 return false;
339 354
340 init_secondary (); 355 init_secondary ();
341 356
342 const char **cmd_argv = init_resources (argc, argv); 357 const char **cmd_argv = init_resources (argc, argv);
343 358
344 set_locale (""); 359#ifdef KEYSYM_RESOURCE
360 keyboard->register_done ();
361#endif
345 362
346#if MENUBAR_MAX 363#if MENUBAR_MAX
347 menubar_read (rs[Rs_menu]); 364 menubar_read (rs[Rs_menu]);
348#endif 365#endif
349#ifdef HAVE_SCROLLBARS 366#ifdef HAVE_SCROLLBARS
382 XMapWindow (display->display, TermWin.parent[0]); 399 XMapWindow (display->display, TermWin.parent[0]);
383 400
384 set_colorfgbg (); 401 set_colorfgbg ();
385 402
386 init_command (cmd_argv); 403 init_command (cmd_argv);
404
405 free (cmd_argv);
387 406
388 pty_ev.start (pty.pty, EVENT_READ); 407 pty_ev.start (pty.pty, EVENT_READ);
389 408
390 check_ev.start (); 409 check_ev.start ();
391 410
783 802
784 delete TermWin.fontset[0]; 803 delete TermWin.fontset[0];
785 TermWin.fontset[0] = fs; 804 TermWin.fontset[0] = fs;
786 805
787 prop = (*fs)[1]->properties (); 806 prop = (*fs)[1]->properties ();
807 prop.height += TermWin.lineSpace;
788 fs->set_prop (prop); 808 fs->set_prop (prop);
789 809
790 TermWin.fwidth = prop.width; 810 TermWin.fwidth = prop.width;
791 TermWin.fheight = prop.height; 811 TermWin.fheight = prop.height;
792 TermWin.fweight = prop.weight; 812 TermWin.fweight = prop.weight;
861void 881void
862rxvt_term::set_title (const char *str) 882rxvt_term::set_title (const char *str)
863{ 883{
864 set_string_property (XA_WM_NAME, str); 884 set_string_property (XA_WM_NAME, str);
865#if ENABLE_FRILLS 885#if ENABLE_FRILLS
866 set_utf8_property (display->atom ("_NET_WM_NAME"), str); 886 set_utf8_property (xa[XA_NET_WM_NAME], str);
867#endif 887#endif
868} 888}
869 889
870void 890void
871rxvt_term::set_icon_name (const char *str) 891rxvt_term::set_icon_name (const char *str)
872{ 892{
873 set_string_property (XA_WM_ICON_NAME, str); 893 set_string_property (XA_WM_ICON_NAME, str);
874#if ENABLE_FRILLS 894#if ENABLE_FRILLS
875 set_utf8_property (display->atom ("_NET_WM_ICON_NAME"), str); 895 set_utf8_property (xa[XA_NET_WM_ICON_NAME], str);
876#endif 896#endif
877} 897}
878 898
879#ifdef XTERM_COLOR_CHANGE 899#ifdef XTERM_COLOR_CHANGE
880void 900void
999 1019
1000 sprintf (env_colorfgbg, "COLORFGBG=%s;%s%s", fstr, xpmb, bstr); 1020 sprintf (env_colorfgbg, "COLORFGBG=%s;%s%s", fstr, xpmb, bstr);
1001} 1021}
1002 1022
1003/*----------------------------------------------------------------------*/ 1023/*----------------------------------------------------------------------*/
1004/*
1005 * Colour determination for low colour displays, routine from
1006 * Hans de Goede <hans@highrise.nl>
1007 */
1008 1024
1009int 1025int
1010rxvt_term::rXParseAllocColor (rxvt_color *screen_in_out, const char *colour) 1026rxvt_term::rXParseAllocColor (rxvt_color *screen_in_out, const char *colour)
1011{ 1027{
1012 if (!screen_in_out->set (display, colour)) 1028 if (!screen_in_out->set (display, colour))

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines