libcdio-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Libcdio-devel] libcdio release around the ides of March? (March 15)


From: R. Bernstein
Subject: RE: [Libcdio-devel] libcdio release around the ides of March? (March 15)
Date: Mon, 3 Mar 2008 07:17:13 -0500

I tried applying the patch. Unfortunately it causes test/check_nrg.sh
to fail because it turns what it thought was a VCD disk into an audio
disk. If you can figure out a way to reconcile this, and come up with
a regression test (in libcdio/test) that works on both the old
existing NRG image and tests your changes, I'd like to apply your
changes. Thanks.

As for the info_file=strdup(info_file), yes it doesn't look used. I've
removed the --output-info (-i) option altogether. Perhaps the intent
was similar to the newly added --log-summary option.

Huang William writes:
 > Hi,
 > 
 > I would like to contribute the enclosed to diffs for lib/driver/image/nrg.c 
 > and src/cd-paranoia/cd-paranoia.c so I can rip CDDA tracks contained in NRG 
 > image files without using a CD drive emulator. The nrg.c needs to recognize 
 > the size of sectors to be 2352 (98 * 24) bytes when NRG CUEX says that a 
 > track is of audio type. The cd-paranoia.c needs an option (I choose -N 
 > tentatively) for users to pass the NRG image file name to the tool. I found 
 > the cd-paranoia.c statement info_file=strdup(info_file); illogical but did 
 > not touch it. Please let me know how I should proceed.
 > 
 > Thanks,
 > 
 > Chekgiau Ng
 > -------
 > 
 > Index: nrg.c
 > ===================================================================
 > RCS file: /sources/libcdio/libcdio/lib/driver/image/nrg.c,v
 > retrieving revision 1.24
 > diff -c -r1.24 nrg.c
 > *** nrg.c    27 Feb 2006 10:23:52 -0000    1.24
 > --- nrg.c    3 Mar 2008 08:35:02 -0000
 > ***************
 > *** 311,317 ****
 >             
 >             sec_count = UINT32_FROM_BE (_entries[idx + 1].lsn);
 >             
 > !           _register_mapping (p_env, lsn, sec_count*2, 
 >                    (lsn+CDIO_PREGAP_SECTORS) * M2RAW_SECTOR_SIZE,
 >                    M2RAW_SECTOR_SIZE, TRACK_FORMAT_XA, true);
 >           }
 > --- 311,322 ----
 >             
 >             sec_count = UINT32_FROM_BE (_entries[idx + 1].lsn);
 >             
 > !               if ((_entries[idx].type & 0x0f) == 0x01)
 > !                 _register_mapping (p_env, lsn, sec_count - lsn, 
 > !                   (lsn + CDIO_PREGAP_SECTORS)*CDIO_CD_FRAMESIZE_RAW,
 > !                   CDIO_CD_FRAMESIZE_RAW, TRACK_FORMAT_AUDIO, true);
 > !               else
 > !             _register_mapping (p_env, lsn, sec_count*2, 
 >                    (lsn+CDIO_PREGAP_SECTORS) * M2RAW_SECTOR_SIZE,
 >                    M2RAW_SECTOR_SIZE, TRACK_FORMAT_XA, true);
 >           }
 > ***************
 > *** 360,366 ****
 >             lsn       = UINT32_FROM_BE (_entries[idx].lsn);
 >             sec_count = UINT32_FROM_BE (_entries[idx + 1].lsn);
 >             
 > !           _register_mapping (p_env, lsn, sec_count - lsn, 
 >                    (lsn + CDIO_PREGAP_SECTORS)*M2RAW_SECTOR_SIZE,
 >                    M2RAW_SECTOR_SIZE, TRACK_FORMAT_XA, true);
 >           }
 > --- 365,376 ----
 >             lsn       = UINT32_FROM_BE (_entries[idx].lsn);
 >             sec_count = UINT32_FROM_BE (_entries[idx + 1].lsn);
 >             
 > !               if ((_entries[idx].type & 0x0f) == 0x01)
 > !                 _register_mapping (p_env, lsn, sec_count - lsn, 
 > !                   (lsn + CDIO_PREGAP_SECTORS)*CDIO_CD_FRAMESIZE_RAW,
 > !                   CDIO_CD_FRAMESIZE_RAW, TRACK_FORMAT_AUDIO, true);
 > !               else
 > !             _register_mapping (p_env, lsn, sec_count - lsn, 
 >                    (lsn + CDIO_PREGAP_SECTORS)*M2RAW_SECTOR_SIZE,
 >                    M2RAW_SECTOR_SIZE, TRACK_FORMAT_XA, true);
 >           }
 > 
 > Index: cd-paranoia.c
 > ===================================================================
 > RCS file: /sources/libcdio/libcdio/src/cd-paranoia/cd-paranoia.c,v
 > retrieving revision 1.34
 > diff -c -r1.34 cd-paranoia.c
 > *** cd-paranoia.c    29 Feb 2008 11:34:15 -0000    1.34
 > --- cd-paranoia.c    3 Mar 2008 08:35:43 -0000
 > ***************
 > *** 547,553 ****
 >   }
 >   #endif /* !TRACE_PARANOIA */
 >   
 > ! const char *optstring = "aBcCd:efg:hi:l:m:n:o:O:pqQrRsS:Tt:VvwWx:XYZz::";
 >   
 >   struct option options [] = {
 >       {"abort-on-skip",             no_argument,       NULL, 'X'},
 > --- 547,553 ----
 >   }
 >   #endif /* !TRACE_PARANOIA */
 >   
 > ! const char *optstring = "aBcCd:efg:hi:l:m:N:n:o:O:pqQrRsS:Tt:VvwWx:XYZz::";
 >   
 >   struct option options [] = {
 >       {"abort-on-skip",             no_argument,       NULL, 'X'},
 > ***************
 > *** 562,567 ****
 > --- 562,568 ----
 >       {"force-generic-device",      required_argument, NULL, 'g'},
 >       {"force-read-speed",          required_argument, NULL, 'S'},
 >       {"force-search-overlap",      required_argument, NULL, 'o'},
 > +         {"load-nrg-image",            required_argument, NULL, 'N'},
 >       {"help",                      no_argument,       NULL, 'h'},
 >        {"log-summary",               required_argument, NULL, 'l'},
 >       {"mmc-timeout",               required_argument, NULL, 'm'},
 > ***************
 > *** 592,597 ****
 > --- 593,599 ----
 >   static char             *span     = NULL;
 >   static char *force_cdrom_device   = NULL;
 >   static char *info_file            = NULL;
 > + static char *nrg_image_file       = NULL;
 >   
 >   #define free_and_null(p) \
 >     free(p);         \
 > ***************
 > *** 619,624 ****
 > --- 621,627 ----
 >     free_and_null(force_cdrom_device);
 >     free_and_null(span);
 >     free_and_null(info_file);
 > +   free_and_null(nrg_image_file);
 >     if(logfile && logfile != stdout) {
 >         fclose(logfile);
 >         logfile = NULL;
 > ***************
 > *** 686,691 ****
 > --- 689,696 ----
 >     int search=0;
 >     int c,long_option_index;
 >   
 > +   CdIo_t *p_cdio=NULL;
 > + 
 >     atexit(cleanup);
 >   
 >     
 > while((c=getopt_long(argc,argv,optstring,options,&long_option_index))!=EOF){
 > ***************
 > *** 756,761 ****
 > --- 761,770 ----
 >       case 'n':
 >         get_int_arg(c, &force_cdrom_sectors);
 >         break;
 > +     case 'N':
 > +       if(nrg_image_file)free(nrg_image_file);
 > +       nrg_image_file=strdup(optarg);
 > +       break;
 >       case 'o':
 >         get_int_arg(c, &force_cdrom_overlap);
 >         break;
 > ***************
 > *** 861,871 ****
 >     }else
 >       if (argv[optind]) span=strdup(argv[optind]);
 >   
 >     report(PARANOIA_VERSION);
 >   
 >     /* Query the cdrom/disc; we may need to override some settings */
 >   
 > !   if(force_cdrom_device)
 >       d=cdda_identify(force_cdrom_device,verbose,NULL);
 >     else {
 >       driver_id_t driver_id;
 > --- 870,890 ----
 >     }else
 >       if (argv[optind]) span=strdup(argv[optind]);
 >   
 > +   if(nrg_image_file) {
 > +     p_cdio=cdio_open_nrg(nrg_image_file);
 > +     if(!p_cdio) {
 > +       fprintf(stderr,"Cannot open image file %s as source.", 
 > nrg_image_file);
 > +       exit(1);
 > +     }
 > +   }
 > + 
 >     report(PARANOIA_VERSION);
 >   
 >     /* Query the cdrom/disc; we may need to override some settings */
 >   
 > !   if(p_cdio)
 > !     d=cdio_cddap_identify_cdio(p_cdio,verbose,NULL);
 > !   else if(force_cdrom_device)
 >       d=cdda_identify(force_cdrom_device,verbose,NULL);
 >     else {
 >       driver_id_t driver_id;
 > 
 > 
 > 
 > > From: address@hidden
 > > Date: Thu, 28 Feb 2008 18:01:19 -0500
 > > To: address@hidden
 > > CC: address@hidden
 > > Subject: [Libcdio-devel] libcdio release around the ides of March? (March 
 > > 15)
 > > 
 > > I've been thinking about making another release to clear out the
 > > security bugs that have been reported and fixed in CVS. Also, it might
 > > pave the way for a GPL 2 to GPL 3 down the line. (Previously the
 > > observation was made that one shouldn't tie security fixes with a
 > > license change).
 > > 
 > > A couple of people suggested a possibility of some other additions to
 > > libcdio. For example Robert William Fuller suggested adding gap
 > > detection via MMC commands, but I gather this has all been rolled into
 > > cued, right?
 > > 
 > > So right now unless there's reason not to, I'm shooting for a March
 > > 15th release. Comments?
 > > 
 > > 
 > 
 > _________________________________________________________________
 > ¥Î³¡¸¨®æ¤À¨É·Ó¤ù¡B¼v­µ¡B½ì¨ý¤p¤u¨ã©M³Ì·R²M³æ¡AºÉ±¡¨q¥X§A¦Û¤v ¡X Windows Live 
 > Spaces
 > http://spaces.live.com/<html>
 > <head>
 > <style>
 > .hmmessage P
 > {
 > margin:0px;
 > padding:0px
 > }
 > body.hmmessage
 > {
 > FONT-SIZE: 9pt;
 > FONT-FAMILY:Tahoma
 > }
 > </style>
 > </head>
 > <body class='hmmessage'>Hi,<br><br>I would like to contribute the enclosed 
 > to diffs for lib/driver/image/nrg.c and src/cd-paranoia/cd-paranoia.c so I 
 > can rip CDDA tracks contained in NRG image files without using a CD drive 
 > emulator. The nrg.c needs to recognize the size of sectors to be 2352 (98 * 
 > 24) bytes when NRG CUEX says that a track is of audio type. The 
 > cd-paranoia.c needs an option (I choose -N tentatively) for users to pass 
 > the NRG image file name to the tool. I found the cd-paranoia.c statement 
 > <span style="font-weight: bold;">info_file=strdup(info_file);</span> 
 > illogical but did not touch it. Please let me know how I should 
 > proceed.<br><br>Thanks,<br><br>Chekgiau Ng<br>-------<br><br>Index: 
 > nrg.c<br>===================================================================<br>RCS
 >  file: /sources/libcdio/libcdio/lib/driver/image/nrg.c,v<br>retrieving 
 > revision 1.24<br>diff -c -r1.24 nrg.c<br>*** nrg.c&nbsp;&nbsp;&nbsp; 27 Feb 
 > 2006 10:23:52 -0000&nbsp;&nbsp;&nbsp; 1.24<br>--
 >  - nrg.c&nbsp;&nbsp;&nbsp; 3 Mar 2008 08:35:02 
 > -0000<br>***************<br>*** 311,317 ****<br>&nbsp; &nbsp;&nbsp;&nbsp; 
 > &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp; &nbsp;&nbsp;&nbsp; 
 > &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sec_count = UINT32_FROM_BE (_entries[idx + 
 > 1].lsn);<br>&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>! 
 > &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _register_mapping (p_env, 
 > lsn, sec_count*2, <br>&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
 > &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;(lsn+CDIO_PREGAP_SECTORS) * 
 > M2RAW_SECTOR_SIZE,<br>&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
 > &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;M2RAW_SECTOR_SIZE, 
 > TRACK_FORMAT_XA, true);<br>&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
 > }<br>--- 311,322 ----<br>&nbsp; &nbsp;&nbsp;&nbsp; 
 > &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp; &nbsp;&nbsp;&nbsp; 
 > &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sec_count = UINT32_FROM_BE (_entries[idx + 
 > 1].lsn);<br>&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
 >  &nbsp;&nbsp; 
 > <br>!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 >  if ((_entries[idx].type &amp; 0x0f) == 
 > 0x01)<br>!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 >  _register_mapping (p_env, lsn, sec_count - lsn, 
 > <br>!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 >  (lsn + 
 > CDIO_PREGAP_SECTORS)*CDIO_CD_FRAMESIZE_RAW,<br>!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 >  CDIO_CD_FRAMESIZE_RAW, TRACK_FORMAT_AUDIO, 
 > true);<br>!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 >  else<br>! &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 > _register_mapping (p_env, lsn, sec_count*2, <br>&nbsp; &nbsp;&nbsp;&nbsp; 
 > &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
 > &nbsp;(lsn+CDIO_PREGAP_SECTORS) * M2RAW_SECTOR_SIZE,<br>&nbsp; &nbsp;&nb
 >  sp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
 > &nbsp;M2RAW_SECTOR_SIZE, TRACK_FORMAT_XA, true);<br>&nbsp; 
 > &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>***************<br>*** 360,366 
 > ****<br>&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 > lsn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = UINT32_FROM_BE 
 > (_entries[idx].lsn);<br>&nbsp; &nbsp;&nbsp;&nbsp; 
 > &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sec_count = UINT32_FROM_BE (_entries[idx + 
 > 1].lsn);<br>&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>! 
 > &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _register_mapping (p_env, 
 > lsn, sec_count - lsn, <br>&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
 > &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;(lsn + 
 > CDIO_PREGAP_SECTORS)*M2RAW_SECTOR_SIZE,<br>&nbsp; &nbsp;&nbsp;&nbsp; 
 > &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
 > &nbsp;M2RAW_SECTOR_SIZE, TRACK_FORMAT_XA, true);<br>&nbsp; 
 > &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>--- 365,376 ----<br>&nbsp; 
 > &nbsp;&nbsp;&nb
 >  sp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lsn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 > = UINT32_FROM_BE (_entries[idx].lsn);<br>&nbsp; &nbsp;&nbsp;&nbsp; 
 > &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sec_count = UINT32_FROM_BE (_entries[idx + 
 > 1].lsn);<br>&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 > <br>!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 >  if ((_entries[idx].type &amp; 0x0f) == 
 > 0x01)<br>!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 >  _register_mapping (p_env, lsn, sec_count - lsn, 
 > <br>!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 >  (lsn + 
 > CDIO_PREGAP_SECTORS)*CDIO_CD_FRAMESIZE_RAW,<br>!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 >  CDIO_CD_FRAMESIZE_RAW, TRACK_FORMAT_AUDIO, 
 > true);<br>!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 >  els
 >  e<br>! &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 > _register_mapping (p_env, lsn, sec_count - lsn, <br>&nbsp; 
 > &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
 > &nbsp;(lsn + CDIO_PREGAP_SECTORS)*M2RAW_SECTOR_SIZE,<br>&nbsp; 
 > &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
 > &nbsp;M2RAW_SECTOR_SIZE, TRACK_FORMAT_XA, true);<br>&nbsp; 
 > &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br><br>Index: 
 > cd-paranoia.c<br>===================================================================<br>RCS
 >  file: 
 > /sources/libcdio/libcdio/src/cd-paranoia/cd-paranoia.c,v<br>retrieving 
 > revision 1.34<br>diff -c -r1.34 cd-paranoia.c<br>*** 
 > cd-paranoia.c&nbsp;&nbsp;&nbsp; 29 Feb 2008 11:34:15 -0000&nbsp;&nbsp;&nbsp; 
 > 1.34<br>--- cd-paranoia.c&nbsp;&nbsp;&nbsp; 3 Mar 2008 08:35:43 
 > -0000<br>***************<br>*** 547,553 ****<br>&nbsp; }<br>&nbsp; #endif /* 
 > !TRACE_PARANOIA */<br>&nbsp; <br>! const char *optstring = 
 > "aBcCd:efg:hi:l:m:n:o:O:pqQrRsS:Tt
 >  :VvwWx:XYZz::";<br>&nbsp; <br>&nbsp; struct option options [] = {<br>&nbsp; 
 > &nbsp;&nbsp;&nbsp; 
 > {"abort-on-skip",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 >  no_argument,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NULL, 'X'},<br>--- 547,553 
 > ----<br>&nbsp; }<br>&nbsp; #endif /* !TRACE_PARANOIA */<br>&nbsp; <br>! 
 > const char *optstring = 
 > "aBcCd:efg:hi:l:m:N:n:o:O:pqQrRsS:Tt:VvwWx:XYZz::";<br>&nbsp; <br>&nbsp; 
 > struct option options [] = {<br>&nbsp; &nbsp;&nbsp;&nbsp; 
 > {"abort-on-skip",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 >  no_argument,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NULL, 
 > 'X'},<br>***************<br>*** 562,567 ****<br>--- 562,568 ----<br>&nbsp; 
 > &nbsp;&nbsp;&nbsp; {"force-generic-device",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 > required_argument, NULL, 'g'},<br>&nbsp; &nbsp;&nbsp;&nbsp; 
 > {"force-read-speed",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 > required_argument, NULL, 'S'},<br>&nbsp; &nbsp;&nbsp;&nbsp; {"force-sear
 >  ch-overlap",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; required_argument, NULL, 
 > 'o'},<br>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 > {"load-nrg-image",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 >  required_argument, NULL, 'N'},<br>&nbsp; &nbsp;&nbsp;&nbsp; 
 > {"help",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 >  no_argument,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NULL, 
 > 'h'},<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
 > {"log-summary",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 >  required_argument, NULL, 'l'},<br>&nbsp; &nbsp;&nbsp;&nbsp; 
 > {"mmc-timeout",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 >  required_argument, NULL, 'm'},<br>***************<br>*** 592,597 
 > ****<br>--- 593,599 ----<br>&nbsp; static 
 > char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 > *span&nbsp;&nbsp;&nbsp;&nbsp; = NULL;<br>&
 >  nbsp; static char *force_cdrom_device&nbsp;&nbsp; = NULL;<br>&nbsp; static 
 > char 
 > *info_file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 > = NULL;<br>+ static char *nrg_image_file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 > = NULL;<br>&nbsp; <br>&nbsp; #define free_and_null(p) 
 > \<br>&nbsp;&nbsp;&nbsp; free(p);&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
 > &nbsp;\<br>***************<br>*** 619,624 ****<br>--- 621,627 
 > ----<br>&nbsp;&nbsp;&nbsp; 
 > free_and_null(force_cdrom_device);<br>&nbsp;&nbsp;&nbsp; 
 > free_and_null(span);<br>&nbsp;&nbsp;&nbsp; 
 > free_and_null(info_file);<br>+&nbsp;&nbsp; 
 > free_and_null(nrg_image_file);<br>&nbsp;&nbsp;&nbsp; if(logfile &amp;&amp; 
 > logfile != stdout) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 > fclose(logfile);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logfile = 
 > NULL;<br>***************<br>*** 686,691 ****<br>--- 689,696 
 > ----<br>&nbsp;&nbsp;&nbsp; int search=0;<br>&nbsp;&nbsp;&nbsp; int 
 > c,long_option_index;<br>&nbsp; <br>+&nbsp;&nbsp; CdIo_t *
 >  p_cdio=NULL;<br>+ <br>&nbsp;&nbsp;&nbsp; atexit(cleanup);<br>&nbsp; 
 > <br>&nbsp;&nbsp;&nbsp; 
 > while((c=getopt_long(argc,argv,optstring,options,&amp;long_option_index))!=EOF){<br>***************<br>***
 >  756,761 ****<br>--- 761,770 ----<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 
 > 'n':<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get_int_arg(c, 
 > &amp;force_cdrom_sectors);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 > break;<br>+&nbsp;&nbsp;&nbsp;&nbsp; case 
 > 'N':<br>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 > if(nrg_image_file)free(nrg_image_file);<br>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 >  nrg_image_file=strdup(optarg);<br>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 > break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 
 > 'o':<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get_int_arg(c, 
 > &amp;force_cdrom_overlap);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 > break;<br>***************<br>*** 861,871 ****<br>&nbsp;&nbsp;&nbsp; 
 > }else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (argv[optind]) 
 > span=strdup(argv[optind]);<br
 >  >&nbsp; <br>&nbsp;&nbsp;&nbsp; report(PARANOIA_VERSION);<br>&nbsp; 
 > <br>&nbsp;&nbsp;&nbsp; /* Query the cdrom/disc; we may need to override some 
 > settings */<br>&nbsp; <br>!&nbsp;&nbsp; 
 > if(force_cdrom_device)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 > d=cdda_identify(force_cdrom_device,verbose,NULL);<br>&nbsp;&nbsp;&nbsp; else 
 > {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; driver_id_t driver_id;<br>--- 870,890 
 > ----<br>&nbsp;&nbsp;&nbsp; }else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if 
 > (argv[optind]) span=strdup(argv[optind]);<br>&nbsp; <br>+&nbsp;&nbsp; 
 > if(nrg_image_file) {<br>+&nbsp;&nbsp;&nbsp;&nbsp; 
 > p_cdio=cdio_open_nrg(nrg_image_file);<br>+&nbsp;&nbsp;&nbsp;&nbsp; 
 > if(!p_cdio) {<br>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 > fprintf(stderr,"Cannot open image file %s as source.", 
 > nrg_image_file);<br>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 > exit(1);<br>+&nbsp;&nbsp;&nbsp;&nbsp; }<br>+&nbsp;&nbsp; }<br>+ 
 > <br>&nbsp;&nbsp;&nbsp; report(PARANOIA_VERSION);<br>&nbsp; 
 > <br>&nbsp;&nbsp;&nbsp; /* Query the cdrom/disc; w
 >  e may need to override some settings */<br>&nbsp; <br>!&nbsp;&nbsp; 
 > if(p_cdio)<br>!&nbsp;&nbsp;&nbsp;&nbsp; 
 > d=cdio_cddap_identify_cdio(p_cdio,verbose,NULL);<br>!&nbsp;&nbsp; else 
 > if(force_cdrom_device)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 > d=cdda_identify(force_cdrom_device,verbose,NULL);<br>&nbsp;&nbsp;&nbsp; else 
 > {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; driver_id_t 
 > driver_id;<br><br><br><br><hr id="stopSpelling">&gt; From: 
 > address@hidden<br>&gt; Date: Thu, 28 Feb 2008 18:01:19 -0500<br>&gt; To: 
 > address@hidden<br>&gt; CC: address@hidden<br>&gt; Subject: [Libcdio-devel] 
 > libcdio release around the ides of March? (March 15)<br>&gt; <br>&gt; I've 
 > been thinking about making another release to clear out the<br>&gt; security 
 > bugs that have been reported and fixed in CVS. Also, it might<br>&gt; pave 
 > the way for a GPL 2 to GPL 3 down the line. (Previously the<br>&gt; 
 > observation was made that one shouldn't tie security fixes with a<br>&gt; 
 > license change).<br>&gt; <br>&gt; A c
 >  ouple of people suggested a possibility of some other additions to<br>&gt; 
 > libcdio. For example Robert William Fuller suggested adding gap<br>&gt; 
 > detection via MMC commands, but I gather this has all been rolled 
 > into<br>&gt; cued, right?<br>&gt; <br>&gt; So right now unless there's 
 > reason not to, I'm shooting for a March<br>&gt; 15th release. 
 > Comments?<br>&gt; <br>&gt; <br><br /><hr 
 > />¥Î³¡¸¨®æ¤À¨É·Ó¤ù¡B¼v­µ¡B½ì¨ý¤p¤u¨ã©M³Ì·R²M³æ¡AºÉ±¡¨q¥X§A¦Û¤v ¡X <a 
 > href='http://spaces.live.com/' target='_new'>Windows Live Spaces</a></body>
 > </html>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]