From 6f58fbc5dd091557129895bbd0a05335e411d19e Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 12 Jun 2015 09:50:55 +0200 Subject: make units more dynamic Signed-off-by: Christian Hesse --- SwapMeter.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'SwapMeter.c') diff --git a/SwapMeter.c b/SwapMeter.c index a19c0300..aaa5e93c 100644 --- a/SwapMeter.c +++ b/SwapMeter.c @@ -33,9 +33,17 @@ static void SwapMeter_humanNumber(char* buffer, const long int* value) { sprintf(buffer, "%ldM ", *value / MEGABYTE); } -static void SwapMeter_setValues(Meter* this, char* buffer, int len) { +static void SwapMeter_setValues(Meter* this, char* buffer, int size) { + int written; Platform_setSwapValues(this); - snprintf(buffer, len, "%ld/%ldM", (long int) this->values[0] / MEGABYTE, (long int) this->total / MEGABYTE); + + written = Meter_humanUnit(buffer, this->values[0], size); + buffer += written; + if ((size -= written) > 0) { + *buffer++ = '/'; + size--; + Meter_humanUnit(buffer, this->total, size); + } } static void SwapMeter_display(Object* cast, RichString* out) { -- cgit v1.2.3