components/cdrtools/patches/write.c.patch
branchs11-update
changeset 2777 5527c7ce8396
parent 356 cc77dce0ea27
--- a/components/cdrtools/patches/write.c.patch	Mon Sep 23 23:03:10 2013 -0700
+++ b/components/cdrtools/patches/write.c.patch	Wed Sep 25 13:44:05 2013 -0700
@@ -1,6 +1,36 @@
---- cdrtools-3.00/mkisofs/write.c.orig	Tue Jun 28 15:31:20 2011
-+++ cdrtools-3.00/mkisofs/write.c	Tue Jun 28 15:32:46 2011
-@@ -1978,6 +1978,7 @@
+# This patch is made from a diff of versions 3.00 and 3.01a01.
+
+--- cdrtools-3.00/mkisofs/write.c.orig	2012-11-01 01:25:32.964412979 -0700
++++ cdrtools-3.00/mkisofs/write.c	2012-11-01 01:25:47.946345028 -0700
+@@ -1005,9 +1005,25 @@
+ 	for (i = 0, dwpnt = dw_head; i < num; i++, dwpnt = dwpnt->next) {
+ 		s_entry = dwpnt->s_entry;
+ 		dwpnt->extent = s_entry->starting_block = start_extent;
+-		set_733((char *)s_entry->isorec.extent, start_extent);
+ 
+-		start_extent += ISO_BLOCKS(s_entry->size);
++		if (s_entry->de_flags & MULTI_EXTENT) {
++			struct directory_entry  *s_e;
++
++			s_entry->mxroot->starting_block = start_extent;
++			set_733((char *)s_entry->mxroot->isorec.extent,
++								start_extent);
++			for (s_e = s_entry;      
++			    s_e && s_e->mxroot == s_entry->mxroot;
++			    s_e = s_e->next) {       
++				set_733((char *)s_e->isorec.extent,
++								start_extent);
++				s_entry->starting_block = start_extent;
++				start_extent += ISO_BLOCKS(s_e->size);
++			}
++		} else { 
++			set_733((char *)s_entry->isorec.extent, start_extent);
++			start_extent += ISO_BLOCKS(s_entry->size);
++		}
+ #ifdef DVD_VIDEO
+ 		/*
+ 		 * Shouldn't this be done for every type of sort? Otherwise
+@@ -1978,6 +1994,7 @@
  	int		i;
  	int		s;
  	Uchar		*cp;
@@ -8,7 +38,7 @@
  
  
  	time(&begun);
-@@ -2079,7 +2080,11 @@
+@@ -2079,7 +2096,11 @@
  	FILL_SPACE(application_data);
  
  	memcpy(vol_desc.creation_date, iso_time, 17);