bin: diagnose more write errors
* tests/core/full.test: New file. * tests/Makefile.am: Add it. * bin/autfilt.cc, bin/common_aoutput.cc, bin/common_aoutput.hh, bin/common_file.cc, bin/common_file.hh, bin/genltl.cc, bin/ltlcross.cc, bin/ltlfilt.cc, bin/ltlgrind.cc, bin/randltl.cc: Add diagnostics. * NEWS: Mention the fix.
This commit is contained in:
parent
53e6640034
commit
e97ea5fa74
13 changed files with 96 additions and 3 deletions
|
|
@ -1,5 +1,5 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2015 Laboratoire de Recherche et Développement de
|
||||
// Copyright (C) 2015, 2016 Laboratoire de Recherche et Développement de
|
||||
// l'Epita (LRDE).
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
|
|
@ -41,3 +41,16 @@ output_file::output_file(const char* name)
|
|||
error(2, errno, "cannot open '%s'", name);
|
||||
os_ = of_;
|
||||
}
|
||||
|
||||
|
||||
void output_file::close(const std::string& name)
|
||||
{
|
||||
// We close of_, not os_, so that we never close std::cout.
|
||||
if (os_)
|
||||
os_->flush();
|
||||
if (of_)
|
||||
of_->close();
|
||||
if (os_ && !*os_)
|
||||
error(2, 0, "error writing to %s",
|
||||
(name == "-") ? "standard output" : name.c_str());
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue