Output: Make OutputDirectory::create() be able to create binary files.

--HG--
extra : convert_revision : eae114ee5f27bb8b319df705d9b39bded185b8e8
This commit is contained in:
Ali Saidi 2007-08-02 14:40:56 -04:00
parent acb91c2dfa
commit c4e026daf4
2 changed files with 4 additions and 3 deletions

View file

@ -87,7 +87,7 @@ OutputDirectory::resolve(const string &name)
}
ostream *
OutputDirectory::create(const string &name)
OutputDirectory::create(const string &name, bool binary)
{
if (name == "cerr" || name == "stderr")
return &cerr;
@ -95,7 +95,8 @@ OutputDirectory::create(const string &name)
if (name == "cout" || name == "stdout")
return &cout;
ofstream *file = new ofstream(resolve(name).c_str(), ios::trunc);
ofstream *file = new ofstream(resolve(name).c_str(),
ios::trunc | binary ? ios::binary : (ios::openmode)0);
if (!file->is_open())
panic("Cannot open file %s", name);

View file

@ -51,7 +51,7 @@ class OutputDirectory
const std::string &directory();
std::string resolve(const std::string &name);
std::ostream *create(const std::string &name);
std::ostream *create(const std::string &name, bool binary = false);
std::ostream *find(const std::string &name);
static bool isFile(const std::ostream *os);