commit dca4c677237b01768f5d6d798a2d918547d2ee8e Author: Timothy Pearson Date: 1341289561 -0500 Update iso kioslave to better handle large images diff --git a/kioslave/iso/kiso.cpp b/kioslave/iso/kiso.cpp index c9e2d43..9ec1f1c 100644 --- a/kioslave/iso/kiso.cpp +++ b/kioslave/iso/kiso.cpp @@ -188,7 +188,7 @@ KIso::~KIso() } /* callback function for libisofs */ -static int readf(char *buf, long start, long len,void *udata) { +static int readf(char *buf, long long start, long long len,void *udata) { TQIODevice* dev = ( static_cast (udata) )->device(); diff --git a/kioslave/iso/libisofs/isofs.c b/kioslave/iso/libisofs/isofs.c index e599450..f1db442 100644 --- a/kioslave/iso/libisofs/isofs.c +++ b/kioslave/iso/libisofs/isofs.c @@ -122,7 +122,7 @@ void FreeBootTable(boot_head *boot) { boot->defentry=NULL; } -int BootImageSize(int media,long len) { +int BootImageSize(int media,long long len) { long long ret; switch(media & 0xf) { @@ -158,7 +158,7 @@ static boot_entry *CreateBootEntry(char *be) { return entry; } -int ReadBootTable(readfunc *read,long sector, boot_head *head, void *udata) { +int ReadBootTable(readfunc *read,long long sector, boot_head *head, void *udata) { char buf[2048], *c, *be; int i,end=0; @@ -221,7 +221,7 @@ err: /** * Creates the linked list of the volume descriptors */ -iso_vol_desc *ReadISO9660(readfunc *read,long sector,void *udata) { +iso_vol_desc *ReadISO9660(readfunc *read,long long sector,void *udata) { int i; struct iso_volume_descriptor buf; @@ -577,7 +577,7 @@ int level=0,joliet=0,dirs,files; iconv_t iconv_d; int fd; -int readf(char *buf, long start, long len,void *udata) { +int readf(char *buf, long long start, long long len,void *udata) { int ret; if ((ret=lseek64(fd, start << 11, SEEK_SET))<0) return ret; diff --git a/kioslave/iso/libisofs/isofs.h b/kioslave/iso/libisofs/isofs.h index b8971a4..1d17de4 100644 --- a/kioslave/iso/libisofs/isofs.h +++ b/kioslave/iso/libisofs/isofs.h @@ -50,13 +50,13 @@ typedef struct _rr_entry { int re; /* relocated */ char z_algo[2]; /* zizofs algorithm */ char z_params[2]; /* zizofs parameters */ - long z_size; /* zizofs real_size */ + long long z_size; /* zizofs real_size */ } rr_entry; typedef struct _iso_vol_desc { struct _iso_vol_desc *next; struct _iso_vol_desc *prev; - struct iso_volume_descriptor data; + struct iso_volume_descriptor data; } iso_vol_desc; typedef struct _boot_entry { @@ -78,7 +78,7 @@ typedef struct _boot_head { /** * this callback function needs to read 'len' sectors from 'start' into 'buf' */ -typedef int readfunc(char *buf,long start, long len,void *); +typedef int readfunc(char *buf,long long start, long long len,void *); /** * ProcessDir uses this callback @@ -107,7 +107,7 @@ time_t isodate_84261(char * p, int hs); * If the function fails, returns NULL * Don't forget to call FreeISO9660 after using the volume descriptor list! */ -iso_vol_desc *ReadISO9660(readfunc *read,long sector,void *udata); +iso_vol_desc *ReadISO9660(readfunc *read,long long sector,void *udata); /** * Frees the linked list of volume descriptors @@ -140,7 +140,7 @@ int JolietLevel(struct iso_volume_descriptor *ivd); /** * Returns the size of the boot image (in 512 byte sectors) */ -int BootImageSize(int media,long len); +int BootImageSize(int media,long long len); /** * Frees the boot catalog entries in 'boot'. If you ever called ReadBootTable, @@ -151,7 +151,7 @@ void FreeBootTable(boot_head *boot); /** * Reads the boot catalog into 'head'. Don't forget to call FreeBootTable! */ -int ReadBootTable(readfunc *read,long sector, boot_head *head, void *udata); +int ReadBootTable(readfunc *read,long long sector, boot_head *head, void *udata); #ifdef __cplusplus } //extern "C"