Comparison

util/human/io.lua @ 13031:1023c3faffac

util.human.io: Fix pattern to support fractional proportions
author Matthew Wild <mwild1@gmail.com>
date Thu, 06 Apr 2023 15:03:45 +0100
parent 13030:1f89a2a9f532
child 13038:83b93ad08b23
comparison
equal deleted inserted replaced
13030:1f89a2a9f532 13031:1023c3faffac
137 137
138 -- Calculate width of proportional columns 138 -- Calculate width of proportional columns
139 local total_proportional_width = 0; 139 local total_proportional_width = 0;
140 for i = 1, #col_specs do 140 for i = 1, #col_specs do
141 if not widths[i] then 141 if not widths[i] then
142 local width_spec = col_specs[i].width:match("(%d+)[p%%]"); 142 local width_spec = col_specs[i].width:match("([%d%.]+)[p%%]");
143 total_proportional_width = total_proportional_width + tonumber(width_spec); 143 total_proportional_width = total_proportional_width + tonumber(width_spec);
144 end 144 end
145 end 145 end
146 146
147 for i = 1, #col_specs do 147 for i = 1, #col_specs do
148 if not widths[i] then 148 if not widths[i] then
149 local width_spec = col_specs[i].width:match("(%d+)[p%%]"); 149 local width_spec = col_specs[i].width:match("([%d%.]+)[p%%]");
150 local rel_width = tonumber(width_spec); 150 local rel_width = tonumber(width_spec);
151 widths[i] = math.floor(free_width*(rel_width/total_proportional_width)); 151 widths[i] = math.floor(free_width*(rel_width/total_proportional_width));
152 end 152 end
153 end 153 end
154 154