--- rxvt-unicode/src/xdefaults.C 2006/01/11 00:59:58 1.77 +++ rxvt-unicode/src/xdefaults.C 2006/01/18 19:43:51 1.81 @@ -189,14 +189,9 @@ STRG (Rs_color + Color_pointer_fg, "pointerColor", "pr", "color", "pointer color"), STRG (Rs_color + Color_pointer_bg, "pointerColor2", "pr2", "color", "pointer bg color"), STRG (Rs_color + Color_border, "borderColor", "bd", "color", "border color"), -#if defined (XPM_BACKGROUND) || (MENUBAR_MAX) - RSTRG (Rs_path, "path", "search path"), -#endif /* defined (XPM_BACKGROUND) || (MENUBAR_MAX) */ #ifdef XPM_BACKGROUND + RSTRG (Rs_path, "path", "search path"), STRG (Rs_backgroundPixmap, "backgroundPixmap", "pixmap", "file[;geom]", "background pixmap"), -#endif /* XPM_BACKGROUND */ -#if (MENUBAR_MAX) - RSTRG (Rs_menu, "menu", "name[;tag]"), #endif /* fonts: command-line option = resource name */ STRG (Rs_font, "font", "fn", "fontname", "normal text font"), @@ -222,6 +217,7 @@ #endif #if ENABLE_FRILLS RSTRG (Rs_transient_for, "transient-for", "windowid"), + BOOL (Rs_override_redirect, "override-redirect", "override-redirect", Opt_override_redirect, "set override-redirect on the terminal window"), STRG (Rs_pty_fd, NULL, "pty-fd", "fileno", "file descriptor of pty to use"), BOOL (Rs_hold, "hold", "hold", Opt_hold, "retain window after shell exit"), STRG (Rs_ext_bwidth, "externalBorder", "w", "number", "external border in pixels"), @@ -328,9 +324,6 @@ #if defined(UTMP_SUPPORT) "utmp," #endif -#if defined(MENUBAR) - "menubar," -#endif #if defined(USE_XIM) "XIM," #endif @@ -370,9 +363,6 @@ #if EIGHT_BIT_CONTROLS "8bitctrls," #endif -#if !defined(NO_STRINGS) - "strings," -#endif #if defined(ENABLE_FRILLS) "frills," #endif @@ -773,7 +763,8 @@ # endif /* KEYSYM_RESOURCE */ #endif /* NO_RESOURCES */ -char *get_res (XrmDatabase database, const char *program, const char *option) +static char * +get_res (XrmDatabase database, const char *program, const char *option) { char resource[512]; char *type; @@ -785,49 +776,50 @@ return result.addr; } -/*{{{ read the resources files */ -/* - * using XGetDefault () or the hand-rolled replacement - */ -/* ARGSUSED */ +const char * +rxvt_term::x_resource (const char *name) +{ + XrmDatabase database = XrmGetDatabase (display->display); + + const char *p = get_res (database, rs[Rs_name], name); + const char *p0 = get_res (database, "!INVALIDPROGRAMMENAMEDONTMATCH!", name); + + if (p == NULL || (p0 && strcmp (p, p0) == 0)) + { + p = get_res (database, RESCLASS, name); +#ifdef RESFALLBACK + if (p == NULL || (p0 && strcmp (p, p0) == 0)) + p = get_res (database, RESFALLBACK, name); +#endif + } + + if (p == NULL && p0) + p = p0; + + return p; +} + void rxvt_term::extract_resources () { - dDisp; - #ifndef NO_RESOURCES - XrmDatabase database = XrmGetDatabase (display->display); - /* * Query resources for options that affect us */ for (int entry = 0; entry < optList_size; entry++) { int s; - char *p, *p0; const char *kw = optList[entry].kw; if (kw == NULL || rs[optList[entry].doff] != NULL) continue; // previously set - p = get_res (database, rs[Rs_name], kw); - p0 = get_res (database, "!INVALIDPROGRAMMENAMEDONTMATCH!", kw); - if (p == NULL || (p0 && strcmp (p, p0) == 0)) - { - p = get_res (database, RESCLASS, kw); -#ifdef RESFALLBACK - if (p == NULL || (p0 && strcmp (p, p0) == 0)) - p = get_res (database, RESFALLBACK, kw); -#endif - } - - if (p == NULL && p0) - p = p0; + const char *p = x_resource (kw); if (p) { p = strdup (p); - allocated.push_back (p); + allocated.push_back ((void *)p); rs[optList[entry].doff] = p; if (optList_isBool (entry)) @@ -849,6 +841,7 @@ * [R5 or later]: enumerate the resource database */ # ifdef KEYSYM_RESOURCE + XrmDatabase database = XrmGetDatabase (display->display); XrmName name_prefix[3]; XrmClass class_prefix[3]; @@ -875,5 +868,4 @@ #endif /* NO_RESOURCES */ } -/*}}} */ /*----------------------- end-of-file (C source) -----------------------*/