From aabf2040a5673c4de89538838e34e03c4c2c6c54 Mon Sep 17 00:00:00 2001 From: Jean Delvare Date: Sat, 6 Dec 2003 11:47:45 +0000 Subject: [PATCH] New flag (-U) to hide unknown chips. Not the default. git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@2138 7894878c-1315-0410-8ee3-d5d059ff63e0 --- prog/sensors/main.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/prog/sensors/main.c b/prog/sensors/main.c index 34485280..729d296e 100644 --- a/prog/sensors/main.c +++ b/prog/sensors/main.c @@ -52,7 +52,7 @@ static const char *sprintf_chip_name(sensors_chip_name name); #define CHIPS_MAX 20 sensors_chip_name chips[CHIPS_MAX]; int chips_count=0; -int do_sets, do_unknown, fahrenheit, hide_adapter; +int do_sets, do_unknown, fahrenheit, hide_adapter, hide_unknown; void print_short_help(void) { @@ -67,6 +67,7 @@ void print_long_help(void) printf(" -s, --set Execute `set' statements too (root only)\n"); printf(" -f, --fahrenheit Show temperatures in degrees fahrenheit\n"); printf(" -A, --no-adapter Do not show adapter and algorithm for each chip\n"); + printf(" -U, --no-unknown Do not show unknown chips\n"); printf(" -u, --unknown Treat chips as unknown ones (testing only)\n"); printf(" -v, --version Display the program version\n"); printf("\n"); @@ -158,6 +159,7 @@ int main (int argc, char *argv[]) { "version", no_argument, NULL, 'v'}, { "fahrenheit", no_argument, NULL, 'f' }, { "no-adapter", no_argument, NULL, 'A' }, + { "no-unknown", no_argument, NULL, 'U' }, { "config-file", required_argument, NULL, 'c' }, { "unknown", no_argument, NULL, 'u' }, { 0,0,0,0 } @@ -167,7 +169,7 @@ int main (int argc, char *argv[]) do_sets = 0; hide_adapter = 0; while (1) { - c = getopt_long(argc,argv,"hsvfAc:u",long_opts,NULL); + c = getopt_long(argc,argv,"hsvfAUc:u",long_opts,NULL); if (c == EOF) break; switch(c) { @@ -193,6 +195,9 @@ int main (int argc, char *argv[]) case 'A': hide_adapter = 1; break; + case 'U': + hide_unknown = 1; + break; case 'u': do_unknown = 1; break; @@ -400,6 +405,14 @@ void do_a_print(sensors_chip_name name) !strcmp(name.prefix, "w83697hf")) return; + /* do we know how to display it? */ + for(m = matches; m->prefix != NULL; m++) { + if(!strcmp(name.prefix, m->prefix)) break; + } + + if(m->prefix==NULL && hide_unknown) + return; + printf("%s\n",sprintf_chip_name(name)); adap = sensors_get_adapter_name(name.bus); if (adap && !hide_adapter) @@ -412,14 +425,10 @@ void do_a_print(sensors_chip_name name) if (do_unknown) print_unknown_chip(&name); else { - for(m = matches; m->prefix != NULL; m++) { - if(!strcmp(name.prefix, m->prefix)) { - m->fn(&name); - break; - } - } if(m->prefix == NULL) print_unknown_chip(&name); + else + m->fn(&name); } printf("\n"); }