commit 3fb8d718695f013ecc48c63706207a4004daa390
Author: Georg Baum <[email protected]>
Date: Sun Jul 3 19:48:15 2016 +0200
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.
---
src/mathed/MathExtern.cpp | 10 ++++++++--
status.22x | 2 ++
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/mathed/MathExtern.cpp b/src/mathed/MathExtern.cpp
index 7fbb4af..c6ba26f 100644
--- a/src/mathed/MathExtern.cpp
+++ b/src/mathed/MathExtern.cpp
@@ -1000,8 +1000,13 @@ namespace {
{
// In order to avoid parsing problems with command interpreters
// we pass input data through a file
- TempFile tempfile("casinput");
- FileName const cas_tmpfile = tempfile.name();
+ // Since the CAS is supposed to read the temp file we need
+ // 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()) {
lyxerr << "Warning: cannot create temporary file."
<< endl;
@@ -1015,6 +1020,7 @@ namespace {
lyxerr << "calling: " << cmd
<< "\ninput: '" << data << "'" << endl;
cmd_ret const ret = runCommand(command);
+ cas_tmpfile.removeFile();
return ret.second;
}
diff --git a/status.22x b/status.22x
index f4d5840..e384377 100644
--- a/status.22x
+++ b/status.22x
@@ -81,6 +81,8 @@ What's new
- Load math packages automatically with JSS template (bug 9242).
+- Calling a Computer Algebra System from LyX works again (windows only bug
10262).
+
* LYX2LYX