From 9dbd6659dc9611110bc48614ee22e40b3935576f Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Tue, 10 Aug 2004 06:41:13 +0000
Subject: [PATCH] more typecasts to please picky compilers

---
 lib/ftp.c      | 2 +-
 lib/progress.c | 2 +-
 lib/transfer.c | 6 ++++--
 src/main.c     | 8 ++++++--
 4 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/lib/ftp.c b/lib/ftp.c
index 88c9753a71..fb99243e77 100644
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -1690,7 +1690,7 @@ CURLcode Curl_ftp_nextconnect(struct connectdata *conn)
           if(readthisamountnow > BUFSIZE)
             readthisamountnow = BUFSIZE;
 
-          actuallyread =
+          actuallyread = (curl_off_t)
             conn->fread(data->state.buffer, 1, (size_t)readthisamountnow,
                         conn->fread_in);
 
diff --git a/lib/progress.c b/lib/progress.c
index c6517ad0a7..7294894a71 100644
--- a/lib/progress.c
+++ b/lib/progress.c
@@ -332,7 +332,7 @@ int Curl_pgrsUpdate(struct connectdata *conn)
         /* the 'amount' value is bigger than would fit in 32 bits if
            multiplied with 1000, so we use the double math for this */
         data->progress.current_speed = (curl_off_t)
-          ((double)amount/(span_ms/1000.0));
+          ((double)amount/((double)span_ms/1000.0));
       else
         /* the 'amount' value is small enough to fit within 32 bits even
            when multiplied with 1000 */
diff --git a/lib/transfer.c b/lib/transfer.c
index 5fab2ffbea..93df4c589a 100644
--- a/lib/transfer.c
+++ b/lib/transfer.c
@@ -137,8 +137,10 @@ CURLcode Curl_fillreadbuffer(struct connectdata *conn, int bytes, int *nreadp)
     conn->upload_fromhere += 10; /* 32bit hex + CRLF */
   }
 
-  nread = conn->fread(conn->upload_fromhere, 1,
-                      buffersize, conn->fread_in);
+  /* this function returns a size_t, so we typecast to int to prevent warnings
+     with picky compilers */
+  nread = (int)conn->fread(conn->upload_fromhere, 1,
+                           buffersize, conn->fread_in);
 
   if(nread == CURL_READFUNC_ABORT) {
     failf(data, "operation aborted by callback\n");
diff --git a/src/main.c b/src/main.c
index a0c04dc686..03c854d1aa 100644
--- a/src/main.c
+++ b/src/main.c
@@ -2279,7 +2279,9 @@ static int my_fwrite(void *buffer, size_t sz, size_t nmemb, void *stream)
   int rc;
   struct OutStruct *out=(struct OutStruct *)stream;
   struct Configurable *config = out->config;
-  curl_off_t size = sz * nmemb;
+  curl_off_t size = (curl_off_t)(sz * nmemb); /* typecast to prevent
+                                                 warnings when converting from
+                                                 unsigned to signed */
   if(out && !out->stream) {
     /* open file for writing */
     out->stream=fopen(out->filename, "wb");
@@ -2354,7 +2356,9 @@ static int my_fread(void *buffer, size_t sz, size_t nmemb, void *userp)
 {
   struct InStruct *in=(struct InStruct *)userp;
   struct Configurable *config = in->config;
-  curl_off_t size = sz * nmemb;
+  curl_off_t size = (curl_off_t)(sz * nmemb);  /* typecast to prevent warnings
+                                                  when converting from
+                                                  unsigned to signed */
 
   if(config->sendpersecond) {
     /*
-- 
GitLab