--- rxvt-unicode/src/main.C 2006/01/08 08:49:20 1.168 +++ rxvt-unicode/src/main.C 2006/01/11 05:14:26 1.172 @@ -78,7 +78,7 @@ return true; } -bool +void rxvt_push_locale (const char *locale) { strcpy (savelocale, curlocale); @@ -286,14 +286,10 @@ } // TODO: free pixcolours, colours should become part of rxvt_display - delete pix_colors_focused; #if OFF_FOCUS_FADING delete pix_colors_unfocused; #endif -#if USE_XGETDEFAULT - XrmDestroyDatabase (xrmdatabase); -#endif displays.put (display); @@ -484,6 +480,7 @@ rxvt_term::init (int argc, const char *const *argv) { SET_R (this); + TEMP_ENV; // few things in X do not call setlocale :( set_locale (""); @@ -538,7 +535,7 @@ init_xlocale (); - scr_reset (); /* initialize screen */ + scr_reset (); // initialize screen #if 0 XSynchronize (disp, True); @@ -647,9 +644,7 @@ // TODO: handle this with exceptions and tolerate the memory loss XSetIOErrorHandler (rxvt_xioerror_handler); -#ifdef USE_XGETDEFAULT XrmInitialize (); -#endif } /* ------------------------------------------------------------------------- * @@ -1453,6 +1448,8 @@ char **s; XIMStyles *xim_styles; + TEMP_ENV; + if (! ((p = XSetLocaleModifiers (modifiers)) && *p)) return false;