X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ftrans.C;h=afa2e9b7e73308e3fed69b900c52c895ba0e4034;hb=29f01faa17495e3d80c08f234c8f049c7d699ac1;hp=a4363299f11b711f668803e4b1b1bdca5440daa6;hpb=e952d33e0b702265cdac14de9871ecbfcf34863d;p=lyx.git diff --git a/src/trans.C b/src/trans.C index a4363299f1..afa2e9b7e7 100644 --- a/src/trans.C +++ b/src/trans.C @@ -4,7 +4,6 @@ #pragma implementation #endif -#include "LyXView.h" #include "trans.h" #include "support/filetools.h" #include "support/lstrings.h" @@ -13,56 +12,20 @@ #include "debug.h" #include "trans_mgr.h" +using std::map; using std::endl; // KmodInfo KmodInfo::KmodInfo() { -#if 0 - exception_list = 0; -#endif } -#if 0 -// Default Trans -bool DefaultTrans::init_ = false; - - -DefaultTrans::DefaultTrans() -{ - if (init_ == false) { - // Do initialization - init_ = true; - } -} - - -#if 0 -string const DefaultTrans::process(char c, TransManager & k) -{ - char dummy[2] = "?"; - dummy[0] = c; - - return k.normalkey(c, dummy); -} -#else -string const DefaultTrans::process(char c, TransManager & k) -{ - return k.normalkey(c); -} -#endif -#endif - // Trans class Trans::Trans() { -#if 0 - for (int i = 0; i < TEX_MAX_ACCENT + 1; ++i) - kmod_list_[i] = 0; -#endif } @@ -75,17 +38,6 @@ Trans::~Trans() void Trans::InsertException(KmodException & exclist, char c, string const & data, bool flag, tex_accent accent) { -#if 0 - keyexc p = new Keyexc; - p->next = exclist; - p->c = c; - - p->data = data; - p->combined = flag; - p->accent = accent; - - exclist = p; -#else Keyexc p; p.c = c; p.data = data; @@ -94,42 +46,19 @@ void Trans::InsertException(KmodException & exclist, char c, exclist.insert(exclist.begin(), p); // or just // exclist.push_back(p); -#endif } void Trans::FreeException(KmodException & exclist) { -#if 0 - Trans::keyexc p = exclist; - while (p) { - p = exclist->next; - delete exclist; - exclist = p; - } -#else exclist.clear(); -#endif } void Trans::FreeKeymap() { -#if 0 - for (int i = 0; i < 256; ++i) - if (!keymap_[i].empty()) { - keymap_[i].erase(); - } - for (int i = 0; i < TEX_MAX_ACCENT + 1; ++i) - if (kmod_list_[i]) { - FreeException(kmod_list_[i]->exception_list); - delete kmod_list_[i]; - kmod_list_[i] = 0; - } -#else kmod_list_.clear(); keymap_.clear(); -#endif } @@ -165,59 +94,19 @@ struct keyword_item kmapTags[K_LAST - 1] = { tex_accent getkeymod(string const &); -#if 0 -void Trans::AddDeadkey(tex_accent accent, string const & keys, - string const & allowed) -#else void Trans::AddDeadkey(tex_accent accent, string const & keys) -#endif { -#if 0 - if (kmod_list_[accent]) { - FreeException(kmod_list_[accent]->exception_list); - - delete kmod_list_[accent]; - } - - kmod_list_[accent] = new KmodInfo; - kmod_list_[accent]->data = keys; - kmod_list_[accent]->accent = accent; -#else KmodInfo tmp; tmp.data = keys; tmp.accent = accent; kmod_list_[accent] = tmp; -#endif -#if 0 - if (allowed == "native") { - kmod_list_[accent]->allowed= lyx_accent_table[accent].native; - } else { - kmod_list_[accent]->allowed = allowed; - } - for (string::size_type i = 0; i < keys.length(); ++i) { - string & temp = - keymap_[static_cast(keys[i])]; - 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); - } -#else for (string::size_type i = 0; i < keys.length(); ++i) { string tmp; tmp += char(0); tmp += char(accent); keymap_[keys[i]] = tmp; } -#endif -#if 0 - kmod_list_[accent]->exception_list = 0; -#endif } @@ -225,7 +114,7 @@ int Trans::Load(LyXLex & lex) { bool error = false; - while (lex.IsOK() && !error) { + while (lex.isOK() && !error) { switch (lex.lex()) { case KMOD: { @@ -237,8 +126,8 @@ int Trans::Load(LyXLex & lex) << "'" << endl; } else return -1; - - string const keys = lex.GetString(); + + string const keys = lex.getString(); if (lex.next(true)) { if (lyxerr.debugging(Debug::KBMAP)) @@ -247,13 +136,13 @@ int Trans::Load(LyXLex & lex) } else return -1; - tex_accent accent = getkeymod(lex.GetString()); + tex_accent accent = getkeymod(lex.getString()); if (accent == TEX_NOACCENT) return -1; #if 1 -#warning This code should be removed... +//#warning This code should be removed... // But we need to fix up all the kmap files first // so that this field is not present anymore. if (lex.next(true)) { @@ -263,13 +152,13 @@ int Trans::Load(LyXLex & lex) } else return -1; - string const allowed = lex.GetString(); + /* string const allowed = lex.getString(); */ AddDeadkey(accent, keys /*, allowed*/); #else AddDeadkey(accent, keys); #endif break; - } + } case KCOMB: { string str; @@ -279,7 +168,7 @@ int Trans::Load(LyXLex & lex) lyxerr[Debug::KBMAP] << str << endl; } else return -1; - + tex_accent accent_1 = getkeymod(str); if (accent_1 == TEX_NOACCENT) return -1; @@ -292,46 +181,19 @@ int Trans::Load(LyXLex & lex) tex_accent accent_2= getkeymod(str); if (accent_2 == TEX_NOACCENT) return -1; -#if 0 - if (kmod_list_[accent_1] == 0 - || kmod_list_[accent_2] == 0) - return -1; -#else - std::map::iterator it1 = + map::iterator it1 = kmod_list_.find(accent_1); - std::map::iterator it2 = + map::iterator it2 = kmod_list_.find(accent_2); if (it1 == kmod_list_.end() || it2 == kmod_list_.end()) { return -1; } -#endif // Find what key accent_2 is on - should // check about accent_1 also -#if 0 - int key = 0; - for (; key < 256; ++key) { - if (!keymap_[key].empty() - && keymap_[key][0] == 0 - && keymap_[key][1] == accent_2) - break; - } - string allowed; - - if (lex.next()) { - allowed = lex.GetString(); - lyxerr[Debug::KBMAP] << "allowed: " - << allowed << endl; - } else - return -1; - - InsertException(kmod_list_[accent_1].exception_list, - static_cast(key), allowed, - true, accent_2); -#else - std::map::iterator it = keymap_.begin(); - std::map::iterator end = keymap_.end(); + map::iterator it = keymap_.begin(); + map::iterator end = keymap_.end(); for (; it != end; ++it) { if (!it->second.empty() && it->second[0] == 0 @@ -340,17 +202,16 @@ int Trans::Load(LyXLex & lex) } string allowed; if (lex.next()) { - allowed = lex.GetString(); + allowed = lex.getString(); lyxerr[Debug::KBMAP] << "allowed: " << allowed << endl; } else { return -1; } - + InsertException(kmod_list_[accent_1].exception_list, static_cast(it->first), allowed, true, accent_2); -#endif } break; case KMAP: { @@ -388,7 +249,7 @@ int Trans::Load(LyXLex & lex) if (lyxerr.debugging(Debug::KBMAP)) lyxerr << "\t`" << lex.text() << "'" << endl; - accent = getkeymod(lex.GetString()); + accent = getkeymod(lex.getString()); } else return -1; @@ -427,41 +288,15 @@ int Trans::Load(LyXLex & lex) bool Trans::isAccentDefined(tex_accent accent, KmodInfo & i) const { -#if 0 - if (kmod_list_[accent] != 0) { - i = *kmod_list_[accent]; - return true; - } - return false; -#else - std::map::const_iterator cit = kmod_list_.find(accent); + map::const_iterator cit = kmod_list_.find(accent); if (cit != kmod_list_.end()) { i = cit->second; return true; } return false; -#endif } -#if 0 -string const Trans::process(char c, TransManager & k) -{ - string dt("?"); - string const t = Match(static_cast(c)); - - if (t.empty() && c != 0) { - dt[0] = c; - return k.normalkey(c, dt); - } else if (!t.empty() && t[0] != char(0)) { - dt = t; - return k.normalkey(c, dt); - } else { - return k.deadkey(c, - *kmod_list_[static_cast(t[1])]); - } -} -#else string const Trans::process(char c, TransManager & k) { string const t = Match(static_cast(c)); @@ -472,16 +307,10 @@ string const Trans::process(char c, TransManager & k) //return k.normalkey(c); return t; } else { -#if 0 - return k.deadkey(c, - *kmod_list_[static_cast(t[1])]); -#else return k.deadkey(c, kmod_list_[static_cast(t[1])]); -#endif } } -#endif int Trans::Load(string const & language) @@ -491,9 +320,9 @@ int Trans::Load(string const & language) return -1; FreeKeymap(); - LyXLex lex(kmapTags, K_LAST-1); + LyXLex lex(kmapTags, K_LAST - 1); lex.setFile(filename); - + int const res = Load(lex); if (res == 0) { @@ -514,7 +343,7 @@ tex_accent getkeymod(string const & p) << ", lyx_accent_table[" << i << "].name = `" << lyx_accent_table[i].name << "'" << endl; - + if (lyx_accent_table[i].name && contains(p, lyx_accent_table[i].name)) { lyxerr[Debug::KBMAP] << "Found it!" << endl;