summaryrefslogtreecommitdiffstats
path: root/redhat/applications/ksensors/ksensors-0.7.3-fix-min-max.patch
diff options
context:
space:
mode:
Diffstat (limited to 'redhat/applications/ksensors/ksensors-0.7.3-fix-min-max.patch')
-rw-r--r--redhat/applications/ksensors/ksensors-0.7.3-fix-min-max.patch79
1 files changed, 79 insertions, 0 deletions
diff --git a/redhat/applications/ksensors/ksensors-0.7.3-fix-min-max.patch b/redhat/applications/ksensors/ksensors-0.7.3-fix-min-max.patch
new file mode 100644
index 000000000..14b3cc61c
--- /dev/null
+++ b/redhat/applications/ksensors/ksensors-0.7.3-fix-min-max.patch
@@ -0,0 +1,79 @@
+diff -up ksensors-0.7.3/src/lmsensor.cpp.minmax ksensors-0.7.3/src/lmsensor.cpp
+--- ksensors-0.7.3/src/lmsensor.cpp.minmax 2007-11-11 15:12:24.000000000 +0100
++++ ksensors-0.7.3/src/lmsensor.cpp 2007-11-11 15:26:30.000000000 +0100
+@@ -40,17 +40,30 @@ bool LMSensor::init(const sensors_featur
+ char *label;
+ QString str;
+
+- bool min_max=false;
++ bool min_found=false;
++ bool max_found=false;
+ while( (*data= sensors_get_all_features(*chip_name, nr1, nr2)) && (*data)->mapping!=SENSORS_NO_MAPPING) {
+- str= (*data)->name;
+- if(str.find("_min")>=0 || str.find("_low")>=0) {
+- sensors_get_feature(*chip_name, (*data)->number, &valMin);
+- min_max=true;
+- }
+- else if(str.find("_max")>=0 || str.find("_over")>=0 || str.find("_high")>=0) {
+- sensors_get_feature(*chip_name, (*data)->number, &valMax);
+- min_max=true;
++ int len = strlen((*data)->name);
++ const char *postfix = (*data)->name + len - 4;
++
++ if (len < 5)
++ continue;
++
++ if((!strcmp(postfix, "_min") || !strcmp(postfix, "_low")) &&
++ !sensors_get_feature(*chip_name, (*data)->number, &valMin))
++ min_found=true;
++
++ if(!strcmp(postfix, "_max") &&
++ !sensors_get_feature(*chip_name, (*data)->number, &valMax)) {
++ max_found=true;
++ continue;
+ }
++
++ postfix--;
++
++ if((!strcmp(postfix, "_over") || !strcmp(postfix, "_high")) &&
++ !sensors_get_feature(*chip_name, (*data)->number, &valMax))
++ max_found=true;
+ }
+
+ double newVal;
+@@ -87,22 +100,21 @@ bool LMSensor::init(const sensors_featur
+ sensors_get_label(*chip_name,feature,&label);
+ setDescription(QString(label));
+
+- if(min_max){
+- if(min>max) {
+- double pivot= valMin;
+- min= max;
+- max= pivot;
+- }
+- setValueMax(max,dgCelsius);
+- setValueMin(min,dgCelsius);
+- setValue((max+min)/2,dgCelsius);
+- }
+- else {
+- setValueMax(70,dgCelsius);
+- setValueMin(0,dgCelsius);
+- setValue(newVal,dgCelsius);
++ if(min_found)
++ min = valMin;
++
++ if(max_found)
++ max = valMax;
++
++ if(min>max) {
++ double pivot= min;
++ min= max;
++ max= pivot;
+ }
+
++ setValueMax(max,dgCelsius);
++ setValueMin(min,dgCelsius);
++
+ readConfig();
+ updateValue();
+ setValueIdeal(getValue());