From: root Date: Sat, 12 Feb 2005 18:55:04 +0000 (+0000) Subject: *** empty log message *** X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=66f8f5d8d11b9401e6df42b5ba63a98431541b45;p=dana%2Furxvt.git *** empty log message *** --- diff --git a/Changes b/Changes index 7c01a1ce..4ea10240 100644 --- a/Changes +++ b/Changes @@ -16,6 +16,10 @@ WISH: OnTheSpot editing. WISH: tabbed windows (hey, just use screen...) WISH: just for fun, do shade and tint with XRender. + - fix a bug when parsing fontnames and another one + for empty keymaps which could result in crashes + (Kuang-che Wu). + 5.0 Fri Feb 11 18:31:48 CET 2005 - document a race-free hack to start urxvtd. - document all(?) environment variables used and set by rxvt. diff --git a/src/keyboard.C b/src/keyboard.C index a3074377..d3e5c6e0 100644 --- a/src/keyboard.C +++ b/src/keyboard.C @@ -8,6 +8,7 @@ #include "keyboard.h" #include "command.h" +#if STOCK_KEYMAP //////////////////////////////////////////////////////////////////////////////// // default keycode translation map and keyevent handlers @@ -34,6 +35,7 @@ keysym_t keyboard_manager::stock_keymap[] = { //{ '0', MetaMask|ControlMask, 10, keysym_t::RANGE, "0" "\033"}, //{ 'a', MetaMask|ControlMask, 26, keysym_t::RANGE, "a" "\033"}, }; +#endif static void output_string (rxvt_term *rt, const char *str) @@ -209,11 +211,14 @@ keyboard_manager::register_keymap (keysym_t *key) void keyboard_manager::register_done () { - unsigned int i, n = sizeof (stock_keymap) / sizeof (keysym_t); +#if STOCK_KEYMAP + int n = sizeof (stock_keymap) / sizeof (keysym_t); - if (keymap.back () != &stock_keymap[n - 1]) - for (i = 0; i < n; ++i) + //TODO: shield against repeated calls and empty keymap + //if (keymap.back () != &stock_keymap[n - 1]) + for (int i = 0; i < n; ++i) register_keymap (&stock_keymap[i]); +#endif purge_duplicate_keymap (); diff --git a/src/rxvtfont.C b/src/rxvtfont.C index 2021df73..22e677eb 100644 --- a/src/rxvtfont.C +++ b/src/rxvtfont.C @@ -1383,7 +1383,8 @@ rxvt_fontset::add_fonts (const char *desc) do { - while (*desc <= ' ') desc++; + while (*desc && *desc <= ' ') + desc++; codeset cs = CS_UNICODE;