X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FMacroTable.cpp;h=60fd5683491a79ae60e6854eeda2c98f30466984;hb=efaae780dbbe3685e26e040ed4255e5abf268106;hp=5c0604017bbc5ad46874a56a372778bb631443e7;hpb=ff4460603e3888948b46f0ab5bfa69a862d538ad;p=lyx.git diff --git a/src/mathed/MacroTable.cpp b/src/mathed/MacroTable.cpp index 5c0604017b..60fd568349 100644 --- a/src/mathed/MacroTable.cpp +++ b/src/mathed/MacroTable.cpp @@ -152,7 +152,7 @@ void MacroData::updateData() const } -void MacroData::write(odocstream & os, bool overwriteRedefinition) const +int MacroData::write(odocstream & os, bool overwriteRedefinition) const { updateData(); @@ -160,14 +160,14 @@ void MacroData::write(odocstream & os, bool overwriteRedefinition) const Inset * inset = pos_.nextInset(); if (inset == 0 || inset->lyxCode() != MATHMACRO_CODE) { lyxerr << "BUG: No macro template found by MacroData" << endl; - return; + return 0; } // output template MathMacroTemplate const & tmpl = static_cast(*inset); WriteStream wi(os, false, true, WriteStream::wsDefault); - tmpl.write(wi, overwriteRedefinition); + return tmpl.write(wi, overwriteRedefinition); } @@ -191,20 +191,28 @@ MacroData const * MacroTable::get(docstring const & name) const } -void MacroTable::insert(docstring const & name, MacroData const & data) +MacroTable::iterator +MacroTable::insert(docstring const & name, MacroData const & data) { //lyxerr << "MacroTable::insert: " << to_utf8(name) << endl; - operator[](name) = data; + iterator it = find(name); + if (it == end()) + it = map::insert( + make_pair(name, data)).first; + else + it->second = data; + return it; } -void MacroTable::insert(Buffer * buf, docstring const & def, string const & requires) +MacroTable::iterator +MacroTable::insert(Buffer * buf, docstring const & def, string const & requires) { //lyxerr << "MacroTable::insert, def: " << to_utf8(def) << endl; MathMacroTemplate mac(buf, def); MacroData data(buf, mac); data.requires() = requires; - insert(mac.name(), data); + return insert(mac.name(), data); }