--- rxvt-unicode/src/xdefaults.C 2007/11/15 11:36:15 1.120 +++ rxvt-unicode/src/xdefaults.C 2007/11/22 15:07:10 1.122 @@ -563,19 +563,23 @@ rs[optList[entry].doff] = flag; } } - else #ifdef KEYSYM_RESOURCE - if (!strncmp (opt, "keysym.", sizeof ("keysym.") - 1)) - { - if (i+1 < argc) - parse_keysym (opt + sizeof ("keysym.") - 1, argv[++i]); - } - else + 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 - { - bad_option = 1; - rxvt_warn ("\"%s\": unknown or malformed option.\n", opt); - } + else + { + bad_option = 1; + rxvt_warn ("\"%s\": unknown or malformed option.\n", opt); + } } if (bad_option) @@ -803,6 +807,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 +848,6 @@ * [R5 or later]: enumerate the resource database */ # ifdef KEYSYM_RESOURCE - XrmDatabase database = XrmGetDatabase (dpy); XrmName name_prefix[3]; XrmClass class_prefix[3];