#include <config.h>
+#include "math_extern.h"
#include "math_arrayinset.h"
#include "math_charinset.h"
#include "math_deliminset.h"
+#include "math_data.h"
#include "math_diffinset.h"
#include "math_exfuncinset.h"
#include "math_exintinset.h"
#include "math_stringinset.h"
#include "math_symbolinset.h"
#include "math_parser.h"
-#include "Lsstream.h"
+#include "support/std_sstream.h"
#include "debug.h"
#include "support/filetools.h"
#include "support/lstrings.h"
+#include <algorithm>
-using namespace lyx::support;
+using lyx::support::cmd_ret;
+using lyx::support::getVectorFromString;
+using lyx::support::LibFileSearch;
+using lyx::support::RunCommand;
+using lyx::support::subst;
-using std::ostream;
-using std::istringstream;
-using std::find_if;
+using std::string;
using std::endl;
+using std::find_if;
+using std::auto_ptr;
+using std::istringstream;
+using std::ostream;
+using std::ostringstream;
ostream & operator<<(ostream & os, MathArray const & ar)
// create extra script inset and move superscript over
MathScriptInset * p = ar[i].nucleus()->asScriptInset();
- MathScriptInset * q = new MathScriptInset(true);
+ auto_ptr<MathScriptInset> q(new MathScriptInset(true));
std::swap(q->up(), p->up());
p->removeScript(true);
// insert new inset behind
++i;
- ar.insert(i, MathAtom(q));
+ ar.insert(i, MathAtom(q.release()));
}
//lyxerr << "\nScripts to: " << ar << endl;
}
extractScript(exp, jt, ar.end());
// create a proper inset as replacement
- MathExFuncInset * p = new MathExFuncInset(name);
+ auto_ptr<MathExFuncInset> p(new MathExFuncInset(name));
// jt points to the "argument". Get hold of this.
MathArray::iterator st = extractArgument(p->cell(0), jt, ar.end());
// replace the function name by a real function inset
- *it = MathAtom(p);
+ *it = MathAtom(p.release());
// remove the source of the argument from the array
ar.erase(it + 1, st);
continue;
// core ist part from behind the scripts to the 'd'
- MathExIntInset * p = new MathExIntInset("int");
+ auto_ptr<MathExIntInset> p(new MathExIntInset("int"));
// handle scripts if available
if (!testIntSymbol(*it)) {
// remove used parts
ar.erase(it + 1, tt);
- *it = MathAtom(p);
+ *it = MathAtom(p.release());
}
//lyxerr << "\nIntegrals to: " << ar << endl;
}
continue;
// create a proper inset as replacement
- MathExIntInset * p = new MathExIntInset("sum");
+ auto_ptr<MathExIntInset> p(new MathExIntInset("sum"));
// collect lower bound and summation index
MathScriptInset const * sub = ar[i]->asScriptInset();
// cleanup
ar.erase(it + 1, tt);
- *it = MathAtom(p);
+ *it = MathAtom(p.release());
}
//lyxerr << "\nSums to: " << ar << endl;
}
}
// create a proper diff inset
- MathDiffInset * diff = new MathDiffInset;
+ auto_ptr<MathDiffInset> diff(new MathDiffInset);
// collect function, let jt point behind last used item
MathArray::iterator jt = it + 1;
// cleanup
ar.erase(it + 1, jt);
- *it = MathAtom(diff);
+ *it = MathAtom(diff.release());
}
//lyxerr << "\nDiffs to: " << ar << endl;
}
ostringstream os;
MaximaStream ms(os);
ms << ar;
- string expr = STRCONV(os.str());
+ string expr = os.str();
string const header = "SIMPSUM:true;";
string out;
ostringstream os;
MapleStream ms(os);
ms << ar;
- string expr = STRCONV(os.str());
+ string expr = os.str();
lyxerr << "ar: '" << ar << "'\n"
<< "ms: '" << os.str() << "'" << endl;
ostringstream os;
OctaveStream vs(os);
vs << ar;
- string expr = STRCONV(os.str());
+ string expr = os.str();
string out;
lyxerr << "pipe: ar: '" << ar << "'\n"
os << '[' << extra << ' ';
ns << ar;
os << ']';
- string data = STRCONV(os.str());
+ string data = os.str();
// search external script
string file = LibFileSearch("mathed", "extern_" + lang);