diff options
author | Christophe Grenier <[email protected]> | 2014-10-04 18:09:48 +0200 |
---|---|---|
committer | Christophe Grenier <[email protected]> | 2014-10-04 18:09:48 +0200 |
commit | c28950032981dafb83ec5c568a16e030c4467226 (patch) | |
tree | 05156e7f64df839808af64cd455c8b864a1eda18 /src/file_pdf.c | |
parent | 4c5fcd4164b7fd06eafa54fa44ecfb9fb2d02d00 (diff) |
Use fseeko() instead of fseek().
Fix 2GB per file limit on Windows for some file types.
Diffstat (limited to 'src/file_pdf.c')
-rw-r--r-- | src/file_pdf.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/file_pdf.c b/src/file_pdf.c index d82a1ec7..509b0a13 100644 --- a/src/file_pdf.c +++ b/src/file_pdf.c @@ -76,7 +76,11 @@ static void file_rename_pdf(const char *old_filename) const unsigned char utf16[3]= { 0xfe, 0xff, 0x00}; if((handle=fopen(old_filename, "rb"))==NULL) return; +#ifdef HAVE_FSEEKO + if(fseeko(handle, 0, SEEK_END)<0) +#else if(fseek(handle, 0, SEEK_END)<0) +#endif { fclose(handle); return; @@ -198,7 +202,11 @@ static void file_check_pdf_and_size(file_recovery_t *file_recovery) int i; int taille; file_recovery->file_size=file_recovery->calculated_file_size; +#ifdef HAVE_FSEEKO + if(fseeko(file_recovery->handle,file_recovery->file_size-read_size,SEEK_SET)<0) +#else if(fseek(file_recovery->handle,file_recovery->file_size-read_size,SEEK_SET)<0) +#endif { file_recovery->file_size=0; return ; @@ -230,7 +238,11 @@ static void file_date_pdf(file_recovery_t *file_recovery) uint64_t offset=0; unsigned int j=0; unsigned char*buffer=(unsigned char*)MALLOC(4096); +#ifdef HAVE_FSEEKO + if(fseeko(file_recovery->handle, 0, SEEK_SET)<0) +#else if(fseek(file_recovery->handle, 0, SEEK_SET)<0) +#endif { free(buffer); return ; @@ -252,7 +264,11 @@ static void file_date_pdf(file_recovery_t *file_recovery) { const unsigned char *date_asc; struct tm tm_time; +#ifdef HAVE_FSEEKO + if(fseeko(file_recovery->handle, offset+i+1, SEEK_SET)<0) +#else if(fseek(file_recovery->handle, offset+i+1, SEEK_SET)<0) +#endif { free(buffer); return ; |