From b6311d2ece6d373ed90b230c6efe256f69ef5f15 Mon Sep 17 00:00:00 2001
From: ilor <kailoran@gmail.com>
Date: Mon, 30 May 2011 10:47:02 +0200
Subject: [PATCH] fix wccl-run --aggregate=1 again

---
 wccl-apps/wccl-run.cpp | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/wccl-apps/wccl-run.cpp b/wccl-apps/wccl-run.cpp
index 8d79c1c..b1bd146 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;
 	}
-- 
GitLab