]> git.lyx.org Git - lyx.git/blobdiff - src/trans.C
remove redundant lyxerr.debugging checks; macro LYXERR already checks whether the...
[lyx.git] / src / trans.C
index 3aeaf25ca757f03ae71262a9b0bff14db0572498..9b0433afcb6be4f0fc6a098796383ff5651994cf 100644 (file)
@@ -48,8 +48,8 @@ Trans::~Trans()
 }
 
 
-void Trans::insertException(KmodException & exclist, char c,
-                           string const & data, bool flag, tex_accent accent)
+void Trans::insertException(KmodException & exclist, char_type c,
+                            docstring const & data, bool flag, tex_accent accent)
 {
        Keyexc p;
        p.c = c;
@@ -107,17 +107,20 @@ 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, docstring const & keys)
 {
        KmodInfo tmp;
        tmp.data = keys;
        tmp.accent = accent;
        kmod_list_[accent] = tmp;
 
-       for (string::size_type i = 0; i < keys.length(); ++i) {
-               string tmp;
-               tmp += char(0);
-               tmp += char(accent);
+       for (docstring::size_type i = 0; i < keys.length(); ++i) {
+               // FIXME This is a hack.
+               // tmp is no valid UCS4 string, but misused to store the
+               // accent.
+               docstring tmp;
+               tmp += char_type(0);
+               tmp += char_type(accent);
                keymap_[keys[i]] = tmp;
        }
 }
@@ -131,20 +134,18 @@ int Trans::load(LyXLex & lex)
                switch (lex.lex()) {
                case KMOD:
                {
-                       if (lyxerr.debugging(Debug::KBMAP))
-                               lyxerr << "KMOD:\t" << lex.getString() << endl;
+                       LYXERR(Debug::KBMAP) << "KMOD:\t" << lex.getString() << endl;
+
                        if (lex.next(true)) {
-                               if (lyxerr.debugging(Debug::KBMAP))
-                                       lyxerr << "key\t`" << lex.getString()
-                                              << '\'' << endl;
+                               LYXERR(Debug::KBMAP) << "key\t`" << lex.getString()
+                                      << '\'' << endl;
                        } else
                                return -1;
 
-                       string const keys = lex.getString();
+                       docstring const keys = lex.getDocString();
 
                        if (lex.next(true)) {
-                               if (lyxerr.debugging(Debug::KBMAP))
-                                       lyxerr << "accent\t`" << lex.getString()
+                               LYXERR(Debug::KBMAP) << "accent\t`" << lex.getString()
                                               << '\'' << endl;
                        } else
                                return -1;
@@ -159,8 +160,7 @@ int Trans::load(LyXLex & lex)
                        // But we need to fix up all the kmap files first
                        // so that this field is not present anymore.
                        if (lex.next(true)) {
-                               if (lyxerr.debugging(Debug::KBMAP))
-                                       lyxerr << "allowed\t`" << lex.getString()
+                               LYXERR(Debug::KBMAP) << "allowed\t`" << lex.getString()
                                               << '\'' << endl;
                        } else
                                return -1;
@@ -175,10 +175,10 @@ int Trans::load(LyXLex & lex)
                case KCOMB: {
                        string str;
 
-                       lyxerr[Debug::KBMAP] << "KCOMB:" << endl;
+                       LYXERR(Debug::KBMAP) << "KCOMB:" << endl;
                        if (lex.next(true)) {
                                str = lex.getString();
-                               lyxerr[Debug::KBMAP] << str << endl;
+                               LYXERR(Debug::KBMAP) << str << endl;
                        } else
                                return -1;
 
@@ -187,16 +187,16 @@ int Trans::load(LyXLex & lex)
 
                        if (lex.next(true)) {
                                str = lex.getString();
-                               lyxerr[Debug::KBMAP] << str << endl;
+                               LYXERR(Debug::KBMAP) << str << endl;
                        } else
                                return -1;
 
                        tex_accent accent_2= getkeymod(str);
                        if (accent_2 == TEX_NOACCENT) return -1;
 
-                       map<int, KmodInfo>::iterator it1 =
+                       map<tex_accent, KmodInfo>::iterator it1 =
                                kmod_list_.find(accent_1);
-                       map<int, KmodInfo>::iterator it2 =
+                       map<tex_accent, KmodInfo>::iterator it2 =
                                kmod_list_.find(accent_2);
                        if (it1 == kmod_list_.end()
                            || it2 == kmod_list_.end()) {
@@ -205,47 +205,45 @@ int Trans::load(LyXLex & lex)
 
                        // Find what key accent_2 is on - should
                        // check about accent_1 also
-                       map<int, string>::iterator it = keymap_.begin();
-                       map<int, string>::iterator end = keymap_.end();
+                       map<char_type, docstring>::iterator it = keymap_.begin();
+                       map<char_type, docstring>::iterator end = keymap_.end();
                        for (; it != end; ++it) {
                                if (!it->second.empty()
                                    && it->second[0] == 0
                                    && it->second[1] == accent_2)
                                        break;
                        }
-                       string allowed;
+                       docstring allowed;
                        if (lex.next()) {
-                               allowed = lex.getString();
-                               lyxerr[Debug::KBMAP] << "allowed: "
-                                                    << allowed << endl;
+                               allowed = lex.getDocString();
+                               LYXERR(Debug::KBMAP) << "allowed: "
+                                                    << to_utf8(allowed) << endl;
                        } else {
                                return -1;
                        }
 
                        insertException(kmod_list_[accent_1].exception_list,
-                                       static_cast<char>(it->first), allowed,
+                                       it->first, allowed,
                                        true, accent_2);
                }
                break;
                case KMAP: {
                        unsigned char key_from;
 
-                       if (lyxerr.debugging(Debug::KBMAP))
-                               lyxerr << "KMAP:\t" << lex.getString() << endl;
+                       LYXERR(Debug::KBMAP) << "KMAP:\t" << lex.getString() << endl;
+
                        if (lex.next(true)) {
                                key_from = lex.getString()[0];
-                               if (lyxerr.debugging(Debug::KBMAP))
-                                       lyxerr << "\t`" << lex.getString() << '\''
-                                              << endl;
+                               LYXERR(Debug::KBMAP) << "\t`" << lex.getString() << '\''
+                                       << endl;
                        } else
                                return -1;
 
                        if (lex.next(true)) {
-                               string const string_to = lex.getString();
+                               docstring const string_to = lex.getDocString();
                                keymap_[key_from] = string_to;
-                               if (lyxerr.debugging(Debug::KBMAP))
-                                       lyxerr << "\t`" << string_to << '\''
-                                              << endl;
+                               LYXERR(Debug::KBMAP) << "\t`" << to_utf8(string_to) << '\''
+                                       << endl;
                        } else
                                return -1;
 
@@ -253,32 +251,29 @@ int Trans::load(LyXLex & lex)
                }
                case KXMOD: {
                        tex_accent accent;
-                       char key;
-                       string str;
+                       char_type key;
+                       docstring str;
+
+                       LYXERR(Debug::KBMAP) << "KXMOD:\t" << lex.getString() << endl;
 
-                       if (lyxerr.debugging(Debug::KBMAP))
-                               lyxerr << "KXMOD:\t" << lex.getString() << endl;
                        if (lex.next(true)) {
-                               if (lyxerr.debugging(Debug::KBMAP))
-                                       lyxerr << "\t`" << lex.getString() << '\''
-                                              << endl;
+                               LYXERR(Debug::KBMAP) << "\t`" << lex.getString() << '\''
+                                       << endl;
                                accent = getkeymod(lex.getString());
                        } else
                                return -1;
 
                        if (lex.next(true)) {
-                               if (lyxerr.debugging(Debug::KBMAP))
-                                       lyxerr << "\t`" << lex.getString() << '\''
-                                              << endl;
-                               key = lex.getString()[0];
+                               LYXERR(Debug::KBMAP) << "\t`" << lex.getString() << '\''
+                                       << endl;
+                               key = lex.getDocString()[0];
                        } else
                                return -1;
 
                        if (lex.next(true)) {
-                               if (lyxerr.debugging(Debug::KBMAP))
-                                       lyxerr << "\t`" << lex.getString() << '\''
-                                              << endl;
-                               str = lex.getString();
+                               LYXERR(Debug::KBMAP) << "\t`" << lex.getString() << '\''
+                                       << endl;
+                               str = lex.getDocString();
                        } else
                                return -1;
 
@@ -287,7 +282,7 @@ int Trans::load(LyXLex & lex)
                        break;
                }
                case LyXLex::LEX_FEOF:
-                       lyxerr[Debug::PARSER] << "End of parsing" << endl;
+                       LYXERR(Debug::PARSER) << "End of parsing" << endl;
                        break;
                default:
                        lex.printError("ParseKeymapFile: "
@@ -301,7 +296,7 @@ int Trans::load(LyXLex & lex)
 
 bool Trans::isAccentDefined(tex_accent accent, KmodInfo & i) const
 {
-       map<int, KmodInfo>::const_iterator cit = kmod_list_.find(accent);
+       map<tex_accent, KmodInfo>::const_iterator cit = kmod_list_.find(accent);
        if (cit != kmod_list_.end()) {
                i = cit->second;
                return true;
@@ -310,13 +305,13 @@ bool Trans::isAccentDefined(tex_accent accent, KmodInfo & i) const
 }
 
 
-string const Trans::process(char c, TransManager & k)
+docstring const Trans::process(char_type c, TransManager & k)
 {
-       string const t = match(static_cast<unsigned char>(c));
+       docstring const t = match(c);
 
        if (t.empty() && c != 0) {
                return k.normalkey(c);
-       } else if (!t.empty() && t[0] != char(0)) {
+       } else if (!t.empty() && t[0] != 0) {
                //return k.normalkey(c);
                return t;
        } else {
@@ -328,7 +323,7 @@ string const Trans::process(char c, TransManager & k)
 
 int Trans::load(string const & language)
 {
-       string const filename = libFileSearch("kbd", language, "kmap");
+       support::FileName const filename = libFileSearch("kbd", language, "kmap");
        if (filename.empty())
                return -1;
 
@@ -351,15 +346,14 @@ tex_accent getkeymod(string const & p)
        /* return modifier - decoded from p and update p */
 {
        for (int i = 1; i <= TEX_MAX_ACCENT; ++i) {
-               if (lyxerr.debugging(Debug::KBMAP))
-                       lyxerr << "p = " << p
-                              << ", lyx_accent_table[" << i
-                              << "].name = `" << lyx_accent_table[i].name
-                              << '\'' << endl;
+               LYXERR(Debug::KBMAP) << "p = " << 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;
+                       LYXERR(Debug::KBMAP) << "Found it!" << endl;
                        return static_cast<tex_accent>(i);
                }
        }