[Debburn-changes] r633 - cdrkit/trunk/wodim

Eduard Bloch blade at alioth.debian.org
Wed Dec 27 13:45:08 CET 2006


Author: blade
Date: 2006-12-27 13:45:07 +0100 (Wed, 27 Dec 2006)
New Revision: 633

Modified:
   cdrkit/trunk/wodim/wodim.1
   cdrkit/trunk/wodim/wodim.c
Log:
Implemented the msifile= option to store the ms info in a file rather than pushing it trough stdout

Modified: cdrkit/trunk/wodim/wodim.1
===================================================================
--- cdrkit/trunk/wodim/wodim.1	2006-12-27 11:46:48 UTC (rev 632)
+++ cdrkit/trunk/wodim/wodim.1	2006-12-27 12:45:07 UTC (rev 633)
@@ -444,13 +444,21 @@
 .TP
 .B \-msinfo
 Retrieve multi session info in a form suitable for 
-.B genisoimage .
+.B genisoimage
+and print it to standard output. See
+.B msisize=
+option for another version.
 .sp
 This option makes only sense with a CD that contains at least
 one closed session and is appendable (not finally closed yet). 
 Some drives create error messages if you try to get the multi 
 session info for a disk that is not suitable for this operation.
 .TP
+.BR msifile= filename
+Like 
+.B \-msinfo
+option but also stores the multi session info in a file.
+.TP
 .B \-toc
 Retrieve and print out the table of content or PMA of a CD.
 With this option, 

Modified: cdrkit/trunk/wodim/wodim.c
===================================================================
--- cdrkit/trunk/wodim/wodim.c	2006-12-27 11:46:48 UTC (rev 632)
+++ cdrkit/trunk/wodim/wodim.c	2006-12-27 12:45:07 UTC (rev 633)
@@ -271,6 +271,7 @@
 
 /* shared variables */
 int	scandevs = 0;
+char	*msifile = NULL;
 
 int main(int argc, char *argv[])
 {
@@ -3063,7 +3064,7 @@
 }
 
 char	*opts =
-"help,version,checkdrive,prcap,inq,devices,scanbus,reset,abort,overburn,ignsize,useinfo,dev*,timeout#,driver*,driveropts*,setdropts,tsize&,padsize&,pregap&,defpregap&,speed#,load,lock,eject,dummy,msinfo,toc,atip,multi,fix,nofix,waiti,immed,debug#,d+,kdebug#,kd#,verbose+,v+,Verbose+,V+,x+,xd#,silent,s,audio,data,mode2,xa,xa1,xa2,xamix,cdi,isosize,nopreemp,preemp,nocopy,copy,nopad,pad,swab,fs&,ts&,blank&,format,formattype&,pktsize#,packet,noclose,force,tao,dao,sao,raw,raw96r,raw96p,raw16,clone,scms,isrc*,mcn*,index*,cuefile*,textfile*,text,shorttrack,noshorttrack,gracetime#,minbuf#";
+"help,version,checkdrive,prcap,inq,devices,scanbus,reset,abort,overburn,ignsize,useinfo,dev*,timeout#,driver*,driveropts*,setdropts,tsize&,padsize&,pregap&,defpregap&,speed#,load,lock,eject,dummy,msinfo,toc,atip,multi,fix,nofix,waiti,immed,debug#,d+,kdebug#,kd#,verbose+,v+,Verbose+,V+,x+,xd#,silent,s,audio,data,mode2,xa,xa1,xa2,xamix,cdi,isosize,nopreemp,preemp,nocopy,copy,nopad,pad,swab,fs&,ts&,blank&,format,formattype&,pktsize#,packet,noclose,force,tao,dao,sao,raw,raw96r,raw96p,raw16,clone,scms,isrc*,mcn*,index*,cuefile*,textfile*,text,shorttrack,noshorttrack,gracetime#,minbuf#,msifile*";
 
 /*
  * Defines used to find whether a write mode has been specified.
@@ -3211,7 +3212,7 @@
 				&scms, &isrc, &mcn, &tindex,
 				&cuefile, &textfile, &usetext,
 				&shorttrack, &noshorttrack,
-				&gracetime, &dminbuf)) < 0) {
+				&gracetime, &dminbuf, &msifile)) < 0) {
 			errmsgno(EX_BAD, "Bad Option: %s.\n", cav[0]);
 			susage(EX_BAD);
 		}
@@ -3248,6 +3249,8 @@
 				*flagsp |= F_DUMMY;
 			if (setdropts)
 				*flagsp |= F_SETDROPTS;
+			if(msifile)
+				msinfo++;
 			if (msinfo)
 				*flagsp |= F_MSINFO;
 			if (toc) {
@@ -4089,6 +4092,17 @@
 		return;
 	}
 	printf("%ld,%ld\n", off, fa);
+	if(msifile) {
+		FILE *f = fopen(msifile, "w");
+		if(f) {
+			fprintf(f, "%ld,%ld\n", off, fa);
+			fclose(f);
+		}
+		else {
+			perror("Unable to write multi session info file");
+			exit(EXIT_FAILURE);
+		}
+	}
 }
 
 static void 




More information about the Debburn-changes mailing list