make units more dynamic

Signed-off-by: Christian Hesse <mail@eworm.de>
This commit is contained in:
Christian Hesse
2015-06-12 09:50:55 +02:00
parent f3a9f5406b
commit 6f58fbc5dd
4 changed files with 49 additions and 3 deletions

View File

@ -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) {