Revert "Imported Upstream version 7.44.0"
[platform/upstream/curl.git] / docs / examples / fopen.c
index de9ce19..3d2a817 100644 (file)
  *
  * This example requires libcurl 7.9.7 or later.
  */
-/* <DESC>
- * implements an fopen() abstraction allowing reading from URLs
- * </DESC>
- */
 
 #include <stdio.h>
 #include <string.h>
@@ -112,7 +108,7 @@ static size_t write_callback(char *buffer,
       size=rembuff;
     }
     else {
-      /* realloc succeeded increase buffer size*/
+      /* realloc suceeded increase buffer size*/
       url->buffer_len+=size - rembuff;
       url->buffer=newbuff;
     }
@@ -135,7 +131,7 @@ static int fill_buffer(URL_FILE *file, size_t want)
   CURLMcode mc; /* curl_multi_fdset() return code */
 
   /* only attempt to fill buffer if transactions still running and buffer
-   * doesn't exceed required size already
+   * doesnt exceed required size already
    */
   if((!file->still_running) || (file->buffer_pos > want))
     return 0;
@@ -209,12 +205,14 @@ static int fill_buffer(URL_FILE *file, size_t want)
 }
 
 /* use to remove want bytes from the front of a files buffer */
-static int use_buffer(URL_FILE *file, size_t want)
+static int use_buffer(URL_FILE *file,int want)
 {
   /* sort out buffer */
   if((file->buffer_pos - want) <=0) {
     /* ditch buffer - write will recreate */
-    free(file->buffer);
+    if(file->buffer)
+      free(file->buffer);
+
     file->buffer=NULL;
     file->buffer_pos=0;
     file->buffer_len=0;
@@ -233,7 +231,7 @@ static int use_buffer(URL_FILE *file, size_t want)
 URL_FILE *url_fopen(const char *url,const char *operation)
 {
   /* this code could check for URLs or types in the 'url' and
-     basically use the real fopen() for standard files */
+     basicly use the real fopen() for standard files */
 
   URL_FILE *file;
   (void)operation;
@@ -304,7 +302,9 @@ int url_fclose(URL_FILE *file)
     break;
   }
 
-  free(file->buffer);/* free any allocated buffer space */
+  if(file->buffer)
+    free(file->buffer);/* free any allocated buffer space */
+
   free(file);
 
   return ret;
@@ -379,7 +379,7 @@ char *url_fgets(char *ptr, size_t size, URL_FILE *file)
 
   switch(file->type) {
   case CFTYPE_FILE:
-    ptr = fgets(ptr, (int)size, file->handle.file);
+    ptr = fgets(ptr,size,file->handle.file);
     break;
 
   case CFTYPE_CURL:
@@ -435,7 +435,9 @@ void url_rewind(URL_FILE *file)
     curl_multi_add_handle(multi_handle, file->handle.curl);
 
     /* ditch buffer - write will recreate - resets stream pos*/
-    free(file->buffer);
+    if(file->buffer)
+      free(file->buffer);
+
     file->buffer=NULL;
     file->buffer_pos=0;
     file->buffer_len=0;
@@ -455,7 +457,7 @@ int main(int argc, char *argv[])
   URL_FILE *handle;
   FILE *outf;
 
-  size_t nread;
+  int nread;
   char buffer[256];
   const char *url;
 
@@ -503,7 +505,7 @@ int main(int argc, char *argv[])
   }
 
   do {
-    nread = url_fread(buffer, 1, sizeof(buffer), handle);
+    nread = url_fread(buffer, 1,sizeof(buffer), handle);
     fwrite(buffer,1,nread,outf);
   } while(nread);