[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