# HG changeset patch # User nathan # Date 1198938384 -3600 # Node ID 6262df5a62164124de81a9f1bac4398b6a228408 # Parent dbe5f35a0fa4144287c20ae31114b657d214d8ff release 0.6.5beta diff -r dbe5f35a0fa4 -r 6262df5a6216 CHANGES --- a/CHANGES Sat Dec 29 15:25:31 2007 +0100 +++ b/CHANGES Sat Dec 29 15:26:24 2007 +0100 @@ -1,3 +1,10 @@ +0.6.5beta +--------- +- fixed adding a track to a virtual image >2GB. +- fixed media size detection for DVD+. +- Prevent filename change when restoring a multidisk virtual + image from a non-regular filename (e.g. /dev/cdrom). + 0.6.4beta --------- - added support for file based backups (virtual image). diff -r dbe5f35a0fa4 -r 6262df5a6216 cdbackup.c --- a/cdbackup.c Sat Dec 29 15:25:31 2007 +0100 +++ b/cdbackup.c Sat Dec 29 15:26:24 2007 +0100 @@ -142,8 +142,13 @@ else { char buff[256]; while(fgets(buff,sizeof(buff),p)) { - if(dvd && !strncmp(buff,"rzone size:",11)) size=strtol(&buff[12],NULL,10); - else if(!strncmp(buff," ATIP start of lead out:",25)) size=strtol(&buff[26],NULL,10); + if(dvd) { + /* DVD-R */ + if(!strncmp(buff,"rzone size:",11)) size=strtol(&buff[11],NULL,10); + /* DVD+R */ + else if(!strncmp(buff,"phys size:...",13)) size=strtol(&buff[13],NULL,10); + } + else if(!strncmp(buff," ATIP start of lead out:",25)) size=strtol(&buff[25],NULL,10); } } pclose(p); diff -r dbe5f35a0fa4 -r 6262df5a6216 version.h --- a/version.h Sat Dec 29 15:25:31 2007 +0100 +++ b/version.h Sat Dec 29 15:26:24 2007 +0100 @@ -2,7 +2,7 @@ #define _CDBACKUP_VERSION_H #ifndef VERSION -#define VERSION "0.6.4beta" +#define VERSION "0.6.5beta" #endif #endif diff -r dbe5f35a0fa4 -r 6262df5a6216 virtual-backup.c --- a/virtual-backup.c Sat Dec 29 15:25:31 2007 +0100 +++ b/virtual-backup.c Sat Dec 29 15:26:24 2007 +0100 @@ -67,7 +67,7 @@ virtualMissing=0; } if(virt_header->tracks>=MAX_VIRT_TRACKS-1) serror("Maximum number of virtual tracks reached"); - pos=(virt_header->start[virt_header->tracks]=virt_header->leadout)*CD_FRAMESIZE; + pos=(long long)(virt_header->start[virt_header->tracks]=virt_header->leadout)*CD_FRAMESIZE; virt_header->tracks++; if(lseek64(fd,pos,SEEK_SET)<0) error("Seek failed (new track)"); } diff -r dbe5f35a0fa4 -r 6262df5a6216 virtual.c --- a/virtual.c Sat Dec 29 15:25:31 2007 +0100 +++ b/virtual.c Sat Dec 29 15:26:24 2007 +0100 @@ -49,7 +49,7 @@ static unsigned char virt_buffer[VIRT_HEADER_LEN]; struct virt_header *virt_header=(struct virt_header *)virt_buffer; -int virtualMissing=0, virt_off=-1, virt_regular; +int virtualMissing=0, virt_off=-1, virt_regular=0; char *real_virt_name=0; extern int virtual; @@ -67,7 +67,7 @@ } else { free(real_virt_name); - if(disknum==1) { + if(disknum==1 || !virt_regular) { real_virt_name=strdup(virt_name); } else if(virt_off>0) {