Use standard input if the input file is "-"
authorMichael Spang <mspang@csclub.uwaterloo.ca>
Tue, 15 Dec 2009 01:38:30 +0000 (20:38 -0500)
committerMichael Spang <mspang@csclub.uwaterloo.ca>
Tue, 22 Dec 2009 03:14:03 +0000 (22:14 -0500)
Signed-off-by: Michael Spang <mspang@csclub.uwaterloo.ca>
inapt.cc
parser.rl

index 29bc06f..3d22bc1 100644 (file)
--- a/inapt.cc
+++ b/inapt.cc
@@ -485,6 +485,9 @@ int main(int argc, char *argv[]) {
     inapt_block context;
     vector<inapt_package *> final_actions;
 
+    if (!num_files)
+        parser(NULL, &context);
+
     while (num_files--)
         parser(argv[optind++], &context);
 
index 44ea587..58d6441 100644 (file)
--- a/parser.rl
+++ b/parser.rl
@@ -12,7 +12,7 @@
 using namespace std;
 
 #define MAXDEPTH 100
-#define BUFSIZE 128
+#define BUFSIZE 4096
 
 %%{
     machine inapt;
@@ -175,13 +175,13 @@ void parser(const char *filename, inapt_block *top_block)
 
     const char *curfile = filename;
 
-    if (filename) {
+    if (!filename || !strcmp(filename, "-")) {
+        curfile = "stdin";
+        fd = 0;
+    } else {
         fd = open(filename, O_RDONLY);
         if (fd < 0)
             fatalpe("open: %s", filename);
-    } else {
-        curfile = "stdin";
-        fd = 0;
     }
 
     %% write init;