X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=tool.cpp;h=8ca4f746017a5466140fb292b57cd54644a0e31e;hb=e39534940056cdbec16c0d09d43e5375e2bbaf1c;hp=533abb0f3c1592ac7c73f4defae8adb36af8185c;hpb=27630d44298cb67e075c166f4421288cc8ca117e;p=libs%2Fdatafile.git diff --git a/tool.cpp b/tool.cpp index 533abb0..8ca4f74 100644 --- 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 &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);