Fix CAS input on windows (bug 10262)

This is the well known file locking problem: The TempFile class keeps the
created file locked for the own process, and this prevents the CAS to read it.
This commit is contained in:
Georg Baum 2016-07-03 19:48:15 +02:00
parent 96665053c4
commit 3fb8d71869
2 changed files with 10 additions and 2 deletions

View File

@ -1000,8 +1000,13 @@ namespace {
{ {
// In order to avoid parsing problems with command interpreters // In order to avoid parsing problems with command interpreters
// we pass input data through a file // we pass input data through a file
TempFile tempfile("casinput"); // Since the CAS is supposed to read the temp file we need
FileName const cas_tmpfile = tempfile.name(); // to unlock it on windows (bug 10262).
auto_ptr<TempFile> tempfile(new TempFile("casinput"));
tempfile->setAutoRemove(false);
FileName const cas_tmpfile = tempfile->name();
tempfile.reset();
if (cas_tmpfile.empty()) { if (cas_tmpfile.empty()) {
lyxerr << "Warning: cannot create temporary file." lyxerr << "Warning: cannot create temporary file."
<< endl; << endl;
@ -1015,6 +1020,7 @@ namespace {
lyxerr << "calling: " << cmd lyxerr << "calling: " << cmd
<< "\ninput: '" << data << "'" << endl; << "\ninput: '" << data << "'" << endl;
cmd_ret const ret = runCommand(command); cmd_ret const ret = runCommand(command);
cas_tmpfile.removeFile();
return ret.second; return ret.second;
} }

View File

@ -81,6 +81,8 @@ What's new
- Load math packages automatically with JSS template (bug 9242). - Load math packages automatically with JSS template (bug 9242).
- Calling a Computer Algebra System from LyX works again (windows only bug 10262).
* LYX2LYX * LYX2LYX