}
ostream *
-OutputDirectory::create(const string &name)
+OutputDirectory::create(const string &name, bool binary)
{
if (name == "cerr" || name == "stderr")
return &cerr;
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);
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);