X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fscoped_temporary.cc;h=ad4f882a2649ecfadb840e88c66c351dc7b60964;hb=94ace8e9fb2cbcf6f849edefd6b5e4c4a2d3ed7f;hp=c64f632438c99560bb1297e4ecdeaa186ca10da6;hpb=59f63e2b6d0dba963faee7dfee54fbb48dee396a;p=dcpomatic.git diff --git a/src/lib/scoped_temporary.cc b/src/lib/scoped_temporary.cc index c64f63243..ad4f882a2 100644 --- a/src/lib/scoped_temporary.cc +++ b/src/lib/scoped_temporary.cc @@ -1,26 +1,29 @@ /* - Copyright (C) 2012-2014 Carl Hetherington + Copyright (C) 2012-2018 Carl Hetherington - This program is free software; you can redistribute it and/or modify + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + DCP-o-matic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with DCP-o-matic. If not, see . */ #include "scoped_temporary.h" +#include "exceptions.h" +#include "cross.h" /** Construct a ScopedTemporary. A temporary filename is decided but the file is not opened - * until ::open() is called. + * until open() is called. */ ScopedTemporary::ScopedTemporary () : _open (0) @@ -31,7 +34,7 @@ ScopedTemporary::ScopedTemporary () /** Close and delete the temporary file */ ScopedTemporary::~ScopedTemporary () { - close (); + close (); boost::system::error_code ec; boost::filesystem::remove (_file, ec); } @@ -49,7 +52,11 @@ ScopedTemporary::c_str () const FILE* ScopedTemporary::open (char const * params) { - _open = fopen (c_str(), params); + close (); + _open = fopen_boost (_file, params); + if (!_open) { + throw FileError ("Could not open scoped temporary", _file); + } return _open; }