]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/math_extern.C
Change the color of the background widget to red.
[lyx.git] / src / mathed / math_extern.C
index 60d763ed56da0a9bf7e898a6fdf2e959483a1415..99e381d78aaf7cee47c9e96e39c52135d44a4582 100644 (file)
@@ -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"
 #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;
+using std::swap;
+using std::vector;
 
 
 ostream & operator<<(ostream & os, MathArray const & ar)
@@ -138,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());
@@ -153,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);
@@ -165,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;
@@ -241,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;
@@ -268,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;
@@ -281,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<MathScriptInset> 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;
 }
@@ -300,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;
@@ -363,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()))
@@ -425,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;
 
@@ -456,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<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);
@@ -516,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'
@@ -532,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<MathExIntInset> p(new MathExIntInset("int"));
 
                // handle scripts if available
                if (!testIntSymbol(*it)) {
@@ -546,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;
 }
@@ -588,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?
@@ -596,7 +606,7 @@ void extractSums(MathArray & ar)
                        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();
@@ -625,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;
 }
@@ -660,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"?
@@ -674,7 +684,7 @@ void extractDiff(MathArray & ar)
                }
 
                // 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;
@@ -723,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;
 }
@@ -750,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?
@@ -931,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;
@@ -974,7 +984,7 @@ namespace {
                        expr.insert(pos,  "*");
                }
 
-               std::vector<string> tmp = getVectorFromString(out, "$$");
+               vector<string> tmp = getVectorFromString(out, "$$");
                if (tmp.size() < 2)
                        return MathArray();
 
@@ -1054,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;
 
@@ -1102,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"
@@ -1186,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);