For some strange reason, kbmap shows up in top position in my update-less tree [Don't ask me why, called far too often] The attached patch improves the situation somewhat cleanly.
Andre' -- Those who desire to give up Freedom in order to gain Security, will not have, nor do they deserve, either one. (T. Jefferson or B. Franklin or both...)
Index: kbmap.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/kbmap.C,v retrieving revision 1.42 diff -u -p -r1.42 kbmap.C --- kbmap.C 19 Mar 2003 17:15:31 -0000 1.42 +++ kbmap.C 18 Jun 2003 13:24:20 -0000 @@ -23,13 +23,18 @@ string const kb_keymap::printKeysym(LyXK string const s = key->getSymbolName(); - if (mod & key_modifier::shift) buf += "S-"; - if (mod & key_modifier::ctrl) buf += "C-"; - if (mod & key_modifier::alt) buf += "M-"; + if (mod & key_modifier::shift) + buf += "S-"; + if (mod & key_modifier::ctrl) + buf += "C-"; + if (mod & key_modifier::alt) + buf += "M-"; + buf += s; return buf; } + string const kb_keymap::printKey(kb_key const & key) const { return printKeysym(key.code, key.mod.first); @@ -68,8 +73,8 @@ int kb_keymap::lookup(LyXKeySymPtr key, return LFUN_UNKNOWN_ACTION; } - for (Table::const_iterator cit = table.begin(); - cit != table.end(); ++cit) { + Table::const_iterator end = table.end(); + for (Table::const_iterator cit = table.begin(); cit != end; ++cit) { key_modifier::state mask(cit->mod.second); key_modifier::state check = static_cast<key_modifier::state>(mod & ~mask); @@ -99,8 +104,8 @@ int kb_keymap::lookup(LyXKeySymPtr key, string const kb_keymap::print() const { string buf; - for (Table::const_iterator cit = table.begin(); - cit != table.end(); ++cit) { + Table::const_iterator end = table.end(); + for (Table::const_iterator cit = table.begin(); cit != end; ++cit) { buf += printKey((*cit)); buf += ' '; } @@ -118,7 +123,8 @@ void kb_keymap::defkey(kb_sequence * seq key_modifier::state const mod2 = seq->modifiers[r].second; // check if key is already there - for (Table::iterator it = table.begin(); it != table.end(); ++it) { + Table::iterator end = table.end(); + for (Table::iterator it = table.begin(); it != end; ++it) { if (*(code) == *(it->code) && mod1 == it->mod.first && mod2 == it->mod.second) { Index: kbmap.h =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/kbmap.h,v retrieving revision 1.24 diff -u -p -r1.24 kbmap.h --- kbmap.h 13 Feb 2003 16:52:28 -0000 1.24 +++ kbmap.h 18 Jun 2003 13:24:20 -0000 @@ -15,7 +15,7 @@ #include "frontends/key_state.h" #include "frontends/LyXKeySym.h" -#include <list> +#include <vector> class kb_sequence; @@ -87,7 +87,7 @@ private: return table.empty(); } /// - typedef std::list<kb_key> Table; + typedef std::vector<kb_key> Table; /// Table table; };