X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fkbmap.C;h=389416e3e44c32be50c571f9c72637563365f7c5;hb=adaef99e60e28eba8c413a3472cc71e234718af0;hp=8c11970cdb43809b93d30bcd911e636546254b35;hpb=9ce32d63e5ff1dbf4c04e3d8263b2649ef3ac595;p=lyx.git diff --git a/src/kbmap.C b/src/kbmap.C index 8c11970cdb..389416e3e4 100644 --- a/src/kbmap.C +++ b/src/kbmap.C @@ -21,6 +21,8 @@ #include "kbsequence.h" #include "debug.h" +using std::endl; + // The only modifiers that we handle. We want to throw away things // like NumLock. enum { ModsMask = ShiftMask | ControlMask | Mod1Mask }; @@ -69,7 +71,7 @@ void kb_keymap::printKey(kb_key const & key, string & buf) // This binds a key to an action -int kb_keymap::bind(char const * seq, int action) +int kb_keymap::bind(string const & seq, int action) { kb_sequence k; @@ -165,24 +167,25 @@ void kb_keymap::print(string & buf) const int kb_keymap::defkey(kb_sequence * seq, int action, int idx /*= 0*/) { unsigned int code = seq->sequence[idx]; - if(code == NoSymbol) return -1; + if (code == NoSymbol) return -1; unsigned int modmsk = seq->modifiers[idx]; // --- check if key is already there -------------------------------- - if (table.size() != 0) // without this I get strange crashes - for (Table::iterator it = table.begin(); it != table.end(); ++it) { + if (table.size() != 0) { // without this I get strange crashes + Table::iterator end = table.end(); + for (Table::iterator it = table.begin(); it != end; ++it) { if (code == (*it).code && modmsk == (*it).mod) { // overwrite binding if (idx + 1 == seq->length) { string buf; seq->print(buf, true); - lyxerr[Debug::KEY] + lyxerr[Debug::KBMAP] << "Warning: New binding for '" << buf << "' is overriding old binding..." << endl; - if((*it).table) { + if ((*it).table) { delete (*it).table; (*it).table = 0; } @@ -201,7 +204,8 @@ int kb_keymap::defkey(kb_sequence * seq, int action, int idx /*= 0*/) } } } - + } + Table::iterator newone = table.insert(table.end(), kb_key()); (*newone).code = code; (*newone).mod = modmsk; @@ -227,13 +231,14 @@ int kb_keymap::defkey(kb_sequence * seq, int action, int idx /*= 0*/) kb_keymap::~kb_keymap() { // This could be done by a destructor in kb_key. - for(Table::iterator it = table.begin(); it != table.end(); ++it) { + Table::iterator end = table.end(); + for (Table::iterator it = table.begin(); it != end; ++it) { delete (*it).table; } } -string kb_keymap::keyname(kb_key const & k) +string const kb_keymap::keyname(kb_key const & k) { string buf; printKeysym(k.code, k.mod, buf); @@ -242,13 +247,14 @@ string kb_keymap::keyname(kb_key const & k) // Finds a key for a keyaction, if possible -string kb_keymap::findbinding(int act) const +string const kb_keymap::findbinding(int act) const { string res; if (table.empty()) return res; - 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) { if ((*cit).table) { string suffix = (*cit).table->findbinding(act); suffix = strip(suffix, ' '); @@ -259,7 +265,9 @@ string kb_keymap::findbinding(int act) const + suffix + "] "; } } else if ((*cit).action == act) { - res += "[" + keyname((*cit)) + "] "; + res += "["; + res += keyname((*cit)); + res += "] "; } } return res;