--- rxvt-unicode/src/init.C 2003/12/18 13:33:02 1.16 +++ rxvt-unicode/src/init.C 2004/01/31 03:27:45 1.22 @@ -1,7 +1,6 @@ /*--------------------------------*-C-*---------------------------------* * File: init.c *----------------------------------------------------------------------* - * $Id: init.C,v 1.16 2003/12/18 13:33:02 pcg Exp $ * * All portions of code are copyright by their respective author/s. * Copyright (c) 1992 John Bovey, University of Kent at Canterbury @@ -333,10 +332,11 @@ const char *const xa_names[NUM_XA] = { + "TEXT", "COMPOUND_TEXT", + "UTF8_STRING", "MULTIPLE", "TARGETS", - "TEXT", "TIMESTAMP", "VT_SELECTION", "INCR", @@ -526,7 +526,7 @@ if ((rs[Rs_display_name] = getenv ("DISPLAY")) == NULL) rs[Rs_display_name] = ":0"; - rxvt_get_options (this, r_argc, r_argv); + get_options (r_argc, r_argv); free (r_argv); #ifdef LOCAL_X_IS_UNIX @@ -547,7 +547,7 @@ exit (EXIT_FAILURE); } - rxvt_extract_resources (this, Xdisplay, rs[Rs_name]); + extract_resources (Xdisplay, rs[Rs_name]); /* * set any defaults not already set @@ -662,7 +662,7 @@ } #ifdef HAVE_SCROLLBARS - rxvt_setup_scrollbar (this, rs[Rs_scrollBar_align], rs[Rs_scrollstyle], + setup_scrollbar (rs[Rs_scrollBar_align], rs[Rs_scrollstyle], rs[Rs_scrollBar_thickness]); #endif @@ -801,7 +801,7 @@ { #if HAVE_XSETLOCALE || HAVE_SETLOCALE free (this->locale); - this->locale = strdup (setlocale (LC_CTYPE, "")); + this->locale = rxvt_strdup (setlocale (LC_CTYPE, "")); #endif #if HAVE_NL_LANGINFO free (codeset); @@ -871,7 +871,7 @@ meta_char = (Options & Opt_meta8 ? 0x80 : C0_ESC); #endif - rxvt_get_ourmods (this); + get_ourmods (); if (!(Options & Opt_scrollTtyOutput)) PrivateModes |= PrivMode_TtyOutputInh; @@ -886,12 +886,12 @@ #endif /* add value for scrollBar */ - if (scrollbar_visible (this)) + if (scrollbar_visible ()) { PrivateModes |= PrivMode_scrollBar; SavedModes |= PrivMode_scrollBar; } - if (menubar_visible (this)) + if (menubar_visible ()) { PrivateModes |= PrivMode_menuBar; SavedModes |= PrivMode_menuBar; @@ -917,9 +917,8 @@ } /*----------------------------------------------------------------------*/ -/* INTPROTO */ void -rxvt_Get_Colours (pR) +rxvt_term::Get_Colours () { int i; @@ -927,24 +926,24 @@ { rxvt_color xcol; - if (!R->rs[Rs_color + i]) + if (!rs[Rs_color + i]) continue; - if (!rxvt_rXParseAllocColor(aR_ &xcol, R->rs[Rs_color + i])) + if (!rXParseAllocColor (&xcol, rs[Rs_color + i])) { #ifndef XTERM_REVERSE_VIDEO - if (i < 2 && (R->Options & Opt_reverseVideo)) + if (i < 2 && (Options & Opt_reverseVideo)) { - R->rs[Rs_color + i] = def_colorName[!i]; + rs[Rs_color + i] = def_colorName[!i]; } else #endif - R->rs[Rs_color + i] = def_colorName[i]; + rs[Rs_color + i] = def_colorName[i]; - if (!R->rs[Rs_color + i]) + if (!rs[Rs_color + i]) continue; - if (!rxvt_rXParseAllocColor(aR_ &xcol, R->rs[Rs_color + i])) + if (!rXParseAllocColor (&xcol, rs[Rs_color + i])) { switch (i) { @@ -957,27 +956,27 @@ break; #ifndef NO_CURSORCOLOR case Color_cursor2: - xcol = R->PixColors[Color_fg]; + xcol = PixColors[Color_fg]; break; #endif /* ! NO_CURSORCOLOR */ case Color_pointer: - xcol = R->PixColors[Color_fg]; + xcol = PixColors[Color_fg]; break; default: - xcol = R->PixColors[Color_bg]; /* None */ + xcol = PixColors[Color_bg]; /* None */ break; } } } - R->PixColors[i] = xcol; - SET_PIXCOLOR (R, i); + PixColors[i] = xcol; + SET_PIXCOLOR (i); } - if (XDEPTH <= 2 || !R->rs[Rs_color + Color_pointer]) - R->PixColors[Color_pointer] = R->PixColors[Color_fg]; - if (XDEPTH <= 2 || !R->rs[Rs_color + Color_border]) - R->PixColors[Color_border] = R->PixColors[Color_fg]; + if (XDEPTH <= 2 || !rs[Rs_color + Color_pointer]) + PixColors[Color_pointer] = PixColors[Color_fg]; + if (XDEPTH <= 2 || !rs[Rs_color + Color_border]) + PixColors[Color_border] = PixColors[Color_fg]; /* * get scrollBar/menuBar shadow colors @@ -989,9 +988,9 @@ if (XDEPTH <= 2) { /* Monochrome */ - R->PixColors[Color_scroll] = R->PixColors[Color_fg]; - R->PixColors[Color_topShadow] = R->PixColors[Color_bg]; - R->PixColors[Color_bottomShadow] = R->PixColors[Color_bg]; + PixColors[Color_scroll] = PixColors[Color_fg]; + PixColors[Color_topShadow] = PixColors[Color_bg]; + PixColors[Color_bottomShadow] = PixColors[Color_bg]; } else { @@ -1000,33 +999,33 @@ * xcol[1] == top shadow * xcol[2] == bot shadow */ - xcol[1] = R->PixColors[Color_scroll]; + xcol[1] = PixColors[Color_scroll]; # ifdef PREFER_24BIT - xcol[0].set (R, 65535, 65535, 65535); - /* XFreeColors(R->Xdisplay, XCMAP, &(xcol[0].pixel), 1, ~0); */ + xcol[0].set (this, 65535, 65535, 65535); + /* XFreeColors(Xdisplay, XCMAP, &(xcol[0].pixel), 1, ~0); */ # else - xcol[0].set (WhitePixel(R->Xdisplay, Xscreen)); + xcol[0].set (this, WhitePixel (Xdisplay, Xscreen)); # endif unsigned short pr1, pg1, pb1, pr0, pg0, pb0; - xcol[0].get (R, pr0, pg0, pb0); - xcol[1].get (R, pr1, pg1, pb1); + xcol[0].get (this, pr0, pg0, pb0); + xcol[1].get (this, pr1, pg1, pb1); /* bottomShadowColor */ - if (!xcol[2].set (aR_ pr1 / 2, pg1 / 2, pb1 / 2)) - xcol[2] = R->PixColors[Color_Black]; + if (!xcol[2].set (this, pr1 / 2, pg1 / 2, pb1 / 2)) + xcol[2] = PixColors[Color_Black]; - R->PixColors[Color_bottomShadow] = xcol[2]; + PixColors[Color_bottomShadow] = xcol[2]; /* topShadowColor */ - if (!xcol[1].set (aR_ + if (!xcol[1].set (this, min (pr0, max (pr0 / 5, pr1) * 7 / 5), min (pg0, max (pg0 / 5, pg1) * 7 / 5), min (pb0, max (pb0 / 5, pb1) * 7 / 5))) - xcol[1] = R->PixColors[Color_White]; + xcol[1] = PixColors[Color_White]; - R->PixColors[Color_topShadow] = xcol[1]; + PixColors[Color_topShadow] = xcol[1]; } #endif /* KEEP_SCROLLCOLOR */ } @@ -1044,12 +1043,11 @@ { /* bright colors */ i -= 8; #ifndef NO_BRIGHTCOLOR - rs[Rs_color + idx] = rs[Rs_color + minBrightCOLOR + i]; return; #endif - } + if (i >= 0 && i <= 7) /* normal colors */ rs[Rs_color + idx] = rs[Rs_color + minCOLOR + i]; } @@ -1060,9 +1058,8 @@ * Probe the modifier keymap to get the Meta (Alt) and Num_Lock settings * Use resource ``modifier'' to override the Meta modifier */ -/* INTPROTO */ void -rxvt_get_ourmods(pR) +rxvt_term::get_ourmods () { int i, j, k; int requestedmeta, realmeta, realalt; @@ -1075,12 +1072,12 @@ }; requestedmeta = realmeta = realalt = 0; - rsmod = R->rs[Rs_modifier]; + rsmod = rs[Rs_modifier]; if (rsmod && STRCASECMP(rsmod, "mod1") >= 0 && STRCASECMP(rsmod, "mod5") <= 0) requestedmeta = rsmod[3] - '0'; - map = XGetModifierMapping(R->Xdisplay); + map = XGetModifierMapping(Xdisplay); kc = map->modifiermap; for (i = 1; i < 6; i++) { @@ -1089,10 +1086,10 @@ { if (kc[k] == 0) break; - switch (XKeycodeToKeysym(R->Xdisplay, kc[k], 0)) + switch (XKeycodeToKeysym(Xdisplay, kc[k], 0)) { case XK_Num_Lock: - R->ModNumLockMask = modmasks[i - 1]; + ModNumLockMask = modmasks[i - 1]; /* FALLTHROUGH */ default: continue; /* for(;;) */ @@ -1124,7 +1121,7 @@ : (realmeta ? realmeta : (realalt ? realalt : 0))); if (i) - R->ModMetaMask = modmasks[i - 1]; + ModMetaMask = modmasks[i - 1]; } /*----------------------------------------------------------------------*/ @@ -1137,45 +1134,44 @@ XGCValues gcvalue; long vt_emask; -#ifdef PREFER_24BIT - XSetWindowAttributes attributes; XWindowAttributes gattr; - XCMAP = DefaultColormap(Xdisplay, Xscreen); - XVISUAL = DefaultVisual(Xdisplay, Xscreen); + Xcmap = DefaultColormap (Xdisplay, Xscreen); + Xvisual = DefaultVisual (Xdisplay, Xscreen); + Xscreen = DefaultScreen (Xdisplay); if (Options & Opt_transparent) { - XGetWindowAttributes(Xdisplay, RootWindow(Xdisplay, Xscreen), - &gattr); - XDEPTH = gattr.depth; + XGetWindowAttributes (Xdisplay, RootWindow(Xdisplay, Xscreen), &gattr); + Xdepth = gattr.depth; } else { - XDEPTH = DefaultDepth(Xdisplay, Xscreen); + Xdepth = DefaultDepth(Xdisplay, Xscreen); +#ifdef PREFER_24BIT /* * If depth is not 24, look for a 24bit visual. */ - if (XDEPTH != 24) + if (Xdepth != 24) { XVisualInfo vinfo; if (XMatchVisualInfo(Xdisplay, Xscreen, 24, TrueColor, &vinfo)) { - XDEPTH = 24; - XVISUAL = vinfo.visual; - XCMAP = XCreateColormap(Xdisplay, + Xdepth = 24; + Xvisual = vinfo.visual; + Xcmap = XCreateColormap(Xdisplay, RootWindow(Xdisplay, Xscreen), - XVISUAL, AllocNone); + Xvisual, AllocNone); } } - } #endif + } /* grab colors before netscape does */ - rxvt_Get_Colours (this); + Get_Colours (); - rxvt_change_font (this, 1, NULL); + change_font (1, NULL); window_calc (0, 0); old_width = szHint.width; old_height = szHint.height; @@ -1185,15 +1181,17 @@ */ #ifdef PREFER_24BIT + XSetWindowAttributes attributes; + attributes.background_pixel = PixColors[Color_fg]; attributes.border_pixel = PixColors[Color_border]; - attributes.colormap = XCMAP; + attributes.colormap = Xcmap; TermWin.parent[0] = XCreateWindow (Xdisplay, DefaultRootWindow (Xdisplay), szHint.x, szHint.y, szHint.width, szHint.height, TermWin.ext_bwidth, - XDEPTH, InputOutput, - XVISUAL, + Xdepth, InputOutput, + Xvisual, CWBackPixel | CWBorderPixel | CWColormap, &attributes); #else @@ -1206,8 +1204,8 @@ PixColors[Color_fg]); #endif - rxvt_xterm_seq (this, XTerm_title, rs[Rs_title], CHAR_ST); - rxvt_xterm_seq (this, XTerm_iconName, rs[Rs_iconName], CHAR_ST); + xterm_seq (XTerm_title, rs[Rs_title], CHAR_ST); + xterm_seq (XTerm_iconName, rs[Rs_iconName], CHAR_ST); classHint.res_name = (char *)rs[Rs_name]; classHint.res_class = (char *)APL_CLASS; @@ -1259,22 +1257,21 @@ PixColors[Color_fg], PixColors[Color_bg]); #ifdef DEBUG_X - XStoreName(Xdisplay, TermWin.vt, "vt window"); #endif - pointer_unblank (); - vt_emask = (ExposureMask | ButtonPressMask | ButtonReleaseMask | PropertyChangeMask); + #ifdef POINTER_BLANK + pointer_unblank (); if ((Options & Opt_pointerBlank)) vt_emask |= PointerMotionMask; else #endif - vt_emask |= (Button1MotionMask | Button3MotionMask); + XSelectInput(Xdisplay, TermWin.vt, vt_emask); #if defined(MENUBAR) && (MENUBAR_MAX > 1) @@ -1308,10 +1305,10 @@ if ((p = STRCHR(p, ';')) != NULL) { p++; - rxvt_scale_pixmap (this, p); + scale_pixmap (p); } - rxvt_set_bgPixmap (this, rs[Rs_backgroundPixmap]); - rxvt_scr_touch (this, True); + set_bgPixmap (rs[Rs_backgroundPixmap]); + scr_touch (True); } #endif @@ -1371,7 +1368,7 @@ if (tty_fd < 0) { #ifndef NO_SETOWNER_TTYDEV - rxvt_privileged_ttydev (aR_ SAVE); + privileged_ttydev (SAVE); #endif if ((tty_fd = rxvt_get_tty (ttydev)) < 0) @@ -1428,7 +1425,10 @@ dup2 (tty_fd, STDIN_FILENO); #endif - rxvt_privileged_utmp (this, SAVE); +#ifdef UTMP_SUPPORT + privileged_utmp (SAVE); +#endif + #if defined(HAVE_STRUCT_UTMP) && defined(HAVE_TTYSLOT) dup2 (fdstdin, STDIN_FILENO); @@ -1601,7 +1601,7 @@ * GET TTY CURRENT STATE * * ------------------------------------------------------------------------- */ /* rxvt_get_ttymode() */ -/* INTPROTO */ +/* EXTPROTO */ void rxvt_get_ttymode(ttymode_t *tio, int erase) {