Georg Baum wrote:

> commit 6dfc255088ecd3393c4c5dc3d2c5357a3fbabfc0
> Author: Georg Baum <b...@lyx.org>
> Date:   Sat Jul 2 18:58:30 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 |    9 +++++++--
>  1 files changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/src/mathed/MathExtern.cpp b/src/mathed/MathExtern.cpp
> index b3443fa..8b1e0f0 100644
> --- a/src/mathed/MathExtern.cpp
> +++ b/src/mathed/MathExtern.cpp
> @@ -1001,8 +1001,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).
> +             unique_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;

Richard, OK for 2.2 (with auto_ptr instead of unique_ptr)?


Georg

Reply via email to