diff options
Diffstat (limited to 'modules/devices/storage.c')
-rw-r--r-- | modules/devices/storage.c | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/modules/devices/storage.c b/modules/devices/storage.c index d9c8e043..ff1c24de 100644 --- a/modules/devices/storage.c +++ b/modules/devices/storage.c @@ -317,17 +317,40 @@ gboolean __scan_udisks2_devices(void) { if (disk->smart_attributes != NULL) { moreinfo = h_strdup_cprintf(_("[S.M.A.R.T. Attributes]\n" - "Attribute=Normalized Value / Worst / Threshold\n"), + "Attribute=Value / Normalized / Worst / Threshold\n"), moreinfo); attrib = disk->smart_attributes; while (attrib != NULL){ tmp = g_strdup(""); + + switch (attrib->interpreted_unit){ + case UDSK_INTPVAL_SKIP: + tmp = h_strdup_cprintf("-", tmp); + break; + case UDSK_INTPVAL_MILISECONDS: + tmp = h_strdup_cprintf("%ld ms", tmp, attrib->interpreted); + break; + case UDSK_INTPVAL_HOURS: + tmp = h_strdup_cprintf("%ld h", tmp, attrib->interpreted); + break; + case UDSK_INTPVAL_CELSIUS: + tmp = h_strdup_cprintf("%ld°C", tmp, attrib->interpreted); + break; + case UDSK_INTPVAL_SECTORS: + tmp = h_strdup_cprintf(ngettext("%ld sector", "%ld sectors", attrib->interpreted), tmp, attrib->interpreted); + break; + case UDSK_INTPVAL_DIMENSIONLESS: + default: + tmp = h_strdup_cprintf("%ld", tmp, attrib->interpreted); + break; + } + if (attrib->value != -1) - tmp = h_strdup_cprintf("%3d", tmp, attrib->value); + tmp = h_strdup_cprintf(" / %3d", tmp, attrib->value); else - tmp = h_strdup_cprintf("???", tmp); + tmp = h_strdup_cprintf(" / ???", tmp); if (attrib->worst != -1) tmp = h_strdup_cprintf(" / %3d", tmp, attrib->worst); |