aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hardinfo/util.c8
-rw-r--r--includes/hardinfo.h1
-rw-r--r--shell/report.c9
3 files changed, 15 insertions, 3 deletions
diff --git a/hardinfo/util.c b/hardinfo/util.c
index 04790dc2..81b7e743 100644
--- a/hardinfo/util.c
+++ b/hardinfo/util.c
@@ -384,6 +384,7 @@ log_handler(const gchar * log_domain,
void parameters_init(int *argc, char ***argv, ProgramParameters * param)
{
static gboolean create_report = FALSE;
+ static gboolean force_all_details = FALSE;
static gboolean show_version = FALSE;
static gboolean list_modules = FALSE;
static gboolean autoload_deps = FALSE;
@@ -457,6 +458,12 @@ void parameters_init(int *argc, char ***argv, ProgramParameters * param)
.arg = G_OPTION_ARG_NONE,
.arg_data = &skip_benchmarks,
.description = N_("do not run benchmarks")},
+ {
+ .long_name = "very-verbose",
+ .short_name = 'w', /* like -vv */
+ .arg = G_OPTION_ARG_NONE,
+ .arg_data = &force_all_details,
+ .description = N_("show all details")},
{NULL}
};
GOptionContext *ctx;
@@ -486,6 +493,7 @@ void parameters_init(int *argc, char ***argv, ProgramParameters * param)
param->autoload_deps = autoload_deps;
param->run_xmlrpc_server = run_xmlrpc_server;
param->skip_benchmarks = skip_benchmarks;
+ param->force_all_details = force_all_details;
param->argv0 = *(argv)[0];
if (report_format && g_str_equal(report_format, "html"))
diff --git a/includes/hardinfo.h b/includes/hardinfo.h
index 3412f852..ee886251 100644
--- a/includes/hardinfo.h
+++ b/includes/hardinfo.h
@@ -46,6 +46,7 @@ typedef struct _ProgramParameters ProgramParameters;
struct _ProgramParameters {
gboolean create_report;
+ gboolean force_all_details; /* for create_report, include any "moreinfo" that exists for any item */
gboolean show_version;
gboolean gui_running;
gboolean list_modules;
diff --git a/shell/report.c b/shell/report.c
index 8177822a..8a8f8c6b 100644
--- a/shell/report.c
+++ b/shell/report.c
@@ -299,12 +299,15 @@ void report_table(ReportContext * ctx, gchar * text)
if ( key_is_flagged(key) ) {
gchar *mi_tag = key_mi_tag(key);
gchar *mi_data = NULL; /*const*/
- if (key_wants_details(key)) {
+
+ if (key_wants_details(key) || params.force_all_details)
mi_data = ctx->entry->morefunc(mi_tag);
+
+ if (mi_data)
report_details(ctx, (gchar*)key_get_name(key), value, key_is_highlighted(key), mi_data);
- } else {
+ else
report_key_value(ctx, (gchar*)key_get_name(key), value, key_is_highlighted(key) );
- }
+
g_free(mi_tag);
} else {
report_key_value(ctx, key, value, FALSE);