Changeset

10893:a256044c1d12

util.human.io: table: switch row function to simply returning prepared row string
author Matthew Wild <mwild1@gmail.com>
date Wed, 03 Jun 2020 22:45:33 +0100
parents 10892:b9ff7178787c
children 10894:d15a4284fdf8
files util/human/io.lua
diffstat 1 files changed, 6 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/util/human/io.lua	Wed Jun 03 22:26:48 2020 +0100
+++ b/util/human/io.lua	Wed Jun 03 22:45:33 2020 +0100
@@ -93,7 +93,7 @@
 	return string.rep(" ", width-#s)..s;
 end
 
-local function table(col_specs, max_width, padding)
+local function new_table(col_specs, max_width, padding)
 	max_width = max_width or 80;
 	padding = padding or 4;
 
@@ -118,7 +118,8 @@
 		end
 	end
 
-	return function (row, f)
+	return function (row)
+		local output = {};
 		for i, column in ipairs(col_specs) do
 			local width = widths[i];
 			local v = tostring(row[column.key or i] or ""):sub(1, width);
@@ -129,9 +130,9 @@
 					v = padright(v, width);
 				end
 			end
-			(f or io.stdout):write(v);
+			table.insert(output, v);
 		end
-		(f or io.stdout):write("\n");
+		return table.concat(output);
 	end;
 end
 
@@ -145,5 +146,5 @@
 	printf = printf;
 	padleft = padleft;
 	padright = padright;
-	table = table;
+	table = new_table;
 };