X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ftrans.C;h=4e2d45c20a7e5355057fe5d54436aab07ce8ea47;hb=664eb7ff45dbb4fabc22ec0b56798031a82335b1;hp=d1710e91e6f6fe57dce93c5e50a67c1b04aebf91;hpb=9c6eea2ba5a85c8f88018723795fc7c25b7dcaa0;p=lyx.git diff --git a/src/trans.C b/src/trans.C index d1710e91e6..4e2d45c20a 100644 --- a/src/trans.C +++ b/src/trans.C @@ -48,7 +48,7 @@ string const DefaultTrans::process(char c, TransManager & k) Trans::Trans() { - for(int i = 0; i < TEX_MAX_ACCENT + 1; ++i) + for (int i = 0; i < TEX_MAX_ACCENT + 1; ++i) kmod_list_[i] = 0; } @@ -87,11 +87,11 @@ void Trans::FreeException(Trans::keyexc & exclist) void Trans::FreeKeymap() { - for(int i = 0; i < 256; ++i) + for (int i = 0; i < 256; ++i) if (!keymap_[i].empty()) { keymap_[i].erase(); } - for(int i = 0; i < TEX_MAX_ACCENT + 1; ++i) + for (int i = 0; i < TEX_MAX_ACCENT + 1; ++i) if (kmod_list_[i]) { FreeException(kmod_list_[i]->exception_list); delete kmod_list_[i]; @@ -150,32 +150,17 @@ void Trans::AddDeadkey(tex_accent accent, string const & keys, kmod_list_[accent]->allowed = allowed; } - for(string::size_type i = 0; i < keys.length(); ++i) { -#if 0 - string * temp = - &keymap_[static_cast(keys[i])]; -#warning this is not really clean we should find a cleaner way (Jug) - *temp = "xx"; /* this is needed for the being sure that - the below assignment is not assigned to - a nullpointer (if size of string = 0) - */ - (*temp)[0] = 0; - (*temp)[1] = accent; -#else + for (string::size_type i = 0; i < keys.length(); ++i) { string & temp = keymap_[static_cast(keys[i])]; - if (!temp.empty()) { - temp[0] = 0; - temp[1] = accent; - } else { - // But the question remains: "Should we be allowed - // to change bindings, without unbinding first?" - // Lgb - lyxerr << "Hey... keymap_[xx] not empty." << endl; - temp.push_back(char(0)); - temp.push_back(char(accent)); - } -#endif + if (!temp.empty()) + temp.erase(); + + // But the question remains: "Should we be allowed + // to change bindings, without unbinding first?" + // Lgb + temp += char(0); + temp += char(accent); } kmod_list_[accent]->exception_list = 0; } @@ -186,7 +171,7 @@ int Trans::Load(LyXLex & lex) bool error = false; while (lex.IsOK() && !error) { - switch(lex.lex()) { + switch (lex.lex()) { case KMOD: { if (lyxerr.debugging(Debug::KBMAP)) @@ -201,7 +186,7 @@ int Trans::Load(LyXLex & lex) string keys = lex.GetString(); if (lex.next(true)) { - if ( lyxerr.debugging(Debug::KBMAP)) + if (lyxerr.debugging(Debug::KBMAP)) lyxerr << "accent\t`" << lex.text() << "'" << endl; } else @@ -253,7 +238,7 @@ int Trans::Load(LyXLex & lex) // Find what key accent_2 is on - should // check about accent_1 also int key = 0; - for(; key < 256; ++key) { + for (; key < 256; ++key) { if (!keymap_[key].empty() && keymap_[key][0] == 0 && keymap_[key][1] == accent_2) @@ -366,7 +351,7 @@ string const Trans::process(char c, TransManager & k) if (t.empty() && c != 0) { dt[0] = c; return k.normalkey(c, dt); - } else if (!t.empty()) { + } else if (!t.empty() && t[0] != char(0)) { dt = t; return k.normalkey(c, dt); } else { @@ -378,7 +363,7 @@ string const Trans::process(char c, TransManager & k) int Trans::Load(string const & language) { - string filename = LibFileSearch("kbd", language, "kmap"); + string const filename = LibFileSearch("kbd", language, "kmap"); if (filename.empty()) return -1; @@ -386,7 +371,7 @@ int Trans::Load(string const & language) LyXLex lex(kmapTags, K_LAST-1); lex.setFile(filename); - int res = Load(lex); + int const res = Load(lex); if (res == 0) { name_ = language; @@ -407,7 +392,7 @@ tex_accent getkeymod(string const & p) << "].name = `" << lyx_accent_table[i].name << "'" << endl; - if ( lyx_accent_table[i].name + if (lyx_accent_table[i].name && contains(p, lyx_accent_table[i].name)) { lyxerr[Debug::KBMAP] << "Found it!" << endl; return static_cast(i);