From e2842268976544bb561d45b77924d4448f163bbb Mon Sep 17 00:00:00 2001 From: Christos Houtouridis Date: Thu, 14 Feb 2019 12:12:00 +0200 Subject: [PATCH] Minor change for std redirection argument parsing --- src/sequencer.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/sequencer.cpp b/src/sequencer.cpp index 92ee9e9..c219263 100755 --- a/src/sequencer.cpp +++ b/src/sequencer.cpp @@ -91,10 +91,16 @@ namespace snel { bool in{false}, out{false}, err{false}; for (auto& t: command) { - if (t == "" || t== " ") - continue; + if (t == "" || t== " ") continue; // skip crap + if (t == "&&") logic = LogicOp::AND; else if (t == "||") logic = LogicOp::OR; + // one pass redirection parsing + else if (!t.compare(0, 1, "<")) filenames[STDIN_] = t.substr(1); + else if (!t.compare(0, 1, ">")) filenames[STDOUT_] = t.substr(1); + else if (!t.compare(0, 2, "1>")) filenames[STDOUT_] = t.substr(2); + else if (!t.compare(0, 2, "2>")) filenames[STDERR_] = t.substr(2); + // two pass redirection parsing (if redirection came in 2 arguments) else if (t == "<") in = true; else if (t == "1>" || t == ">") out = true; else if (t == "2>") err = true;