@@ -28,19 +28,19 @@ static double parseHwmonDir(FFstrbuf* dir, FFstrbuf* buffer)
2828 ffStrbufAppendS (dir , "temp1_input" );
2929
3030 if (!ffReadFileBuffer (dir -> chars , buffer ))
31- return 0.0 / 0.0 ;
31+ return FF_CPU_TEMP_UNSET ;
3232 }
3333
3434 ffStrbufSubstrBefore (dir , dirLength );
3535
36- double value = ffStrbufToDouble (buffer );// millidegree Celsius
36+ double value = ffStrbufToDouble (buffer , FF_CPU_TEMP_UNSET );// millidegree Celsius
3737
38- if (value != value )
39- return 0.0 / 0.0 ;
38+ if (value == FF_CPU_TEMP_UNSET )
39+ return FF_CPU_TEMP_UNSET ;
4040
4141 ffStrbufAppendS (dir , "name" );
4242 if (!ffReadFileBuffer (dir -> chars , buffer ))
43- return 0.0 / 0.0 ;
43+ return FF_CPU_TEMP_UNSET ;
4444
4545 ffStrbufTrimRightSpace (buffer );
4646
@@ -51,14 +51,17 @@ static double parseHwmonDir(FFstrbuf* dir, FFstrbuf* buffer)
5151 ffStrbufEqualS (buffer , "coretemp" ) // Intel
5252 ) return value / 1000. ;
5353
54- return 0.0 / 0.0 ;
54+ return FF_CPU_TEMP_UNSET ;
5555}
5656
5757static double detectTZTemp (FFstrbuf * buffer )
5858{
5959 if (ffReadFileBuffer ("/sys/class/thermal/thermal_zone0/temp" , buffer ))
60- return ffStrbufToDouble (buffer ) / 1000. ;
61- return 0.0 /0.0 ;
60+ {
61+ double value = ffStrbufToDouble (buffer , FF_CPU_TEMP_UNSET );// millidegree Celsius
62+ return value != FF_CPU_TEMP_UNSET ? value / 1000. : FF_CPU_TEMP_UNSET ;
63+ }
64+ return FF_CPU_TEMP_UNSET ;
6265}
6366
6467static double detectCPUTemp (void )
@@ -72,7 +75,7 @@ static double detectCPUTemp(void)
7275
7376 FF_AUTO_CLOSE_DIR DIR * dirp = opendir (baseDir .chars );
7477 if (dirp == NULL )
75- return 0.0 / 0.0 ;
78+ return FF_CPU_TEMP_UNSET ;
7679
7780 struct dirent * entry ;
7881 while ((entry = readdir (dirp )) != NULL )
@@ -84,7 +87,7 @@ static double detectCPUTemp(void)
8487 ffStrbufAppendC (& baseDir , '/' );
8588
8689 double result = parseHwmonDir (& baseDir , & buffer );
87- if (result == result )
90+ if (result != FF_CPU_TEMP_UNSET )
8891 return result ;
8992
9093 ffStrbufSubstrBefore (& baseDir , baseDirLength );
0 commit comments