2009-07-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

Rewritten Signature::save()
	* src/Signature.cc
pull/1/head
Tatsuhiro Tsujikawa 2009-07-22 12:58:49 +00:00
parent 65906c07fe
commit f4a533846d
2 changed files with 17 additions and 7 deletions

View File

@ -1,3 +1,8 @@
2009-07-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Rewritten Signature::save()
* src/Signature.cc
2009-07-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Rewritten stream error handling

View File

@ -64,15 +64,20 @@ bool Signature::save(const std::string& filepath) const
if(File(filepath).exists()) {
return false;
}
std::ofstream out(filepath.c_str(), std::ios::binary);
try {
out.exceptions(std::ios::failbit);
out << _body;
out.close();
return true;
} catch(const std::ios::failure& exception) {
std::string tempFilepath = filepath;
tempFilepath += "__temp";
{
std::ofstream out(tempFilepath.c_str(), std::ios::binary);
if(!out) {
return false;
}
out << _body;
out.flush();
if(!out) {
return false;
}
}
return File(tempFilepath).renameTo(filepath);
}
} // namespace aria2