diff --git a/wccl-apps/wccl-run.cpp b/wccl-apps/wccl-run.cpp index 8d79c1c7fc1752bcf3805b208b0b5595d20076e3..b1bd1463e2f7dda9d6c2b87fc827522d559ed0a6 100644 --- a/wccl-apps/wccl-run.cpp +++ b/wccl-apps/wccl-run.cpp @@ -275,22 +275,23 @@ void Runner::output_tabular(const std::vector<std::vector<UnicodeString> >& outp { std::vector<int> lengths(outputs[0].size()); foreach (const std::vector< UnicodeString >& line, outputs) { + if (line.empty()) continue; for (size_t i = 0; i < line.size(); ++i) { lengths[i] = std::max(lengths[i], line[i].length()); } } foreach (const std::vector< UnicodeString >& line, outputs) { - for (size_t i = 0; i < line.size() - 1; ++i) { - UnicodeString u = line[i]; - if (tabs) { - std::cout << PwrNlp::to_utf8(line[i]) << "\t"; - } else { - u.padTrailing(lengths[i] + 1); - std::cout << PwrNlp::to_utf8(u); - } - } if (!line.empty()) { + for (size_t i = 0; i < line.size() - 1; ++i) { + UnicodeString u = line[i]; + if (tabs) { + std::cout << PwrNlp::to_utf8(line[i]) << "\t"; + } else { + u.padTrailing(lengths[i] + 1); + std::cout << PwrNlp::to_utf8(u); + } + } std::cout << PwrNlp::to_utf8(line.back()); } std::cout << "\n"; @@ -317,7 +318,11 @@ void Runner::run(boost::shared_ptr<Corpus2::TokenReader> reader, bool first) timer.check_slice(); } if (!filter_op_) { - std::cout << "\n"; + if (!aggregate_output_) { + std::cout << "\n"; + } else { + outputs.resize(outputs.size() + 1); + } } if (first) break; }