aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorLeandro Pereira <leandro@hardinfo.org>2017-08-14 01:48:27 -0700
committerLeandro Pereira <leandro@hardinfo.org>2017-08-14 01:48:27 -0700
commit2db563687071c099851c59396bdde29a00dba156 (patch)
tree7c24f0216fa82cdb277c14245e353d0e662f3868 /modules
parent6baa8ab911190bf399c8dc87c7956425cde6e61f (diff)
Use product version information in device::getMotherboard
This will return something like: ThinkPad X220 / 42917J10 (LENOVO) As opposed to just: 42917J10 LENOVO
Diffstat (limited to 'modules')
-rw-r--r--modules/devices.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/modules/devices.c b/modules/devices.c
index 7246ef9d..120d8a92 100644
--- a/modules/devices.c
+++ b/modules/devices.c
@@ -359,19 +359,24 @@ gchar *get_memory_total(void)
gchar *get_motherboard(void)
{
- char *board_name, *board_vendor;
+ char *board_name, *board_vendor, *product_version;
+
#if defined(ARCH_x86) || defined(ARCH_x86_64)
scan_dmi(FALSE);
board_name = moreinfo_lookup("DEV:DMI:Board:Name");
board_vendor = moreinfo_lookup("DEV:DMI:Board:Vendor");
+ product_version = moreinfo_lookup("DEV:DMI:Product:Version#1");
+
+ if (!board_name || !*board_name)
+ board_name = _(" (model unknown)");
+ if (!board_vendor || !*board_vendor)
+ board_vendor = _(" (vendor unknown)");
+
+ if (product_version && *product_version)
+ return g_strdup_printf("%s / %s (%s)", product_version, board_name, board_vendor);
- if (board_name && board_vendor && *board_name && *board_vendor)
- return g_strconcat(board_vendor, " ", board_name, NULL);
- else if (board_name && *board_name)
- return g_strconcat(board_name, _(" (vendor unknown)"), NULL);
- else if (board_vendor && *board_vendor)
- return g_strconcat(board_vendor, _(" (model unknown)"), NULL);
+ return g_strconcat(board_vendor, " ", board_name, NULL);
#endif
/* use device tree "model" */