]> git.tdb.fi Git - libs/datafile.git/commitdiff
Rename error.h to except.h
authorMikko Rasa <tdb@tdb.fi>
Thu, 4 Oct 2007 20:16:17 +0000 (20:16 +0000)
committerMikko Rasa <tdb@tdb.fi>
Thu, 4 Oct 2007 20:16:17 +0000 (20:16 +0000)
Make datatool support reading from stdin

source/error.h [deleted file]
source/except.h [new file with mode: 0644]
source/value.h
tool.cpp

diff --git a/source/error.h b/source/error.h
deleted file mode 100644 (file)
index 11bccd8..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/* $Id$
-
-This file is part of libmspdatafile
-Copyright © 2006  Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-#ifndef MSP_DATAFILE_ERROR_H_
-#define MSP_DATAFILE_ERROR_H_
-
-#include <msp/core/error.h>
-
-namespace Msp {
-namespace DataFile {
-
-class TypeError: public Exception
-{
-public:
-       TypeError(const std::string &w_): Exception(w_) { }
-};
-
-class ParseError: public Exception
-{
-public:
-       ParseError(const std::string &w_, const std::string &s, unsigned l): Exception(w_), source(s), line(l) { }
-       const std::string &get_source() const { return source; }
-       unsigned          get_line() const    { return line; }
-       ~ParseError() throw() { }
-private:
-       std::string source;
-       unsigned    line;
-};
-
-} // namespace DataFile
-} // namespace Msp
-
-#endif
diff --git a/source/except.h b/source/except.h
new file mode 100644 (file)
index 0000000..4573e94
--- /dev/null
@@ -0,0 +1,36 @@
+/* $Id$
+
+This file is part of libmspdatafile
+Copyright © 2006  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+#ifndef MSP_DATAFILE_ERROR_H_
+#define MSP_DATAFILE_ERROR_H_
+
+#include <msp/core/except.h>
+
+namespace Msp {
+namespace DataFile {
+
+class TypeError: public Exception
+{
+public:
+       TypeError(const std::string &w_): Exception(w_) { }
+};
+
+class ParseError: public Exception
+{
+public:
+       ParseError(const std::string &w_, const std::string &s, unsigned l): Exception(w_), source(s), line(l) { }
+       const std::string &get_source() const { return source; }
+       unsigned          get_line() const    { return line; }
+       ~ParseError() throw() { }
+private:
+       std::string source;
+       unsigned    line;
+};
+
+} // namespace DataFile
+} // namespace Msp
+
+#endif
index fda83e494db884a228036fafdf3f6ba5c3ec9439..4b3ac4192b400f58388716d5baeaee7f243cb759 100644 (file)
@@ -9,7 +9,7 @@ Distributed under the LGPL
 
 #include <vector>
 #include <msp/strings/lexicalcast.h>
-#include "error.h"
+#include "except.h"
 
 namespace Msp {
 namespace DataFile {
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);