X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ftrans.C;h=3aeaf25ca757f03ae71262a9b0bff14db0572498;hb=35204f8f33d7400a5fefeffea533fb4cb4097211;hp=d9a9529279460b785e5715e305a47a976d2c98d2;hpb=c80187fbfcefa7972bd9602a2205521aca236349;p=lyx.git diff --git a/src/trans.C b/src/trans.C index d9a9529279..3aeaf25ca7 100644 --- a/src/trans.C +++ b/src/trans.C @@ -1,19 +1,32 @@ -#include +/** + * \file trans.C + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author Lars Gullik Bjønnes + * \author Matthias Ettrich + * + * Full author contact details are available in file CREDITS. + */ -#ifdef __GNUG__ -#pragma implementation -#endif +#include -#include "LyXView.h" #include "trans.h" #include "support/filetools.h" #include "support/lstrings.h" -#include "tex-strings.h" #include "lyxlex.h" #include "debug.h" #include "trans_mgr.h" + +namespace lyx { + +using support::contains; +using support::libFileSearch; + using std::endl; +using std::string; +using std::map; // KmodInfo @@ -31,11 +44,11 @@ Trans::Trans() Trans::~Trans() { - FreeKeymap(); + freeKeymap(); } -void Trans::InsertException(KmodException & exclist, char c, +void Trans::insertException(KmodException & exclist, char c, string const & data, bool flag, tex_accent accent) { Keyexc p; @@ -49,26 +62,26 @@ void Trans::InsertException(KmodException & exclist, char c, } -void Trans::FreeException(KmodException & exclist) +void Trans::freeException(KmodException & exclist) { exclist.clear(); } -void Trans::FreeKeymap() +void Trans::freeKeymap() { kmod_list_.clear(); keymap_.clear(); } -bool Trans::IsDefined() const +bool Trans::isDefined() const { return !name_.empty(); } -string const & Trans::GetName() const +string const & Trans::getName() const { return name_; } @@ -94,7 +107,7 @@ struct keyword_item kmapTags[K_LAST - 1] = { tex_accent getkeymod(string const &); -void Trans::AddDeadkey(tex_accent accent, string const & keys) +void Trans::addDeadkey(tex_accent accent, string const & keys) { KmodInfo tmp; tmp.data = keys; @@ -110,7 +123,7 @@ void Trans::AddDeadkey(tex_accent accent, string const & keys) } -int Trans::Load(LyXLex & lex) +int Trans::load(LyXLex & lex) { bool error = false; @@ -119,20 +132,20 @@ int Trans::Load(LyXLex & lex) case KMOD: { if (lyxerr.debugging(Debug::KBMAP)) - lyxerr << "KMOD:\t" << lex.text() << endl; + lyxerr << "KMOD:\t" << lex.getString() << endl; if (lex.next(true)) { if (lyxerr.debugging(Debug::KBMAP)) - lyxerr << "key\t`" << lex.text() - << "'" << endl; + lyxerr << "key\t`" << lex.getString() + << '\'' << endl; } else return -1; - + string const keys = lex.getString(); if (lex.next(true)) { if (lyxerr.debugging(Debug::KBMAP)) - lyxerr << "accent\t`" << lex.text() - << "'" << endl; + lyxerr << "accent\t`" << lex.getString() + << '\'' << endl; } else return -1; @@ -147,33 +160,33 @@ int Trans::Load(LyXLex & lex) // so that this field is not present anymore. if (lex.next(true)) { if (lyxerr.debugging(Debug::KBMAP)) - lyxerr << "allowed\t`" << lex.text() - << "'" << endl; + lyxerr << "allowed\t`" << lex.getString() + << '\'' << endl; } else return -1; - string const allowed = lex.getString(); - AddDeadkey(accent, keys /*, allowed*/); + /* string const allowed = lex.getString(); */ + addDeadkey(accent, keys /*, allowed*/); #else - AddDeadkey(accent, keys); + addDeadkey(accent, keys); #endif break; - } + } case KCOMB: { string str; lyxerr[Debug::KBMAP] << "KCOMB:" << endl; if (lex.next(true)) { - str= lex.text(); + str = lex.getString(); lyxerr[Debug::KBMAP] << str << endl; } else return -1; - + tex_accent accent_1 = getkeymod(str); if (accent_1 == TEX_NOACCENT) return -1; if (lex.next(true)) { - str = lex.text(); + str = lex.getString(); lyxerr[Debug::KBMAP] << str << endl; } else return -1; @@ -181,9 +194,9 @@ int Trans::Load(LyXLex & lex) tex_accent accent_2= getkeymod(str); if (accent_2 == TEX_NOACCENT) return -1; - 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()) { @@ -192,8 +205,8 @@ int Trans::Load(LyXLex & lex) // Find what key accent_2 is on - should // check about accent_1 also - 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 @@ -208,8 +221,8 @@ int Trans::Load(LyXLex & lex) } else { return -1; } - - InsertException(kmod_list_[accent_1].exception_list, + + insertException(kmod_list_[accent_1].exception_list, static_cast(it->first), allowed, true, accent_2); } @@ -218,20 +231,20 @@ int Trans::Load(LyXLex & lex) unsigned char key_from; if (lyxerr.debugging(Debug::KBMAP)) - lyxerr << "KMAP:\t" << lex.text() << endl; + lyxerr << "KMAP:\t" << lex.getString() << endl; if (lex.next(true)) { - key_from = lex.text()[0]; + key_from = lex.getString()[0]; if (lyxerr.debugging(Debug::KBMAP)) - lyxerr << "\t`" << lex.text() << "'" + lyxerr << "\t`" << lex.getString() << '\'' << endl; } else return -1; if (lex.next(true)) { - string string_to = lex.text(); + string const string_to = lex.getString(); keymap_[key_from] = string_to; if (lyxerr.debugging(Debug::KBMAP)) - lyxerr << "\t`" << string_to << "'" + lyxerr << "\t`" << string_to << '\'' << endl; } else return -1; @@ -244,10 +257,10 @@ int Trans::Load(LyXLex & lex) string str; if (lyxerr.debugging(Debug::KBMAP)) - lyxerr << "KXMOD:\t" << lex.text() << endl; + lyxerr << "KXMOD:\t" << lex.getString() << endl; if (lex.next(true)) { if (lyxerr.debugging(Debug::KBMAP)) - lyxerr << "\t`" << lex.text() << "'" + lyxerr << "\t`" << lex.getString() << '\'' << endl; accent = getkeymod(lex.getString()); } else @@ -255,21 +268,21 @@ int Trans::Load(LyXLex & lex) if (lex.next(true)) { if (lyxerr.debugging(Debug::KBMAP)) - lyxerr << "\t`" << lex.text() << "'" + lyxerr << "\t`" << lex.getString() << '\'' << endl; - key = lex.text()[0]; + key = lex.getString()[0]; } else return -1; if (lex.next(true)) { if (lyxerr.debugging(Debug::KBMAP)) - lyxerr << "\t`" << lex.text() << "'" + lyxerr << "\t`" << lex.getString() << '\'' << endl; - str = lex.text(); + str = lex.getString(); } else return -1; - InsertException(kmod_list_[accent].exception_list, + insertException(kmod_list_[accent].exception_list, key, str); break; } @@ -288,7 +301,7 @@ int Trans::Load(LyXLex & lex) bool Trans::isAccentDefined(tex_accent accent, KmodInfo & i) const { - 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; @@ -299,7 +312,7 @@ bool Trans::isAccentDefined(tex_accent accent, KmodInfo & i) const string const Trans::process(char c, TransManager & k) { - string const t = Match(static_cast(c)); + string const t = match(static_cast(c)); if (t.empty() && c != 0) { return k.normalkey(c); @@ -313,17 +326,17 @@ string const Trans::process(char c, TransManager & k) } -int Trans::Load(string const & language) +int Trans::load(string const & language) { - string const filename = LibFileSearch("kbd", language, "kmap"); + string const filename = libFileSearch("kbd", language, "kmap"); if (filename.empty()) return -1; - FreeKeymap(); - LyXLex lex(kmapTags, K_LAST-1); + freeKeymap(); + LyXLex lex(kmapTags, K_LAST - 1); lex.setFile(filename); - - int const res = Load(lex); + + int const res = load(lex); if (res == 0) { name_ = language; @@ -342,8 +355,8 @@ tex_accent getkeymod(string const & p) lyxerr << "p = " << p << ", lyx_accent_table[" << i << "].name = `" << lyx_accent_table[i].name - << "'" << endl; - + << '\'' << endl; + if (lyx_accent_table[i].name && contains(p, lyx_accent_table[i].name)) { lyxerr[Debug::KBMAP] << "Found it!" << endl; @@ -352,3 +365,6 @@ tex_accent getkeymod(string const & p) } return TEX_NOACCENT; } + + +} // namespace lyx