lib/dload.c: fix compiler warnings generated by -Wfloat-equal
* introduces new macro in util.h (DOUBLE_EQ) for properly comparing floating point values Signed-off-by: Dave Reisner <d@falconindy.com> Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
parent
db49c4a7f0
commit
768451c5e3
2 changed files with 8 additions and 3 deletions
|
@ -92,7 +92,7 @@ static int curl_progress(void *filename, double dltotal, double dlnow,
|
||||||
(void)ultotal;
|
(void)ultotal;
|
||||||
(void)ulnow;
|
(void)ulnow;
|
||||||
|
|
||||||
if(dltotal == 0 || prevprogress == dltotal) {
|
if(DOUBLE_EQ(dltotal, 0) || DOUBLE_EQ(prevprogress, dltotal)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -230,7 +230,7 @@ static int curl_download_internal(const char *url, const char *localpath,
|
||||||
|
|
||||||
/* time condition was met and we didn't download anything. we need to
|
/* time condition was met and we didn't download anything. we need to
|
||||||
* clean up the 0 byte .part file that's left behind. */
|
* clean up the 0 byte .part file that's left behind. */
|
||||||
if(bytes_dl == 0 && timecond == 1) {
|
if(DOUBLE_EQ(bytes_dl, 0) && timecond == 1) {
|
||||||
ret = 1;
|
ret = 1;
|
||||||
unlink(tempfile);
|
unlink(tempfile);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
@ -249,7 +249,8 @@ static int curl_download_internal(const char *url, const char *localpath,
|
||||||
/* remote_size isn't necessarily the full size of the file, just what the
|
/* remote_size isn't necessarily the full size of the file, just what the
|
||||||
* server reported as remaining to download. compare it to what curl reported
|
* server reported as remaining to download. compare it to what curl reported
|
||||||
* as actually being transferred during curl_easy_perform() */
|
* as actually being transferred during curl_easy_perform() */
|
||||||
if((remote_size != -1 && bytes_dl != -1) && bytes_dl != remote_size) {
|
if(!DOUBLE_EQ(remote_size, -1) && !DOUBLE_EQ(bytes_dl, -1) &&
|
||||||
|
!DOUBLE_EQ(bytes_dl, remote_size)) {
|
||||||
pm_errno = PM_ERR_RETRIEVE;
|
pm_errno = PM_ERR_RETRIEVE;
|
||||||
_alpm_log(PM_LOG_ERROR, _("%s appears to be truncated: %jd/%jd bytes\n"),
|
_alpm_log(PM_LOG_ERROR, _("%s appears to be truncated: %jd/%jd bytes\n"),
|
||||||
filename, (intmax_t)bytes_dl, (intmax_t)remote_size);
|
filename, (intmax_t)bytes_dl, (intmax_t)remote_size);
|
||||||
|
|
|
@ -36,6 +36,8 @@
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <sys/stat.h> /* struct stat */
|
#include <sys/stat.h> /* struct stat */
|
||||||
#include <archive.h> /* struct archive */
|
#include <archive.h> /* struct archive */
|
||||||
|
#include <math.h> /* fabs */
|
||||||
|
#include <float.h> /* DBL_EPSILON */
|
||||||
|
|
||||||
#ifdef ENABLE_NLS
|
#ifdef ENABLE_NLS
|
||||||
#include <libintl.h> /* here so it doesn't need to be included elsewhere */
|
#include <libintl.h> /* here so it doesn't need to be included elsewhere */
|
||||||
|
@ -61,6 +63,8 @@
|
||||||
_alpm_log(PM_LOG_DEBUG, "returning error %d from %s : %s\n", err, __func__, alpm_strerrorlast()); \
|
_alpm_log(PM_LOG_DEBUG, "returning error %d from %s : %s\n", err, __func__, alpm_strerrorlast()); \
|
||||||
return (ret); } while(0)
|
return (ret); } while(0)
|
||||||
|
|
||||||
|
#define DOUBLE_EQ(x, y) (fabs((x) - (y)) < DBL_EPSILON)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Used as a buffer/state holder for _alpm_archive_fgets().
|
* Used as a buffer/state holder for _alpm_archive_fgets().
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Reference in a new issue