X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FCmdDef.cpp;h=f04a8d907db684deecd4dcd448cc98400eedb87d;hb=b271e3e06d778dbe7f20973c718f06d8aac0cf6f;hp=1e4b98e61a192aba69749e9bcebbd5377943abfd;hpb=150cf11651ad92090a452bb9e6cb72d7eea886d5;p=lyx.git diff --git a/src/CmdDef.cpp b/src/CmdDef.cpp index 1e4b98e61a..f04a8d907d 100644 --- a/src/CmdDef.cpp +++ b/src/CmdDef.cpp @@ -13,24 +13,21 @@ #include "CmdDef.h" #include "LyXAction.h" -#include "debug.h" #include "Lexer.h" +#include "support/debug.h" +#include "support/FileName.h" #include "support/filetools.h" #include "support/lstrings.h" #include +#include -using std::endl; -using std::string; +using namespace std; +using namespace lyx::support; namespace lyx { -using support::FileName; -using support::i18nLibFileSearch; -using support::trim; - - namespace { enum CmdDefTags { @@ -62,8 +59,6 @@ bool CmdDef::read(string const & def_file) return false; } - //LYXERR(Debug::KBMAP, "Reading def file:" << tmp); - bool error = false; while (lexrc.isOK()) { switch (lexrc.lex()) { @@ -95,17 +90,20 @@ bool CmdDef::read(string const & def_file) newCmdDefResult e = newCmdDef(name, def); switch (e) { - case CmdDefNameEmpty: - lexrc.printError("BN_DEFINE: Command name is empty"); - error = true; - break; - case CmdDefExists: - lexrc.printError("BN_DEFINE: Command `" + name + "' already defined"); - error = true; - break; - case CmdDefInvalid: - lexrc.printError("BN_DEFINE: Command definition for `" + name + "' is not valid"); - error = true; + case CmdDefNameEmpty: + lexrc.printError("BN_DEFINE: Command name is empty"); + error = true; + break; + case CmdDefExists: + lexrc.printError("BN_DEFINE: Command `" + name + "' already defined"); + error = true; + break; + case CmdDefInvalid: + lexrc.printError("BN_DEFINE: Command definition for `" + name + "' is not valid"); + error = true; + break; + case CmdDefOk: + break; } break; @@ -133,47 +131,36 @@ bool CmdDef::read(string const & def_file) bool CmdDef::lock(string const & name, FuncRequest & func) { - if (cmdDefMap.empty()) - { + if (cmdDefMap.empty()) { func = FuncRequest::unknown; return false; } string const name2 = trim(name); - CmdDefMap::const_iterator pos = cmdDefMap.find(name2); - - if (pos == cmdDefMap.end()) - { - func = FuncRequest::unknown; + if (lockSet.find(name2) != lockSet.end()) { + func = FuncRequest::noaction; return false; } - if (pos->second->locked) - { - func = FuncRequest::noaction; + CmdDefMap::const_iterator pos = cmdDefMap.find(name2); + + if (pos == cmdDefMap.end()) { + func = FuncRequest::unknown; return false; } - pos->second->locked = true; - func = pos->second->func; + lockSet.insert(name2); + func = pos->second; return true; } void CmdDef::release(string const & name) { - if (cmdDefMap.empty()) - return; - string const name2 = trim(name); - CmdDefMap::const_iterator pos = cmdDefMap.find(name2); - - if (pos == cmdDefMap.end()) - return; - - pos->second->locked = false; + lockSet.erase(name2); } CmdDef::newCmdDefResult CmdDef::newCmdDef(string const & name, @@ -193,9 +180,7 @@ CmdDef::newCmdDefResult CmdDef::newCmdDef(string const & name, return CmdDefInvalid; } - boost::shared_ptr info; - info.reset(new CmdDefInfo(func)); - cmdDefMap[name2] = info; + cmdDefMap[name2] = func; return CmdDefOk; }