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