X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Fmath_extern.C;h=99e381d78aaf7cee47c9e96e39c52135d44a4582;hb=07cc9f67534474b167ca1ea727bda643fdd8d197;hp=6381d0436f05c84b060391692f802eabf1b327b7;hpb=f239801ae38551ada215494694dfe47bb4e610be;p=lyx.git diff --git a/src/mathed/math_extern.C b/src/mathed/math_extern.C index 6381d0436f..99e381d78a 100644 --- a/src/mathed/math_extern.C +++ b/src/mathed/math_extern.C @@ -18,6 +18,7 @@ #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" @@ -37,13 +38,21 @@ #include -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::string; +using std::endl; +using std::find_if; +using std::auto_ptr; using std::istringstream; +using std::ostream; using std::ostringstream; -using std::find_if; -using std::endl; +using std::swap; +using std::vector; ostream & operator<<(ostream & os, MathArray const & ar) @@ -139,7 +148,7 @@ string charSequence void extractStrings(MathArray & ar) { //lyxerr << "\nStrings from: " << ar << endl; - for (MathArray::size_type i = 0; i < ar.size(); ++i) { + for (size_t i = 0; i < ar.size(); ++i) { if (!ar[i]->asCharInset()) continue; string s = charSequence(ar.begin() + i, ar.end()); @@ -154,7 +163,7 @@ void extractMatrices(MathArray & ar) { //lyxerr << "\nMatrices from: " << ar << endl; // first pass for explicitly delimited stuff - for (MathArray::size_type i = 0; i < ar.size(); ++i) { + for (size_t i = 0; i < ar.size(); ++i) { if (!ar[i]->asDelimInset()) continue; MathArray const & arr = ar[i]->asDelimInset()->cell(0); @@ -166,7 +175,7 @@ void extractMatrices(MathArray & ar) } // second pass for AMS "pmatrix" etc - for (MathArray::size_type i = 0; i < ar.size(); ++i) + for (size_t i = 0; i < ar.size(); ++i) if (ar[i]->asAMSArrayInset()) ar[i] = MathAtom(new MathMatrixInset(*(ar[i]->asGridInset()))); //lyxerr << "\nMatrices to: " << ar << endl; @@ -242,7 +251,7 @@ void replaceNested( { // use indices rather than iterators for the loop because we are going // to modify the array. - for (MathArray::size_type i = 0; i < ar.size(); ++i) { + for (size_t i = 0; i < ar.size(); ++i) { // check whether this is the begin of the sequence if (!testOpen(ar[i])) continue; @@ -269,7 +278,7 @@ void replaceNested( void splitScripts(MathArray & ar) { //lyxerr << "\nScripts from: " << ar << endl; - for (MathArray::size_type i = 0; i < ar.size(); ++i) { + for (size_t i = 0; i < ar.size(); ++i) { // is this script inset? if (!ar[i]->asScriptInset()) continue; @@ -282,13 +291,13 @@ void splitScripts(MathArray & ar) // create extra script inset and move superscript over MathScriptInset * p = ar[i].nucleus()->asScriptInset(); - MathScriptInset * q = new MathScriptInset(true); - std::swap(q->up(), p->up()); + auto_ptr q(new MathScriptInset(true)); + 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; } @@ -301,7 +310,7 @@ void splitScripts(MathArray & ar) void extractExps(MathArray & ar) { //lyxerr << "\nExps from: " << ar << endl; - for (MathArray::size_type i = 0; i + 1 < ar.size(); ++i) { + for (size_t i = 0; i + 1 < ar.size(); ++i) { // is this 'e'? if (ar[i]->getChar() != 'e') continue; @@ -364,7 +373,7 @@ string digitSequence void extractNumbers(MathArray & ar) { //lyxerr << "\nNumbers from: " << ar << endl; - for (MathArray::size_type i = 0; i < ar.size(); ++i) { + for (size_t i = 0; i < ar.size(); ++i) { if (!ar[i]->asCharInset()) continue; if (!isDigitOrSimilar(ar[i]->asCharInset()->getChar())) @@ -426,7 +435,7 @@ void extractFunctions(MathArray & ar) return; //lyxerr << "\nFunctions from: " << ar << endl; - for (MathArray::size_type i = 0; i + 1 < ar.size(); ++i) { + for (size_t i = 0; i + 1 < ar.size(); ++i) { MathArray::iterator it = ar.begin() + i; MathArray::iterator jt = it + 1; @@ -457,13 +466,13 @@ void extractFunctions(MathArray & ar) extractScript(exp, jt, ar.end()); // create a proper inset as replacement - MathExFuncInset * p = new MathExFuncInset(name); + auto_ptr 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); @@ -517,7 +526,7 @@ void extractIntegrals(MathArray & ar) return; //lyxerr << "\nIntegrals from: " << ar << endl; - for (MathArray::size_type i = 0; i + 1 < ar.size(); ++i) { + for (size_t i = 0; i + 1 < ar.size(); ++i) { MathArray::iterator it = ar.begin() + i; // search 'd' @@ -533,7 +542,7 @@ void extractIntegrals(MathArray & ar) continue; // core ist part from behind the scripts to the 'd' - MathExIntInset * p = new MathExIntInset("int"); + auto_ptr p(new MathExIntInset("int")); // handle scripts if available if (!testIntSymbol(*it)) { @@ -547,7 +556,7 @@ void extractIntegrals(MathArray & ar) // remove used parts ar.erase(it + 1, tt); - *it = MathAtom(p); + *it = MathAtom(p.release()); } //lyxerr << "\nIntegrals to: " << ar << endl; } @@ -589,7 +598,7 @@ void extractSums(MathArray & ar) return; //lyxerr << "\nSums from: " << ar << endl; - for (MathArray::size_type i = 0; i + 1 < ar.size(); ++i) { + for (size_t i = 0; i + 1 < ar.size(); ++i) { MathArray::iterator it = ar.begin() + i; // is this a sum name? @@ -597,7 +606,7 @@ void extractSums(MathArray & ar) continue; // create a proper inset as replacement - MathExIntInset * p = new MathExIntInset("sum"); + auto_ptr p(new MathExIntInset("sum")); // collect lower bound and summation index MathScriptInset const * sub = ar[i]->asScriptInset(); @@ -626,7 +635,7 @@ void extractSums(MathArray & ar) // cleanup ar.erase(it + 1, tt); - *it = MathAtom(p); + *it = MathAtom(p.release()); } //lyxerr << "\nSums to: " << ar << endl; } @@ -661,7 +670,7 @@ bool testDiffFrac(MathAtom const & at) void extractDiff(MathArray & ar) { //lyxerr << "\nDiffs from: " << ar << endl; - for (MathArray::size_type i = 0; i < ar.size(); ++i) { + for (size_t i = 0; i < ar.size(); ++i) { MathArray::iterator it = ar.begin() + i; // is this a "differential fraction"? @@ -675,7 +684,7 @@ void extractDiff(MathArray & ar) } // create a proper diff inset - MathDiffInset * diff = new MathDiffInset; + auto_ptr diff(new MathDiffInset); // collect function, let jt point behind last used item MathArray::iterator jt = it + 1; @@ -724,7 +733,7 @@ void extractDiff(MathArray & ar) // cleanup ar.erase(it + 1, jt); - *it = MathAtom(diff); + *it = MathAtom(diff.release()); } //lyxerr << "\nDiffs to: " << ar << endl; } @@ -751,7 +760,7 @@ void extractLims(MathArray & ar) return; //lyxerr << "\nLimits from: " << ar << endl; - for (MathArray::size_type i = 0; i + 2 < ar.size(); ++i) { + for (size_t i = 0; i + 2 < ar.size(); ++i) { MathArray::iterator it = ar.begin() + i; // is this a limit function? @@ -932,7 +941,7 @@ namespace { ostringstream os; MaximaStream ms(os); ms << ar; - string expr = STRCONV(os.str()); + string expr = os.str(); string const header = "SIMPSUM:true;"; string out; @@ -975,7 +984,7 @@ namespace { expr.insert(pos, "*"); } - std::vector tmp = getVectorFromString(out, "$$"); + vector tmp = getVectorFromString(out, "$$"); if (tmp.size() < 2) return MathArray(); @@ -1055,7 +1064,7 @@ namespace { ostringstream os; MapleStream ms(os); ms << ar; - string expr = STRCONV(os.str()); + string expr = os.str(); lyxerr << "ar: '" << ar << "'\n" << "ms: '" << os.str() << "'" << endl; @@ -1103,7 +1112,7 @@ namespace { ostringstream os; OctaveStream vs(os); vs << ar; - string expr = STRCONV(os.str()); + string expr = os.str(); string out; lyxerr << "pipe: ar: '" << ar << "'\n" @@ -1187,7 +1196,7 @@ MathArray pipeThroughExtern(string const & lang, string const & extra, os << '[' << extra << ' '; ns << ar; os << ']'; - string data = STRCONV(os.str()); + string data = os.str(); // search external script string file = LibFileSearch("mathed", "extern_" + lang);