Fixed a bug for level 0 which must now be defined in the configuration file.
[breezed.git] / breezed.c
index e8043df..6c4895b 100644 (file)
--- a/breezed.c
+++ b/breezed.c
@@ -155,7 +155,7 @@ void define_temperature_thresholds(char *definition) {
     exit(EXIT_FAILURE);
   }
 
-  nb_temperature_thresholds = 1;
+  nb_temperature_thresholds = 0;
 
   char *s, *u;
 
@@ -171,14 +171,12 @@ void define_temperature_thresholds(char *definition) {
   speed_names =
     safe_malloc(nb_temperature_thresholds * sizeof(char *));
 
-  temperature_thresholds[0] = -1;
-
   s = definition;
-  int k = 1;
+  int k = 0;
   while(s) {
     s = next_word(token, s, buffer_size);
     u = token;
-    while(*u && *u != ':') u++;
+    while(*u && *u != ':') { u++; }
     if(*u) {
       *u = '\0';
       temperature_thresholds[k] = atoi(token);
@@ -193,10 +191,21 @@ void define_temperature_thresholds(char *definition) {
     if(k > 0 &&
        temperature_thresholds[k] < temperature_thresholds[k-1]) {
       fprintf(stderr, "The temperature thresholds have to be increasing.\n");
-      exit(0);
+      exit(EXIT_FAILURE);
     }
     k++;
   }
+
+  if(nb_temperature_thresholds <= 0) {
+    fprintf(stderr, "There has to be at least one temperature.\n");
+    exit(EXIT_FAILURE);
+  }
+
+  if(temperature_thresholds[0] > 0) {
+    fprintf(stderr, "The lowest temperature has to be 0.\n");
+    exit(EXIT_FAILURE);
+  }
+
 }
 
 void evaluate_one_configuration_line(char *line, int line_number) {
@@ -615,8 +624,10 @@ Written by Francois Fleuret (francois@fleuret.org).\n",
       nb_rounds_since_last_change = 0;
       last_level = new_level;
       if(debug) {
-        printf("Temperature is %dC setting the fan level to %d.\n",
-               temperature, new_level);
+        printf("Temperature is %dC setting the fan level to %d (%s).\n",
+               temperature,
+               new_level,
+               speed_names[new_level]);
       }
     }