#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 <ostream>
+#include <string>
-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 {
return false;
}
- //LYXERR(Debug::KBMAP, "Reading def file:" << tmp);
-
bool error = false;
while (lexrc.isOK()) {
switch (lexrc.lex()) {
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,
return CmdDefInvalid;
}
- boost::shared_ptr<CmdDefInfo> info;
- info.reset(new CmdDefInfo(func));
- cmdDefMap[name2] = info;
+ cmdDefMap[name2] = func;
return CmdDefOk;
}