components/cdrtools/patches/write.c.patch
branchs11-update
changeset 2777 5527c7ce8396
parent 356 cc77dce0ea27
equal deleted inserted replaced
2776:04b68d70e1f1 2777:5527c7ce8396
     1 --- cdrtools-3.00/mkisofs/write.c.orig	Tue Jun 28 15:31:20 2011
     1 # This patch is made from a diff of versions 3.00 and 3.01a01.
     2 +++ cdrtools-3.00/mkisofs/write.c	Tue Jun 28 15:32:46 2011
     2 
     3 @@ -1978,6 +1978,7 @@
     3 --- cdrtools-3.00/mkisofs/write.c.orig	2012-11-01 01:25:32.964412979 -0700
       
     4 +++ cdrtools-3.00/mkisofs/write.c	2012-11-01 01:25:47.946345028 -0700
       
     5 @@ -1005,9 +1005,25 @@
       
     6  	for (i = 0, dwpnt = dw_head; i < num; i++, dwpnt = dwpnt->next) {
       
     7  		s_entry = dwpnt->s_entry;
       
     8  		dwpnt->extent = s_entry->starting_block = start_extent;
       
     9 -		set_733((char *)s_entry->isorec.extent, start_extent);
       
    10  
       
    11 -		start_extent += ISO_BLOCKS(s_entry->size);
       
    12 +		if (s_entry->de_flags & MULTI_EXTENT) {
       
    13 +			struct directory_entry  *s_e;
       
    14 +
       
    15 +			s_entry->mxroot->starting_block = start_extent;
       
    16 +			set_733((char *)s_entry->mxroot->isorec.extent,
       
    17 +								start_extent);
       
    18 +			for (s_e = s_entry;      
       
    19 +			    s_e && s_e->mxroot == s_entry->mxroot;
       
    20 +			    s_e = s_e->next) {       
       
    21 +				set_733((char *)s_e->isorec.extent,
       
    22 +								start_extent);
       
    23 +				s_entry->starting_block = start_extent;
       
    24 +				start_extent += ISO_BLOCKS(s_e->size);
       
    25 +			}
       
    26 +		} else { 
       
    27 +			set_733((char *)s_entry->isorec.extent, start_extent);
       
    28 +			start_extent += ISO_BLOCKS(s_entry->size);
       
    29 +		}
       
    30  #ifdef DVD_VIDEO
       
    31  		/*
       
    32  		 * Shouldn't this be done for every type of sort? Otherwise
       
    33 @@ -1978,6 +1994,7 @@
     4  	int		i;
    34  	int		i;
     5  	int		s;
    35  	int		s;
     6  	Uchar		*cp;
    36  	Uchar		*cp;
     7 +	extern		char *modification_date;
    37 +	extern		char *modification_date;
     8  
    38  
     9  
    39  
    10  	time(&begun);
    40  	time(&begun);
    11 @@ -2079,7 +2080,11 @@
    41 @@ -2079,7 +2096,11 @@
    12  	FILL_SPACE(application_data);
    42  	FILL_SPACE(application_data);
    13  
    43  
    14  	memcpy(vol_desc.creation_date, iso_time, 17);
    44  	memcpy(vol_desc.creation_date, iso_time, 17);
    15 -	memcpy(vol_desc.modification_date, iso_time, 17);
    45 -	memcpy(vol_desc.modification_date, iso_time, 17);
    16 +	if (modification_date == NULL) {
    46 +	if (modification_date == NULL) {