diff options
author | Leandro A. F. Pereira <leandro@hardinfo.org> | 2009-04-04 14:21:43 -0300 |
---|---|---|
committer | Leandro A. F. Pereira <leandro@hardinfo.org> | 2009-04-04 14:21:43 -0300 |
commit | 24d285d8dce5c51c708580bc01a563beba91bea3 (patch) | |
tree | 69c003ca31c68f537a321f6ef40cc33768ba08dd /hardinfo2 | |
parent | af94cd7af28b102087b20568b1561aab8dedc796 (diff) |
Better support for Vendor Name/URL display in DMI section
Diffstat (limited to 'hardinfo2')
-rw-r--r-- | hardinfo2/arch/linux/common/dmi.h | 67 |
1 files changed, 47 insertions, 20 deletions
diff --git a/hardinfo2/arch/linux/common/dmi.h b/hardinfo2/arch/linux/common/dmi.h index dc7792cb..7c5e6e6f 100644 --- a/hardinfo2/arch/linux/common/dmi.h +++ b/hardinfo2/arch/linux/common/dmi.h @@ -76,16 +76,29 @@ gboolean dmi_get_info_dmidecode() break; } - const gchar *url = vendor_get_url(buffer); - gchar *tmp; - if (url) - tmp = g_strdup_printf("%s (%s)", vendor_get_name(buffer), url); - - dmi_info = h_strdup_cprintf("%s=%s\n", - dmi_info, - info->name, - url ? tmp : buffer); - + const gchar *url = vendor_get_url(buffer); + if (url) { + const gchar *vendor = vendor_get_name(buffer); + if (g_strstr_len(vendor, -1, g_strstrip(buffer)) || + g_strstr_len(g_strstrip(buffer), -1, vendor)) { + dmi_info = h_strdup_cprintf("%s=%s (%s)\n", + dmi_info, + info->name, + g_strstrip(buffer), + url); + } else { + dmi_info = h_strdup_cprintf("%s=%s (%s, %s)\n", + dmi_info, + info->name, + g_strstrip(buffer), + vendor, url); + } + } else { + dmi_info = h_strdup_cprintf("%s=%s\n", + dmi_info, + info->name, + buffer); + } } else { g_free(temp); dmi_failed = TRUE; @@ -128,16 +141,30 @@ gboolean dmi_get_info_sys() if ((dmi_file = fopen(info->file, "r"))) { (void)fgets(buffer, 256, dmi_file); fclose(dmi_file); - - const gchar *url = vendor_get_url(buffer); - gchar *tmp; - if (url) - tmp = g_strdup_printf("%s (%s)", vendor_get_name(buffer), url); - - dmi_info = h_strdup_cprintf("%s=%s\n", - dmi_info, - info->name, - url ? tmp : buffer); + + const gchar *url = vendor_get_url(buffer); + if (url) { + const gchar *vendor = vendor_get_name(buffer); + if (g_strstr_len(vendor, -1, g_strstrip(buffer)) || + g_strstr_len(g_strstrip(buffer), -1, vendor)) { + dmi_info = h_strdup_cprintf("%s=%s (%s)\n", + dmi_info, + info->name, + g_strstrip(buffer), + url); + } else { + dmi_info = h_strdup_cprintf("%s=%s (%s, %s)\n", + dmi_info, + info->name, + g_strstrip(buffer), + vendor, url); + } + } else { + dmi_info = h_strdup_cprintf("%s=%s\n", + dmi_info, + info->name, + g_strstrip(buffer)); + } } else { dmi_failed = TRUE; break; |