X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FKeyMap.cpp;h=a5e83b356bed7e497f19011a28ccef8e6ddd4cc6;hb=cca78e3c8ae27431323746abd64f9d7db017099d;hp=f8c8d683b7d7618c94b7c2140b4a8b198dedcf88;hpb=11a0458d3f66bce83b90e23f1c85175a8ffcae45;p=lyx.git diff --git a/src/KeyMap.cpp b/src/KeyMap.cpp index f8c8d683b7..a5e83b356b 100644 --- a/src/KeyMap.cpp +++ b/src/KeyMap.cpp @@ -117,34 +117,28 @@ void KeyMap::clear() } -namespace { - -enum BindTags { - BN_BIND, - BN_BINDFILE, - BN_UNBIND, -}; - -LexerKeyword bindTags[] = { - { "\\bind", BN_BIND }, - { "\\bind_file", BN_BINDFILE }, - { "\\unbind", BN_UNBIND }, -}; - -} - - bool KeyMap::read(string const & bind_file, KeyMap * unbind_map) { + enum { + BN_BIND, + BN_BINDFILE, + BN_UNBIND, + }; + + LexerKeyword bindTags[] = { + { "\\bind", BN_BIND }, + { "\\bind_file", BN_BINDFILE }, + { "\\unbind", BN_UNBIND }, + }; + Lexer lexrc(bindTags); if (lyxerr.debugging(Debug::PARSER)) lexrc.printTable(lyxerr); - FileName const tmp(i18nLibFileSearch("bind", bind_file, "bind")); + FileName const tmp = i18nLibFileSearch("bind", bind_file, "bind"); lexrc.setFile(tmp); if (!lexrc.isOK()) { - lyxerr << "KeyMap::read: cannot open bind file:" - << tmp << endl; + LYXERR0("KeyMap::read: cannot open bind file:" << tmp); return false; } @@ -153,34 +147,32 @@ bool KeyMap::read(string const & bind_file, KeyMap * unbind_map) bool error = false; while (lexrc.isOK()) { switch (lexrc.lex()) { + case Lexer::LEX_UNDEF: lexrc.printError("Unknown tag `$$Token'"); error = true; continue; + case Lexer::LEX_FEOF: continue; - case BN_BIND: - { - string seq, cmd; - if (lexrc.next()) { - seq = lexrc.getString(); - } else { + case BN_BIND: { + if (!lexrc.next()) { lexrc.printError("BN_BIND: Missing key sequence"); error = true; break; } + string seq = lexrc.getString(); - if (lexrc.next(true)) { - cmd = lexrc.getString(); - } else { + if (!lexrc.next(true)) { lexrc.printError("BN_BIND: missing command"); error = true; break; } + string cmd = lexrc.getString(); FuncRequest func = lyxaction.lookupFunc(cmd); - if (func. action == LFUN_UNKNOWN_ACTION) { + if (func.action == LFUN_UNKNOWN_ACTION) { lexrc.printError("BN_BIND: Unknown LyX function `$$Token'"); error = true; break; @@ -189,28 +181,24 @@ bool KeyMap::read(string const & bind_file, KeyMap * unbind_map) bind(seq, func); break; } - case BN_UNBIND: - { - string seq, cmd; - if (lexrc.next()) { - seq = lexrc.getString(); - } else { + case BN_UNBIND: { + if (!lexrc.next()) { lexrc.printError("BN_UNBIND: Missing key sequence"); error = true; break; } + string seq = lexrc.getString(); - if (lexrc.next(true)) { - cmd = lexrc.getString(); - } else { + if (!lexrc.next(true)) { lexrc.printError("BN_UNBIND: missing command"); error = true; break; } + string cmd = lexrc.getString(); FuncRequest func = lyxaction.lookupFunc(cmd); - if (func. action == LFUN_UNKNOWN_ACTION) { + if (func.action == LFUN_UNKNOWN_ACTION) { lexrc.printError("BN_UNBIND: Unknown LyX" " function `$$Token'"); error = true; @@ -223,23 +211,21 @@ bool KeyMap::read(string const & bind_file, KeyMap * unbind_map) unbind(seq, func); break; } + case BN_BINDFILE: - if (lexrc.next()) { - string const tmp(lexrc.getString()); - error |= !read(tmp, unbind_map); - } else { + if (!lexrc.next()) { lexrc.printError("BN_BINDFILE: Missing file name"); error = true; break; - } + string const tmp = lexrc.getString(); + error |= !read(tmp, unbind_map); break; } } if (error) - lyxerr << "KeyMap::read: error while reading bind file:" - << tmp << endl; + LYXERR0("KeyMap::read: error while reading bind file:" << tmp); return !error; } @@ -409,10 +395,8 @@ void KeyMap::unbind(KeySequence * seq, FuncRequest const & func, unsigned int r) } } } - if (remove != end) { + if (remove != end) table.erase(remove); - return; - } }