From 3fb8d718695f013ecc48c63706207a4004daa390 Mon Sep 17 00:00:00 2001 From: Georg Baum Date: Sun, 3 Jul 2016 19:48:15 +0200 Subject: [PATCH] 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 7fbb4af732..c6ba26fc61 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(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 f4d5840c25..e384377c64 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