]> git.ipfire.org Git - thirdparty/sarg.git/blobdiff - longline.c
Restore support for bzip2 files
[thirdparty/sarg.git] / longline.c
index ff8b00005d18c0c3d403f0ab7ce670d1b9e0e6fa..2e4761d919a982c5ab7c84ce6f9d826b778c0557 100644 (file)
@@ -94,11 +94,11 @@ void longline_reset(longline line)
        }
 }
 
-char *longline_read(FILE *fp_in,longline line)
+char *longline_read(FileObject *fp_in,longline line)
 {
        int i;
        char *newbuf;
-       size_t nread;
+       int nread;
 
        if (line==NULL || line->buffer==NULL) return(NULL);
 
@@ -108,8 +108,8 @@ char *longline_read(FILE *fp_in,longline line)
                        line->end=i;
                        break;
                }
-               nread=(feof(fp_in)!=0) ? 0 : fread(line->buffer,1,line->size,fp_in);
-               if (nread==0) return(NULL);
+               nread=(FileObject_Eof(fp_in)!=0) ? 0 : FileObject_Read(fp_in,line->buffer,line->size);
+               if (nread<=0) return(NULL);
                line->length=nread;
                line->end=0;
        }
@@ -143,8 +143,8 @@ char *longline_read(FILE *fp_in,longline line)
                        }
                        line->buffer=newbuf;
                }
-               nread=(feof(fp_in)!=0) ? 0 : fread(line->buffer+line->length,1,line->size-line->length,fp_in);
-               if (nread==0) {
+               nread=(FileObject_Eof(fp_in)!=0) ? 0 : FileObject_Read(fp_in,line->buffer+line->length,line->size-line->length);
+               if (nread<=0) {
                        if (line->end<=line->start) return(NULL);
                        if (line->end>=line->size) {
                                line->end=line->size;