From 66f8f5d8d11b9401e6df42b5ba63a98431541b45 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 12 Feb 2005 18:55:04 +0000 Subject: [PATCH] *** empty log message *** --- Changes | 4 ++++ src/keyboard.C | 11 ++++++++--- src/rxvtfont.C | 3 ++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Changes b/Changes index 7c01a1c..4ea1024 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 a307437..d3e5c6e 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 2021df7..22e677e 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; -- 1.9.1