]> git.tdb.fi Git - libs/datafile.git/blobdiff - tool.cpp
Rename error.h to except.h
[libs/datafile.git] / tool.cpp
index 533abb0f3c1592ac7c73f4defae8adb36af8185c..8ca4f746017a5466140fb292b57cd54644a0e31e 100644 (file)
--- a/tool.cpp
+++ b/tool.cpp
@@ -25,6 +25,7 @@ public:
 
 
 DataTool::DataTool(int argc, char **argv):
+       in_fn("-"),
        out_fn("-")
 {
        GetOpt getopt;
@@ -33,20 +34,17 @@ DataTool::DataTool(int argc, char **argv):
        getopt(argc, argv);
 
        const vector<string> &args=getopt.get_args();
-       if(args.empty())
-               throw UsageError("Must give input filename");
-
-       in_fn=args[0];
+       if(!args.empty())
+               in_fn=args[0];
 }
 
 int DataTool::main()
 {
-       ifstream in(in_fn.c_str());
-       if(!in)
-       {
-               cerr<<"Couldn't open input file\n";
-               return 1;
-       }
+       istream *in;
+       if(in_fn=="-")
+               in=&cin;
+       else
+               in=new ifstream(in_fn.c_str());
 
        ostream *out;
        if(out_fn=="-")
@@ -54,7 +52,7 @@ int DataTool::main()
        else
                out=new ofstream(out_fn.c_str());
 
-       DataFile::Parser parser(in, in_fn);
+       DataFile::Parser parser(*in, in_fn);
        DataFile::Writer writer(*out);
        if(binary)
                writer.set_binary(true);