simplify the code, from xtraeme.
This commit is contained in:
parent
395dc81b92
commit
7b65855e71
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: envstat.c,v 1.68 2008/05/25 20:03:05 christos Exp $ */
|
/* $NetBSD: envstat.c,v 1.69 2008/08/09 04:49:23 christos Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 2007, 2008 Juan Romero Pardines.
|
* Copyright (c) 2007, 2008 Juan Romero Pardines.
|
||||||
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
#ifndef lint
|
#ifndef lint
|
||||||
__RCSID("$NetBSD: envstat.c,v 1.68 2008/05/25 20:03:05 christos Exp $");
|
__RCSID("$NetBSD: envstat.c,v 1.69 2008/08/09 04:49:23 christos Exp $");
|
||||||
#endif /* not lint */
|
#endif /* not lint */
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -315,7 +315,7 @@ send_dictionary(FILE *cf, int fd)
|
||||||
}
|
}
|
||||||
|
|
||||||
static sensor_stats_t
|
static sensor_stats_t
|
||||||
find_stats_sensor(const char *desc, bool alloc)
|
find_stats_sensor(const char *desc)
|
||||||
{
|
{
|
||||||
sensor_stats_t stats;
|
sensor_stats_t stats;
|
||||||
|
|
||||||
|
@ -327,18 +327,14 @@ find_stats_sensor(const char *desc, bool alloc)
|
||||||
if (strcmp(stats->desc, desc) == 0)
|
if (strcmp(stats->desc, desc) == 0)
|
||||||
return stats;
|
return stats;
|
||||||
|
|
||||||
if (alloc) {
|
stats = calloc(1, sizeof(*stats));
|
||||||
/*
|
if (stats == NULL)
|
||||||
* don't bother with return value, the caller will check
|
|
||||||
* if it's NULL or not.
|
|
||||||
*/
|
|
||||||
stats = calloc(1, sizeof(*stats));
|
|
||||||
(void)strlcpy(stats->desc, desc, sizeof(stats->desc));
|
|
||||||
SIMPLEQ_INSERT_TAIL(&sensor_stats_list, stats, entries);
|
|
||||||
return stats;
|
|
||||||
} else
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
(void)strlcpy(stats->desc, desc, sizeof(stats->desc));
|
||||||
|
SIMPLEQ_INSERT_TAIL(&sensor_stats_list, stats, entries);
|
||||||
|
|
||||||
|
return stats;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -591,12 +587,18 @@ find_sensors(prop_array_t array, const char *dvname, dvprops_t edp)
|
||||||
|
|
||||||
/* Collect statistics if flag enabled */
|
/* Collect statistics if flag enabled */
|
||||||
if (statistics) {
|
if (statistics) {
|
||||||
|
/* ignore sensors not relevant for statistics */
|
||||||
|
if ((strcmp(sensor->type, "Indicator") == 0) ||
|
||||||
|
(strcmp(sensor->type, "Battery charge") == 0) ||
|
||||||
|
(strcmp(sensor->type, "Drive") == 0))
|
||||||
|
continue;
|
||||||
|
|
||||||
/* ignore invalid data */
|
/* ignore invalid data */
|
||||||
if (!sensor->cur_value)
|
if (sensor->invalid || !sensor->cur_value)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* find or allocate a new statistics sensor */
|
/* find or allocate a new statistics sensor */
|
||||||
stats = find_stats_sensor(sensor->desc, true);
|
stats = find_stats_sensor(sensor->desc);
|
||||||
if (stats == NULL) {
|
if (stats == NULL) {
|
||||||
free(sensor);
|
free(sensor);
|
||||||
prop_object_iterator_release(iter);
|
prop_object_iterator_release(iter);
|
||||||
|
@ -751,6 +753,15 @@ print_sensors(void)
|
||||||
tmpstr = sensor->dvname;
|
tmpstr = sensor->dvname;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* find out the statistics sensor */
|
||||||
|
if (statistics) {
|
||||||
|
stats = find_stats_sensor(sensor->desc);
|
||||||
|
if (stats == NULL) {
|
||||||
|
/* No statistics for this sensor */
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* print sensor description */
|
/* print sensor description */
|
||||||
(void)printf("%s%*.*s", mydevname ? "" : " ", (int)maxlen,
|
(void)printf("%s%*.*s", mydevname ? "" : " ", (int)maxlen,
|
||||||
(int)maxlen, sensor->desc);
|
(int)maxlen, sensor->desc);
|
||||||
|
@ -761,15 +772,6 @@ print_sensors(void)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* find out the statistics sensor */
|
|
||||||
if (statistics) {
|
|
||||||
stats = find_stats_sensor(sensor->desc, false);
|
|
||||||
if (stats == NULL) {
|
|
||||||
/* No statistics for this sensor */
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Indicator and Battery charge sensors.
|
* Indicator and Battery charge sensors.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue