if (!ar[i]->asCharInset())
continue;
docstring s = charSequence(ar.begin() + i, ar.end());
- ar[i] = MathAtom(new InsetMathString(s));
+ ar[i] = MathAtom(new InsetMathString(ar.buffer(), s));
ar.erase(i + 1, i + s.size());
}
//lyxerr << "\nStrings to: " << ar << endl;
docstring s = digitSequence(ar.begin() + i, ar.end());
- ar[i] = MathAtom(new InsetMathNumber(s));
+ ar[i] = MathAtom(new InsetMathNumber(ar.buffer(), s));
ar.erase(i + 1, i + s.size());
}
//lyxerr << "\nNumbers to: " << ar << endl;
// do we have an exponent like in
// 'sin' '^2' 'x' -> 'sin(x)' '^2'
- MathData exp;
+ MathData exp(buf);
extractScript(exp, jt, ar.end(), true);
// create a proper inset as replacement
MathData x0 = MathData(buf, st + 1, s.end());
// use something behind the script as core
- MathData f;
+ MathData f(buf);
MathData::iterator tt = extractTerm(f, it + 1, ar.end());
// cleanup
vector<string> tmp = getVectorFromString(out, "$$");
if (tmp.size() < 2)
- return MathData();
+ return MathData(nullptr);
out = subst(subst(tmp[1], "\\>", string()), "{\\it ", "\\mathit{");
lyxerr << "output: '" << out << "'" << endl;
//lyxerr << "output: " << out << endl;
i = out.find("\\over", i + 4);
}
- MathData res;
+ MathData res(nullptr);
mathed_parse_cell(res, from_utf8(out));
return res;
}
// change \_ into _
//
- MathData res;
+ MathData res(nullptr);
mathed_parse_cell(res, from_utf8(out));
return res;
}
// ansi control sequence before, such as '\033[?1034hans = '
size_t i = out.find("ans = ");
if (i == string::npos)
- return MathData();
+ return MathData(nullptr);
out = out.substr(i + 6);
// parse output as matrix or single number
size_t pos2 = out.find("In[2]:=");
if (pos1 == string::npos || pos2 == string::npos)
- return MathData();
+ return MathData(nullptr);
// get everything from pos1+17 to pos2
out = out.substr(pos1 + 17, pos2 - pos1 - 17);
prettifyMathematicaOutput(out, "Muserfunction", true, false);
prettifyMathematicaOutput(out, "Mvariable", false, false);
- MathData res;
+ MathData res(nullptr);
mathed_parse_cell(res, from_utf8(out));
return res;
}
void writeString(docstring const & s, TeXMathStream & os)
{
if (!os.latex()) {
- os << (os.asciiOnly() ? escape(s) : s);
+ os << s;
return;
}
- else if (os.output() == TeXMathStream::wsSearchAdv) {
- os << s;
+
+ docstring str = s;
+ if (os.asciiOnly())
+ str = escape(s);
+
+ if (os.output() == TeXMathStream::wsSearchAdv) {
+ os << str;
return;
}
if (os.lockedMode()) {
bool space;
docstring cmd;
- for (char_type c : s) {
+ for (char_type c : str) {
try {
Encodings::latexMathChar(c, true, os.encoding(), cmd, space);
os << cmd;
// We will take care of matching braces.
os.pendingBrace(false);
- for (char_type const c : s) {
+ for (char_type const c : str) {
bool mathmode = in_forced_mode ? os.textMode() : !os.textMode();
docstring command(1, c);
try {
FileName const file = libFileSearch("mathed", "extern_" + lang);
if (file.empty()) {
lyxerr << "converter to '" << lang << "' not found" << endl;
- return MathData();
+ return MathData(nullptr);
}
// run external sript
string out = captureOutput(file.absFileName(), data);
- MathData res;
+ MathData res(nullptr);
mathed_parse_cell(res, from_utf8(out));
return res;
}