--- rxvt-unicode/src/xdefaults.C 2007/11/15 11:36:15 1.120 +++ rxvt-unicode/src/xdefaults.C 2007/11/24 10:32:33 1.124 @@ -227,9 +227,11 @@ STRG (Rs_ext_bwidth, NULL, "borderwidth", NULL, NULL), STRG (Rs_int_bwidth, "internalBorder", "b", "number", "internal border in pixels"), BOOL (Rs_borderLess, "borderLess", "bl", Opt_borderLess, 0, "borderless window"), - BOOL (Rs_skipBuiltinGlyphs, "skipBuiltinGlyphs", "sbg", Opt_skipBuiltinGlyphs, 0, "do not use internal glyphs"), STRG (Rs_lineSpace, "lineSpace", "lsp", "number", "number of extra pixels between rows"), #endif +#ifdef BUILTIN_GLYPHS + BOOL (Rs_skipBuiltinGlyphs, "skipBuiltinGlyphs", "sbg", Opt_skipBuiltinGlyphs, 0, "do not use internal glyphs"), +#endif #ifdef POINTER_BLANK RSTRG (Rs_pointerBlankDelay, "pointerBlankDelay", "number"), #endif @@ -265,9 +267,6 @@ STRG (Rs_blendtype, "blendType", "blt", "string", "background image blending type - alpha, tint, etc..."), STRG (Rs_blurradius, "blurRadius", "blr", "HxV", "Gaussian Blur radii to apply to the root background"), #endif -#ifndef NO_RESOURCES - INFO ("xrm", "string", "X resource"), -#endif INFO ("e", "command arg ...", "command to execute") }; @@ -563,19 +562,30 @@ rs[optList[entry].doff] = flag; } } - else +#ifndef NO_RESOURCES + else if (!strcmp (opt, "xrm")) + { + if (i+1 < argc) + XrmPutLineResource (&option_db, argv[++i]); + } +#endif #ifdef KEYSYM_RESOURCE - if (!strncmp (opt, "keysym.", sizeof ("keysym.") - 1)) - { - if (i+1 < argc) - parse_keysym (opt + sizeof ("keysym.") - 1, argv[++i]); - } - else -#endif - { - bad_option = 1; - rxvt_warn ("\"%s\": unknown or malformed option.\n", opt); - } + else if (!strncmp (opt, "keysym.", sizeof ("keysym.") - 1)) + { + if (i+1 < argc) + { + char *res = (char *)malloc (strlen (opt) + strlen (argv[++i]) + 6); + sprintf (res, "*.%s: %s\n", opt, argv[i]); + XrmPutLineResource (&option_db, res); + free (res); + } + } +#endif + else + { + bad_option = 1; + rxvt_warn ("\"%s\": unknown or malformed option.\n", opt); + } } if (bad_option) @@ -803,6 +813,9 @@ rxvt_term::extract_resources () { #ifndef NO_RESOURCES + XrmDatabase database = XrmGetDatabase (dpy); + XrmMergeDatabases (option_db, &database); + option_db = NULL; /* * Query resources for options that affect us */ @@ -841,7 +854,6 @@ * [R5 or later]: enumerate the resource database */ # ifdef KEYSYM_RESOURCE - XrmDatabase database = XrmGetDatabase (dpy); XrmName name_prefix[3]; XrmClass class_prefix[3];