X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FTrans.cpp;h=b73b88490e8879d4b031e5988ea6b004aada9b35;hb=9b18a9b609c0af78b4bb08667fd8e02ebd897d5e;hp=d646156dcf5b9afa8d2609bc9dc47bc84386d795;hpb=8f3acbb4842ff31d1229eec8fba4890be743f2d9;p=lyx.git diff --git a/src/Trans.cpp b/src/Trans.cpp index d646156dcf..b73b88490e 100644 --- a/src/Trans.cpp +++ b/src/Trans.cpp @@ -71,7 +71,9 @@ static TeXAccent lyx_accent_table[] = { {TEX_GRAVE, 0x0300, "grave", LFUN_ACCENT_GRAVE}, {TEX_MACRON, 0x0304, "macron", LFUN_ACCENT_MACRON}, {TEX_TILDE, 0x0303, "tilde", LFUN_ACCENT_TILDE}, - {TEX_UNDERBAR, 0x0320, "underbar", LFUN_ACCENT_UNDERBAR}, + {TEX_PERISPOMENI, 0x0342, "perispomeni", LFUN_ACCENT_PERISPOMENI}, + {TEX_UNDERBAR, 0x0320, "underbar", LFUN_ACCENT_UNDERBAR}, // COMBINING MINUS SIGN BELOW or 0x0331 COMBINING MACRON BELOW ? + {TEX_CEDILLA, 0x0327, "cedilla", LFUN_ACCENT_CEDILLA}, {TEX_UNDERDOT, 0x0323, "underdot", LFUN_ACCENT_UNDERDOT}, {TEX_CIRCUMFLEX, 0x0302, "circumflex", LFUN_ACCENT_CIRCUMFLEX}, @@ -96,7 +98,7 @@ TeXAccent get_accent(FuncCode action) ++i; } struct TeXAccent temp = { static_cast(0), 0, - 0, static_cast(0)}; + nullptr, static_cast(0)}; return temp; } @@ -170,7 +172,7 @@ enum { KCOMB = 1, KMOD, KMAP, - KXMOD, + KXMOD }; @@ -188,10 +190,10 @@ void Trans::addDeadkey(tex_accent accent, docstring const & keys) // 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; + docstring tmpd; + tmpd += char_type(0); + tmpd += char_type(accent); + keymap_[keys[i]] = tmpd; } } @@ -278,10 +280,14 @@ int Trans::load(Lexer & lex) && it->second[1] == accent_2) break; } + + // could not find accent2 on a key -- this should not happen. + if (it == end) + return -1; + docstring allowed; if (!lex.next()) return -1; - allowed = lex.getDocString(); LYXERR(Debug::KBMAP, "allowed: " << to_utf8(allowed)); @@ -297,7 +303,7 @@ int Trans::load(Lexer & lex) if (!lex.next(true)) return -1; - key_from = lex.getString()[0]; + key_from = static_cast(lex.getString()[0]); LYXERR(Debug::KBMAP, "\t`" << lex.getString() << '\''); if (!lex.next(true)) @@ -427,10 +433,9 @@ tex_accent getkeymod(string const & p) // TransFSMData -TransFSMData::TransFSMData() +TransFSMData::TransFSMData() : deadkey_(0), deadkey2_(0), init_state_(nullptr), + deadkey_state_(nullptr), combined_state_(nullptr), currentState(nullptr) { - deadkey_ = deadkey2_ = 0; - deadkey_info_.accent = deadkey2_info_.accent = TEX_NOACCENT; } @@ -580,7 +585,7 @@ Trans TransManager::default_; TransManager::TransManager() - : active_(0) + : active_(&default_) {}