Diff

util/human/units.lua @ 10889:25e0ec11b4e4

util.human.units: Put math functions into locals Primarily because the next commit will deal with math.log behaving differently on Lua 5.1 and that's eaiser with locals.
author Kim Alvefur <zash@zash.se>
date Wed, 03 Jun 2020 20:16:00 +0200
parent 10888:42a0d9089de9
child 10890:a451f80d1cea
line wrap: on
line diff
--- a/util/human/units.lua	Wed Jun 03 19:46:17 2020 +0200
+++ b/util/human/units.lua	Wed Jun 03 20:16:00 2020 +0200
@@ -1,3 +1,9 @@
+local math_abs = math.abs;
+local math_ceil = math.ceil;
+local math_floor = math.floor;
+local math_log = math.log;
+local math_max = math.max;
+local math_min = math.min;
 local unpack = table.unpack or unpack; --luacheck: ignore 113
 
 local large = {
@@ -36,7 +42,7 @@
 -- unit: string, the base unit
 -- b: optional enum 'b', thousands base
 local function format(n, unit, b) --> string
-	local round = math.floor;
+	local round = math_floor;
 	local prefixes = large;
 	local logbase = 1000;
 	local fmt = "%.3g %s%s";
@@ -48,9 +54,9 @@
 		logbase = 1024;
 	elseif n < 1 then
 		prefixes = small;
-		round = math.ceil;
+		round = math_ceil;
 	end
-	local m = math.max(0, math.min(8, round(math.abs(math.log(math.abs(n), logbase)))));
+	local m = math_max(0, math_min(8, round(math_abs(math_log(math_abs(n), logbase)))));
 	local prefix, multiplier = unpack(prefixes, m * 2-1, m*2);
 	return fmt:format(n / (multiplier or 1), prefix or "", unit);
 end