avoid local var
[psensor.git] / src / main.c
index 1eea594..dce4573 100644 (file)
@@ -227,20 +227,28 @@ static void cb_alarm_raised(struct psensor *sensor, void *data)
 static void
 associate_cb_alarm_raised(struct psensor **sensors, struct ui_psensor *ui)
 {
-       struct psensor **sensor_cur = sensors;
+       bool ret;
+       struct psensor *s;
 
-       while (*sensor_cur) {
-               struct psensor *s = *sensor_cur;
+       while (*sensors) {
+               s = *sensors;
 
                s->cb_alarm_raised = cb_alarm_raised;
                s->cb_alarm_raised_data = ui;
 
-               s->alarm_high_threshold
-                       = config_get_sensor_alarm_high_threshold(s->id);
-               s->alarm_low_threshold
-                       = config_get_sensor_alarm_low_threshold(s->id);
+               ret = config_get_sensor_alarm_high_threshold
+                       (s->id, &s->alarm_high_threshold);
 
-               sensor_cur++;
+               if (!ret && s->max != UNKNOWN_DBL_VALUE)
+                       s->alarm_high_threshold = s->max;
+
+               ret = config_get_sensor_alarm_low_threshold
+                       (s->id, &s->alarm_low_threshold);
+
+               if (!ret && s->min != UNKNOWN_DBL_VALUE)
+                       s->alarm_low_threshold = s->min;
+
+               sensors++;
        }
 }