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;
 };

Reply via email to