Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
2a7bb408bf | |||
3e26f4d7b1 | |||
ffb6d431aa | |||
cdb32048c0 |
16
ChangeLog
16
ChangeLog
@ -1,19 +1,3 @@
|
||||
libisoburn-1.3.4.tar.gz Thu Dec 12 2013
|
||||
===============================================================================
|
||||
* Bug fix: Command -blank "as_needed" formatted blank BD-R.
|
||||
* Bug fix: -as mkisofs option -log-file put the log file into the image
|
||||
* Bug fix: -cut_out did not add x-permission to r-permission of directory
|
||||
* Bug fix: Command -zisofs did not accept all options emitted by
|
||||
-status -zisofs
|
||||
* Bug fix: -blank force:... failed on appendable or closed media
|
||||
* Bug fix: libburn: Drive LG BH16NS40 stalled on inspection of unformatted
|
||||
DVD+RW
|
||||
* libisofs: Default sort weight of El Torito boot images is now 2
|
||||
* libisofs: Encoding HFS+ names in UTF-16 rather than UCS-2
|
||||
* New command -read_speed
|
||||
* New -close mode "as_needed", new -as cdrecord option --multi_if_possible
|
||||
* New -alter_date types: a-c , m-c , b-c , c
|
||||
|
||||
libisoburn-1.3.2.tar.gz Wed Aug 07 2013
|
||||
===============================================================================
|
||||
* Bug fix: -find -exec "sort_weight" did not mark the image as having
|
||||
|
14
README
14
README
@ -4,7 +4,7 @@
|
||||
libisoburn and xorriso. By Vreixo Formoso <metalpain2002@yahoo.es>
|
||||
and Thomas Schmitt <scdbackup@gmx.net>
|
||||
Integrated sub project of libburnia-project.org.
|
||||
http://files.libburnia-project.org/releases/libisoburn-1.3.4.tar.gz
|
||||
http://files.libburnia-project.org/releases/libisoburn-1.3.2.tar.gz
|
||||
Copyright (C) 2006-2009 Vreixo Formoso,
|
||||
Copyright (C) 2006-2013 Thomas Schmitt.
|
||||
Provided under GPL version 2 or later.
|
||||
@ -35,17 +35,17 @@ By using this software you agree to the disclaimer at the end of this text:
|
||||
|
||||
Compilation, First Glimpse, Installation
|
||||
|
||||
Dynamic library and compile time header requirements for libisoburn-1.3.4 :
|
||||
- libburn.so.4 , version libburn-1.3.4 or higher
|
||||
- libisofs.so.6 , version libisofs-1.3.4 or higher
|
||||
Dynamic library and compile time header requirements for libisoburn-1.3.2 :
|
||||
- libburn.so.4 , version libburn-1.3.2 or higher
|
||||
- libisofs.so.6 , version libisofs-1.3.2 or higher
|
||||
libisoburn and xorriso will not start with libraries which are older than their
|
||||
include headers seen at compile time.
|
||||
|
||||
Obtain libisoburn-1.3.4.tar.gz, take it to a directory of your choice
|
||||
Obtain libisoburn-1.3.2.tar.gz, take it to a directory of your choice
|
||||
and do:
|
||||
|
||||
tar xzf libisoburn-1.3.4.tar.gz
|
||||
cd libisoburn-1.3.4
|
||||
tar xzf libisoburn-1.3.2.tar.gz
|
||||
cd libisoburn-1.3.2
|
||||
|
||||
Within that directory execute:
|
||||
|
||||
|
18
configure.ac
18
configure.ac
@ -1,4 +1,4 @@
|
||||
AC_INIT([libisoburn], [1.3.4], [http://libburnia-project.org])
|
||||
AC_INIT([libisoburn], [1.3.2], [http://libburnia-project.org])
|
||||
AC_PREREQ([2.50])
|
||||
dnl AC_CONFIG_HEADER([config.h])
|
||||
|
||||
@ -24,7 +24,7 @@ dnl
|
||||
dnl These three are only copies to provide libtool with unused LT_RELEASE
|
||||
ISOBURN_MAJOR_VERSION=1
|
||||
ISOBURN_MINOR_VERSION=3
|
||||
ISOBURN_MICRO_VERSION=4
|
||||
ISOBURN_MICRO_VERSION=2
|
||||
|
||||
dnl ISOBURN_VERSION=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION.$ISOBURN_MICRO_VERSION
|
||||
|
||||
@ -37,16 +37,16 @@ dnl Libtool versioning
|
||||
dnl Generate libisoburn.so.1.x.y
|
||||
dnl SONAME will become LT_CURRENT - LT_AGE
|
||||
dnl
|
||||
dnl ts B31212
|
||||
dnl This is the release version 1.3.4 = libisoburn.so.1.91.0
|
||||
dnl ts B30807
|
||||
dnl This is the release version 1.3.2 = libisoburn.so.1.89.0
|
||||
dnl ### This is the development version after above stable release
|
||||
dnl LT_CURRENT++, LT_AGE++ have not happened yet.
|
||||
dnl ### LT_CURRENT++, LT_AGE++ has happened meanwhile.
|
||||
dnl
|
||||
dnl SONAME = 92 - 91 = 1 . Library name = libisoburn.so.1.91.0
|
||||
dnl SONAME = 90 - 89 = 1 . Library name = libisoburn.so.1.89.0
|
||||
LT_RELEASE=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION
|
||||
LT_CURRENT=92
|
||||
LT_AGE=91
|
||||
LT_CURRENT=90
|
||||
LT_AGE=89
|
||||
LT_REVISION=0
|
||||
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
|
||||
|
||||
@ -372,8 +372,8 @@ if test x$enable_pkg_check_modules = xyes; then
|
||||
dnl If PKG_CHECK_MODULES is to be used after this if-block,
|
||||
dnl then it might be necessary to perform PKG_PROG_PKG_CONFIG before the block.
|
||||
|
||||
LIBBURN_REQUIRED=1.3.4
|
||||
LIBISOFS_REQUIRED=1.3.4
|
||||
LIBBURN_REQUIRED=1.3.2
|
||||
LIBISOFS_REQUIRED=1.3.2
|
||||
PKG_CHECK_MODULES(LIBBURN, libburn-1 >= $LIBBURN_REQUIRED)
|
||||
PKG_CHECK_MODULES(LIBISOFS, libisofs-1 >= $LIBISOFS_REQUIRED)
|
||||
if test x$LIBCDIO_DEF = x; then
|
||||
|
@ -19,7 +19,7 @@
|
||||
# And, well, a graphical widget set would be nice.
|
||||
|
||||
|
||||
set own_version "1.3.4"
|
||||
set own_version "1.3.2"
|
||||
|
||||
# Minimum version of xorriso to be used as backend process.
|
||||
# Older versions of xorriso do not offer commands -msg_op and -launch_frontend
|
||||
|
@ -375,10 +375,7 @@ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
|
||||
readonly= 1;
|
||||
if(flag & 128)
|
||||
flag = (flag & ~ 16) | 8;
|
||||
|
||||
ret= isoburn_find_emulator(o, d, 0);
|
||||
if(ret >= 0 && *o != NULL)
|
||||
isoburn_destroy(o, 0);
|
||||
|
||||
ret= isoburn_new(o, 0);
|
||||
if(ret<=0)
|
||||
goto ex;
|
||||
@ -492,9 +489,8 @@ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
|
||||
goto ex;
|
||||
if(ret>0) { /* point msc1 to last session */
|
||||
if((*o)->toc!=NULL) {
|
||||
for(t= (*o)->toc; t->next!=NULL; t= t->next)
|
||||
; /* clang wants newline in empty loops */
|
||||
(*o)->fabricated_msc1= t->start_lba;
|
||||
for(t= (*o)->toc; t->next!=NULL; t= t->next);
|
||||
(*o)->fabricated_msc1= t->start_lba;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -242,7 +242,7 @@ void isoburn_version(int *major, int *minor, int *micro);
|
||||
*/
|
||||
#define isoburn_libisofs_req_major 1
|
||||
#define isoburn_libisofs_req_minor 3
|
||||
#define isoburn_libisofs_req_micro 4
|
||||
#define isoburn_libisofs_req_micro 2
|
||||
|
||||
/** The minimum version of libburn to be used with this version of libisoburn
|
||||
at compile time.
|
||||
@ -250,7 +250,7 @@ void isoburn_version(int *major, int *minor, int *micro);
|
||||
*/
|
||||
#define isoburn_libburn_req_major 1
|
||||
#define isoburn_libburn_req_minor 3
|
||||
#define isoburn_libburn_req_micro 4
|
||||
#define isoburn_libburn_req_micro 2
|
||||
|
||||
/** The minimum compile time requirements of libisoburn towards libjte are
|
||||
the same as of a suitable libisofs towards libjte.
|
||||
@ -305,7 +305,7 @@ int isoburn_libburn_req(int *major, int *minor, int *micro);
|
||||
*/
|
||||
#define isoburn_header_version_major 1
|
||||
#define isoburn_header_version_minor 3
|
||||
#define isoburn_header_version_micro 4
|
||||
#define isoburn_header_version_micro 2
|
||||
/** Note:
|
||||
Above version numbers are also recorded in configure.ac because libtool
|
||||
wants them as parameters at build time.
|
||||
@ -2065,17 +2065,13 @@ int isoburn_get_min_start_byte(struct burn_drive *d, off_t *start_byte,
|
||||
int flag);
|
||||
|
||||
|
||||
/** Start production of an ISO 9660 image using the method of Growing:
|
||||
/** To choose the expansion method of Growing:
|
||||
Create a disc object for writing the new session from the created or loaded
|
||||
iso_volset which has been manipulated via libisofs, to the same medium from
|
||||
where the image was eventually loaded.
|
||||
This call starts a libisofs thread which begins to produce the image.
|
||||
It has to be revoked by isoburn_cancel_prepared_write() if for some reason
|
||||
this image data stream shall not be consumed.
|
||||
The returned struct burn_disc is ready for use by a subsequent call to
|
||||
isoburn_disc_write(). After this asynchronous writing has ended and the
|
||||
drive is BURN_DRIVE_IDLE again, the burn_disc object has to be disposed
|
||||
by burn_disc_free().
|
||||
where the image was eventually loaded. This struct burn_disc is ready for
|
||||
use by a subsequent call to isoburn_disc_write().
|
||||
After this asynchronous writing has ended and the drive is BURN_DRIVE_IDLE
|
||||
again, the burn_disc object has to be disposed by burn_disc_free().
|
||||
@since 0.1.0
|
||||
@param drive The combined source and target drive, grabbed with
|
||||
isoburn_drive_scan_and_grab(). .
|
||||
@ -2087,16 +2083,13 @@ int isoburn_prepare_disc(struct burn_drive *drive, struct burn_disc **disc,
|
||||
struct isoburn_imgen_opts *opts);
|
||||
|
||||
|
||||
/** Start production of an ISO 9660 image using the method of Modifying:
|
||||
/** To choose the expansion method of Modifying:
|
||||
Create a disc object for producing a new image from a previous image
|
||||
plus the changes made by user. The generated burn_disc is suitable
|
||||
to be written to a grabbed drive with blank writeable medium.
|
||||
But you must not use the same drive for input and output, because data
|
||||
will be read from the source drive while at the same time the target
|
||||
drive is already writing.
|
||||
This call starts a libisofs thread which begins to produce the image.
|
||||
It has to be revoked by isoburn_cancel_prepared_write() if for some reason
|
||||
this image data stream shall not be consumed.
|
||||
The resulting burn_disc object has to be disposed when all its writing
|
||||
is done and the drive is BURN_DRIVE_IDLE again after asynchronous
|
||||
burn_disc_write().
|
||||
@ -2115,7 +2108,7 @@ int isoburn_prepare_new_image(struct burn_drive *in_drive,
|
||||
struct burn_drive *out_drive);
|
||||
|
||||
|
||||
/** Start production of an ISO 9660 image using the method of Blind Growing:
|
||||
/** To choose the expansion method of Blind Growing:
|
||||
Create a disc object for writing an add-on session from the created or
|
||||
loaded IsoImage which has been manipulated via libisofs, to a different
|
||||
drive than the one from where it was loaded.
|
||||
@ -2129,9 +2122,6 @@ int isoburn_prepare_new_image(struct burn_drive *in_drive,
|
||||
$nwa is a parameter of this call
|
||||
or can be used as detected from the in_drive medium
|
||||
|
||||
This call starts a libisofs thread which begins to produce the image.
|
||||
It has to be revoked by isoburn_cancel_prepared_write() if for some reason
|
||||
this image data stream shall not be consumed.
|
||||
This call waits for libisofs output to become available and then detaches
|
||||
the input drive object from the data source object by which libisofs was
|
||||
reading from the input drive.
|
||||
|
@ -4,7 +4,7 @@
|
||||
GNU xorriso. By Thomas Schmitt <scdbackup@gmx.net>
|
||||
Derived from and supported by libburnia-project.org, published via:
|
||||
http://www.gnu.org/software/xorriso/xorriso_eng.html
|
||||
http://www.gnu.org/software/xorriso/xorriso-1.3.4.tar.gz
|
||||
http://www.gnu.org/software/xorriso/xorriso-1.3.2.tar.gz
|
||||
Provided under GPL version 3 or later. No warranty.
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
@ -46,10 +46,10 @@ Optional at compile time are:
|
||||
If they were present at compile time, then the optional libraries have to
|
||||
be present at runtime, too.
|
||||
|
||||
Obtain xorriso-1.3.4.tar.gz, take it to a directory of your choice and do:
|
||||
Obtain xorriso-1.3.2.tar.gz, take it to a directory of your choice and do:
|
||||
|
||||
tar xzf xorriso-1.3.4.tar.gz
|
||||
cd xorriso-1.3.4
|
||||
tar xzf xorriso-1.3.2.tar.gz
|
||||
cd xorriso-1.3.2
|
||||
|
||||
Within that directory execute:
|
||||
|
||||
@ -359,9 +359,9 @@ and a matching dynamically linked xorriso binary.
|
||||
This binary is very lean but depends on properly installed libraries of
|
||||
suitable revision.
|
||||
|
||||
Dynamic library and compile time header requirements for libisoburn-1.3.4 :
|
||||
- libburn.so.4 , version libburn-1.3.4 or higher
|
||||
- libisofs.so.6 , version libisofs-1.3.4 or higher
|
||||
Dynamic library and compile time header requirements for libisoburn-1.3.2 :
|
||||
- libburn.so.4 , version libburn-1.3.2 or higher
|
||||
- libisofs.so.6 , version libisofs-1.3.2 or higher
|
||||
libisoburn and xorriso will not start with libraries which are older than their
|
||||
headers seen at compile time. So compile in the oldest possible installation
|
||||
setup unless you have reason to enforce a newer bug fix level.
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
|
||||
|
||||
Copyright 2007-2013 Thomas Schmitt, <scdbackup@gmx.net>
|
||||
Copyright 2007-2012 Thomas Schmitt, <scdbackup@gmx.net>
|
||||
|
||||
Provided under GPL version 2 or later.
|
||||
|
||||
@ -227,9 +227,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
|
||||
m->ban_stdio_write= 0;
|
||||
m->do_dummy= 0;
|
||||
m->do_close= 0;
|
||||
m->auto_close= 0;
|
||||
m->write_speed= 0; /* max */
|
||||
m->read_speed= -2; /* do not set */
|
||||
m->speed= 0;
|
||||
m->fs= 4*512; /* 4 MiB */
|
||||
m->padding= 300*1024;
|
||||
m->do_padding_by_libisofs= 0;
|
||||
|
@ -14899,7 +14899,7 @@ xorriso/base_obj.c
|
||||
xorriso/text_io.c
|
||||
Changed default setting of -application_use from 0x00 to 0x20
|
||||
|
||||
2013.08.07.110001 [5130]
|
||||
2013.08.07.110001 [5130]
|
||||
configure.ac
|
||||
README
|
||||
libisoburn/libisoburn.h
|
||||
@ -14923,7 +14923,7 @@ xorriso/xorrecord.1
|
||||
xorriso/xorrecord.info
|
||||
Version leap to libisoburn-1.3.2
|
||||
|
||||
07 Aug 2013 [5131]
|
||||
[]
|
||||
ChangeLog
|
||||
xorriso/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
@ -14946,279 +14946,6 @@ Documented changes and release timestamp
|
||||
* New command -application_use and new -as mkisofs option --application_use
|
||||
|
||||
|
||||
2013.08.07.141130 [5136]
|
||||
configure.ac
|
||||
README
|
||||
libisoburn/libisoburn.h
|
||||
xorriso/README_gnu_xorriso
|
||||
xorriso/xorriso.h
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/xorriso_main.c
|
||||
xorriso/xorriso_eng.html
|
||||
xorriso/make_xorriso_standalone.sh
|
||||
xorriso/configure_ac.txt
|
||||
frontend/xorriso-tcltk
|
||||
xorriso/xorriso_timestamp.h
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.1
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorrisofs.texi
|
||||
xorriso/xorrisofs.1
|
||||
xorriso/xorrisofs.info
|
||||
xorriso/xorrecord.texi
|
||||
xorriso/xorrecord.1
|
||||
xorriso/xorrecord.info
|
||||
Version leap to libisoburn-1.3.3
|
||||
|
||||
07 Aug 2013 [5137]
|
||||
ChangeLog
|
||||
xorriso/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
07 Aug 2013 [5138]
|
||||
svn move -m Promoted branch to tag
|
||||
http://svn.libburnia-project.org/libisoburn/branches/1.3.2
|
||||
http://svn.libburnia-project.org/libisoburn/tags/1.3.2
|
||||
|
||||
------------------------------------ cycle - xorriso-1.3.3 - 2013.08.07.141130
|
||||
|
||||
|
||||
2013.08.16.153701 [5139]
|
||||
libisoburn/libisoburn.h
|
||||
Clarified the comments about isoburn_prepare_*() calls
|
||||
|
||||
2013.08.16.153743 [5140]
|
||||
xorriso/write_run.c
|
||||
Bug fix: Command -blank "as_needed" formatted blank BD-R.
|
||||
|
||||
2013.08.19.152714 [5141]
|
||||
xorriso/write_run.c
|
||||
Downgraded severity of media overflow with -print_size
|
||||
|
||||
2013.08.20.144306 [5142]
|
||||
xorriso/emulators.c
|
||||
Closed a small memory leak with -as mkisofs emulation
|
||||
|
||||
2013.08.27.095314 [5143]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/write_run.c
|
||||
Avoiding a futile re-try when ending after a failed session write attempt
|
||||
|
||||
27 Aug 2013 [5144]
|
||||
ChangeLog
|
||||
xorriso/xorriso_eng.html
|
||||
xorriso/changelog.txt
|
||||
Updated change log and web page
|
||||
|
||||
------------------------------------ cycle - xorriso-1.3.3 - 2013.08.27.095314
|
||||
* Bug fix: Command -blank "as_needed" formatted blank BD-R.
|
||||
|
||||
|
||||
2013.09.05.080255 [5149]
|
||||
xorriso/drive_mgt.c
|
||||
Keeping -check_media from reading outside of medium readable area
|
||||
|
||||
2013.09.05.081703 [5150]
|
||||
xorriso/text_io.c
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
Reacted on warnings of PLD Linux build log
|
||||
|
||||
2013.09.05.082833 [5151]
|
||||
xorriso/emulators.c
|
||||
Bug fix: -as mkisofs option -log-file added the log file to the image
|
||||
|
||||
2013.09.07.193824 [5153]
|
||||
xorriso/iso_manip.c
|
||||
Reacted on warning of valgrind
|
||||
|
||||
07 Sep 2013 [5154]
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
xorriso/xorrisofs.texi
|
||||
xorriso/xorrisofs.info
|
||||
xorriso/xorrisofs.1
|
||||
Mentioned the change of default weight for boot image files
|
||||
|
||||
10 Sep 2013 [5155]
|
||||
xorriso/xorriso_eng.html
|
||||
Removed false promise from web page example about -osirrox
|
||||
|
||||
2013.09.16.164820 [5156]
|
||||
libisoburn/burn_wrap.c
|
||||
xorriso/iso_manip.c
|
||||
Reacted on warnings of Debian buildd with clang
|
||||
|
||||
2013.10.05.073918 [5159]
|
||||
xorriso/iso_manip.c
|
||||
Bug fix: -cut_out did not add x-permission to r-permission of directory
|
||||
|
||||
2013.10.08.175702 [5160]
|
||||
xorriso/xorriso.h
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/base_obj.c
|
||||
xorriso/parse_exec.c
|
||||
xorriso/opts_d_h.c
|
||||
xorriso/opts_p_z.c
|
||||
xorriso/text_io.c
|
||||
xorriso/drive_mgt.c
|
||||
xorriso/write_run.c
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
New command -read_speed
|
||||
|
||||
09 Oct 2013 [5162]
|
||||
ChangeLog
|
||||
xorriso/xorriso_eng.html
|
||||
xorriso/changelog.txt
|
||||
Updated change log and web page
|
||||
|
||||
------------------------------------ cycle - xorriso-1.3.3 - 2013.10.08.175702
|
||||
* Bug fix: -as mkisofs option -log-file put the log file into the image
|
||||
* Bug fix: -cut_out did not add x-permission to r-permission of directory
|
||||
* New command -read_speed
|
||||
* libisofs: Default sort weight of El Torito boot images is now 2.
|
||||
|
||||
2013.10.14.140028 [5165]
|
||||
xorriso/opts_p_z.c
|
||||
Bug fix: Command -zisofs did not accept all options emitted by -status -zisofs
|
||||
|
||||
2013.10.20.125455 [5166]
|
||||
xorriso/xorriso.h
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/base_obj.c
|
||||
xorriso/opts_a_c.c
|
||||
xorriso/opts_d_h.c
|
||||
xorriso/emulators.c
|
||||
xorriso/text_io.c
|
||||
xorriso/write_run.c
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
New -close mode "as_needed"
|
||||
|
||||
2013.10.27.115427 [5167]
|
||||
libisoburn/libisoburn.h
|
||||
Now requiring libburn-1.3.3
|
||||
|
||||
2013.10.28.150924 [5169]
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/parse_exec.c
|
||||
xorriso/opts_a_c.c
|
||||
xorriso/write_run.c
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
Automatic re-try with -close "as_needed" and unannounced fast-blanked DVD-RW
|
||||
|
||||
2013.10.28.151434 [5170]
|
||||
xorriso/emulators.c
|
||||
xorriso/xorrecord.texi
|
||||
xorriso/xorrecord.info
|
||||
xorriso/xorrecord.1
|
||||
New -as cdrecord option --multi_if_possible
|
||||
|
||||
2013.10.29.123448 [5171]
|
||||
xorriso/drive_mgt.c
|
||||
Avoiding to list pairs of the same speed with -list_speeds
|
||||
|
||||
2013.11.10.163500 [5176]
|
||||
xorriso/drive_mgt.c
|
||||
Bug fix: -blank force:... failed on appendable or closed media
|
||||
|
||||
11 Nov 2013 [5178]
|
||||
ChangeLog
|
||||
xorriso/xorriso_eng.html
|
||||
xorriso/changelog.txt
|
||||
Updated change log and web page
|
||||
|
||||
------------------------------------ cycle - xorriso-1.3.3 - 2013.11.10.163500
|
||||
* Bug fix: Command -zisofs did not accept all options emitted by -status -zisofs
|
||||
* Bug fix: libburn: Drive error reports were ignored during blanking and
|
||||
formatting
|
||||
* Bug fix: -blank force:... failed on appendable or closed media
|
||||
* Bug fix: libburn: Drive LG BH16NS40 stalled on inspection of unformatted
|
||||
DVD+RW
|
||||
* New -close mode "as_needed", new -as cdrecord option --multi_if_possible
|
||||
|
||||
|
||||
2013.11.15.095611 [5181]
|
||||
xorriso/opts_a_c.c
|
||||
Removed an obsolete variable
|
||||
|
||||
15 Nov 2013 [5183]
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
Mentioned built-in limits for minimum and maximum speed
|
||||
|
||||
2013.11.17.120422 [5186]
|
||||
libisoburn/burn_wrap.c
|
||||
Releasing loaded ISO image data when no longer needed
|
||||
|
||||
------------------------------------ cycle - xorriso-1.3.3 - 2013.11.17.120422
|
||||
|
||||
|
||||
2013.11.18.140456 [5188]
|
||||
xorriso/text_io.c
|
||||
Reacted on warning about unused variable if no readline is enabled
|
||||
|
||||
------------------------------------ cycle - xorriso-1.3.3 - 2013.11.26.123204
|
||||
* libisofs: Encoding HFS+ names in UTF-16 rather than UCS-2.
|
||||
|
||||
|
||||
2013.11.27.094951 [5190]
|
||||
xorriso/parse_exec.c
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
New -alter_date types: a-c , m-c , b-c , c
|
||||
|
||||
01 Dec 2013 [5191]
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
Defined the term LBA in man xorriso
|
||||
|
||||
12 Dec 2013 [5196]
|
||||
svn copy -m Branching for libisoburn release 1.3.4
|
||||
http://svn.libburnia-project.org/libisoburn/trunk
|
||||
http://svn.libburnia-project.org/libisoburn/branches/1.3.4
|
||||
|
||||
2013.12.12.103001 [5197]
|
||||
configure.ac
|
||||
README
|
||||
libisoburn/libisoburn.h
|
||||
xorriso/README_gnu_xorriso
|
||||
xorriso/xorriso.h
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/xorriso_main.c
|
||||
xorriso/xorriso_eng.html
|
||||
xorriso/make_xorriso_standalone.sh
|
||||
xorriso/configure_ac.txt
|
||||
frontend/xorriso-tcltk
|
||||
xorriso/xorriso_timestamp.h
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.1
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorrisofs.texi
|
||||
xorriso/xorrisofs.1
|
||||
xorriso/xorrisofs.info
|
||||
xorriso/xorrecord.texi
|
||||
xorriso/xorrecord.1
|
||||
xorriso/xorrecord.info
|
||||
Version leap to libisoburn-1.3.4
|
||||
|
||||
[]
|
||||
ChangeLog
|
||||
xorriso/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
----------------------------------- release - xorriso-1.3.4 - 2013.12.12.103001
|
||||
|
||||
[]
|
||||
ChangeLog
|
||||
xorriso/xorriso_eng.html
|
||||
@ -15226,17 +14953,6 @@ xorriso/changelog.txt
|
||||
Updated change log and web page
|
||||
|
||||
------------------------------------ cycle - xorriso-1.3.3 -
|
||||
* New -alter_date types: a-c , m-c , b-c , c
|
||||
|
||||
|
||||
[]
|
||||
ChangeLog
|
||||
xorriso/xorriso_eng.html
|
||||
xorriso/changelog.txt
|
||||
Updated change log and web page
|
||||
|
||||
------------------------------------ cycle - xorriso-1.3.3 -
|
||||
|
||||
|
||||
[]
|
||||
ChangeLog
|
||||
@ -15258,46 +14974,6 @@ Important: When adding a public API function then add its name to file
|
||||
===============================================================================
|
||||
|
||||
|
||||
>>> ??? Adjust partition tables after add-on session with
|
||||
-boot_image any keep ?
|
||||
|
||||
>>> ??? UTF-16 rather than UCS-2 for Joliet ?
|
||||
>>> ??? compare UCS-2 result with UTF-16 result and warn if it differs ?
|
||||
|
||||
-------------
|
||||
|
||||
>>> Have an AAIP pointer from any type of file to a (hidden ?) directory
|
||||
which represents Solaris openat(O_XATTR)
|
||||
|
||||
>>> -map and -extract O_XATTR attributes on Solaris
|
||||
man 2 openat:
|
||||
O_XATTR
|
||||
|
||||
If set in openat(), a relative path argument is inter-
|
||||
preted as a reference to an extended attribute of the
|
||||
file associated with the supplied file descriptor. This
|
||||
flag therefore requires the presence of a legal fildes
|
||||
argument. If set in open(), the implied file descriptor
|
||||
is that for the current working directory. Extended
|
||||
attributes must be referenced with a relative path; pro-
|
||||
viding an absolute path results in a normal file refer-
|
||||
ence.
|
||||
|
||||
man 5 fsattr:
|
||||
The set of existing attributes can be browsed by calling
|
||||
openat() with "." as the file name and the O_XATTR flag set,
|
||||
resulting in a file descriptor for the attribute directory.
|
||||
The list of attributes is obtained by calls to getdents(2)
|
||||
on the returned file descriptor.
|
||||
|
||||
|
||||
>>> create O_XATTR attributes in ISO from normal directory
|
||||
|
||||
>>> extract O_XATTR attributes in ISO to normal directory
|
||||
|
||||
|
||||
-----------------
|
||||
|
||||
- GRUB2 patching
|
||||
|
||||
-as mkisofs \
|
||||
@ -15380,6 +15056,9 @@ valgrind --leak-check=full \
|
||||
|
||||
----------------------------------------------------- Vladimir
|
||||
|
||||
- Implement Vladimir's UCS-2 to UTF-16BE patch:
|
||||
post/cdrskin/B20522_utf16.diff
|
||||
|
||||
- Multi-Session
|
||||
>>> hfsplus.c has no protection against 32 bit rollover due to block
|
||||
addresses that are lower than the HFS+ partition start.
|
||||
@ -15565,6 +15244,12 @@ That "allow" gets changed from "to do something" to "for [doing] something".
|
||||
|
||||
- ? Allow to adjust maximum path length
|
||||
|
||||
- Is libisofs rockridge.c safe for >250 chars in all cases ?
|
||||
Can NM be entirely in Continuation Area ?
|
||||
- It should be safe. The free SUA before NM is larger than 10.
|
||||
With untranslated_names=96: no long RR names are possible
|
||||
With long_names : >= 254 - 34-37-1 - 5-5-44-26-20 = 82
|
||||
|
||||
- Is it possible to allow longer Rock Ridge names ?
|
||||
- need a loop to calc and to call rrip_add_NM()
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
# Copyright (c) 2007 - 2013 Thomas Schmitt <scdbackup@gmx.net>
|
||||
# Provided under GPL version 2 or later.
|
||||
|
||||
AC_INIT([xorriso], [1.3.4], [http://libburnia-project.org])
|
||||
AC_INIT([xorriso], [1.3.2], [http://libburnia-project.org])
|
||||
AC_PREREQ([2.50])
|
||||
|
||||
AC_CANONICAL_HOST
|
||||
@ -23,14 +23,14 @@ AC_DEFINE([Xorriso_standalonE], [])
|
||||
|
||||
BURN_MAJOR_VERSION=1
|
||||
BURN_MINOR_VERSION=3
|
||||
BURN_MICRO_VERSION=4
|
||||
BURN_MICRO_VERSION=2
|
||||
AC_SUBST(BURN_MAJOR_VERSION)
|
||||
AC_SUBST(BURN_MINOR_VERSION)
|
||||
AC_SUBST(BURN_MICRO_VERSION)
|
||||
|
||||
LIBISOFS_MAJOR_VERSION=1
|
||||
LIBISOFS_MINOR_VERSION=3
|
||||
LIBISOFS_MICRO_VERSION=4
|
||||
LIBISOFS_MICRO_VERSION=2
|
||||
AC_SUBST(LIBISOFS_MAJOR_VERSION)
|
||||
AC_SUBST(LIBISOFS_MINOR_VERSION)
|
||||
AC_SUBST(LIBISOFS_MICRO_VERSION)
|
||||
|
@ -529,8 +529,7 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, char *show_adr,
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
}
|
||||
if(xorriso->read_speed != -2)
|
||||
burn_drive_set_speed(drive, xorriso->read_speed, 0);
|
||||
|
||||
read_ret= ret= isoburn_read_image(drive, ropts, &volset);
|
||||
|
||||
/* <<< Resetting to normal thresholds */
|
||||
@ -1593,15 +1592,12 @@ int Xorriso_choose_speed_factor(struct XorrisO *xorriso,
|
||||
}
|
||||
|
||||
|
||||
/* @flag bit0= do not issue TOC
|
||||
bit1= Report about outdev (else indev)
|
||||
bit2= Report about write speed (else read speed)
|
||||
@return <=0 error, 1 success
|
||||
/* @return <=0 error, 1 success
|
||||
*/
|
||||
int Xorriso_list_speeds_sub(struct XorrisO *xorriso, int flag)
|
||||
int Xorriso_list_speeds(struct XorrisO *xorriso, int flag)
|
||||
{
|
||||
int ret, high= -1, low= 0x7fffffff, is_cd= 0, i, speed;
|
||||
int recent_profile= 0, inout_flag, prev_speed= -1;
|
||||
int ret, high= -1, low= 0x7fffffff, is_cd= 0, i;
|
||||
int recent_profile= 0;
|
||||
char *respt, *speed_unit= "D";
|
||||
double speed_factor= 1385000.0, cd_factor= 75.0 * 2352;
|
||||
struct burn_drive_info *dinfo;
|
||||
@ -1610,14 +1606,8 @@ int Xorriso_list_speeds_sub(struct XorrisO *xorriso, int flag)
|
||||
|
||||
respt= xorriso->result_line;
|
||||
|
||||
inout_flag= (flag & 2);
|
||||
if(inout_flag && xorriso->out_drive_handle == NULL)
|
||||
inout_flag= 0;
|
||||
else if(xorriso->in_drive_handle == NULL)
|
||||
inout_flag= 2;
|
||||
ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
|
||||
"on attempt to obtain speed descriptor list",
|
||||
1 | inout_flag);
|
||||
"on attempt to obtain speed descriptor list", 1 | 2);
|
||||
if(ret<=0)
|
||||
return(0);
|
||||
if(ret == 2)
|
||||
@ -1628,21 +1618,18 @@ int Xorriso_list_speeds_sub(struct XorrisO *xorriso, int flag)
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
|
||||
ret= 0; goto ex;
|
||||
}
|
||||
if(!(flag & 1)) {
|
||||
ret= Xorriso_toc(xorriso, 1 | inout_flag);
|
||||
if(ret<=0) {
|
||||
sprintf(xorriso->info_text,
|
||||
"Cannot obtain overview of drive and media content");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
|
||||
ret= 0; goto ex;
|
||||
}
|
||||
ret= Xorriso_toc(xorriso, 3);
|
||||
if(ret<=0) {
|
||||
sprintf(xorriso->info_text,
|
||||
"Cannot obtain overview of drive and media content");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
|
||||
ret= 0; goto ex;
|
||||
}
|
||||
|
||||
for (item= speed_list; item != NULL; item= item->next) {
|
||||
|
||||
sprintf(xorriso->info_text,
|
||||
"read_speed= %5dk , write_speed= %5dk , source= %d",
|
||||
item->read_speed, item->write_speed, item->source);
|
||||
sprintf(xorriso->info_text, "speed= %5dk , source= %d",
|
||||
item->write_speed, item->source);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "DEBUG", 0);
|
||||
|
||||
if(item->profile_loaded >= 0x08 && item->profile_loaded <= 0x0a)
|
||||
@ -1651,38 +1638,29 @@ int Xorriso_list_speeds_sub(struct XorrisO *xorriso, int flag)
|
||||
recent_profile= item->profile_loaded;
|
||||
if(item->source == 1) {
|
||||
/* CD mode page 2Ah : report only if not same speed by GET PERFORMANCE */
|
||||
if(!(flag & 4))
|
||||
continue; /* 2Ah only tells write speed */
|
||||
for(other= speed_list; other != NULL; other= other->next)
|
||||
if(other->source == 2 && item->write_speed == other->write_speed)
|
||||
break;
|
||||
if(other != NULL)
|
||||
continue;
|
||||
}
|
||||
if(flag & 4) {
|
||||
sprintf(respt, "Write speed : ");
|
||||
speed= item->write_speed;
|
||||
} else {
|
||||
sprintf(respt, "Read speed : ");
|
||||
speed= item->read_speed;
|
||||
}
|
||||
if(speed == prev_speed)
|
||||
continue;
|
||||
prev_speed= speed;
|
||||
Xorriso_choose_speed_factor(xorriso, speed,
|
||||
Xorriso_choose_speed_factor(xorriso, item->write_speed,
|
||||
item->profile_loaded,
|
||||
&speed_factor, &speed_unit, 0);
|
||||
sprintf(respt, "Write speed : ");
|
||||
sprintf(respt + strlen(respt), " %5dk , %4.1fx%s\n",
|
||||
speed, ((double) speed) * 1000.0 / speed_factor, speed_unit);
|
||||
item->write_speed,
|
||||
((double) item->write_speed) * 1000.0 / speed_factor,
|
||||
speed_unit);
|
||||
Xorriso_result(xorriso,0);
|
||||
if(speed > high)
|
||||
high= speed;
|
||||
if(speed < low)
|
||||
low= speed;
|
||||
if(item->write_speed > high)
|
||||
high= item->write_speed;
|
||||
if(item->write_speed < low)
|
||||
low= item->write_speed;
|
||||
}
|
||||
|
||||
/* Maybe there is ATIP info (about write speed only) */
|
||||
if(is_cd && (flag & 4)) {
|
||||
/* Maybe there is ATIP info */
|
||||
if(is_cd) {
|
||||
ret= burn_disc_read_atip(drive);
|
||||
if(ret < 0)
|
||||
goto ex;
|
||||
@ -1714,24 +1692,18 @@ int Xorriso_list_speeds_sub(struct XorrisO *xorriso, int flag)
|
||||
if(high > -1) {
|
||||
Xorriso_choose_speed_factor(xorriso, low, recent_profile,
|
||||
&speed_factor, &speed_unit, 0);
|
||||
if(flag & 4)
|
||||
sprintf(respt, "Write speed L: ");
|
||||
else
|
||||
sprintf(respt, "Read speed L : ");
|
||||
sprintf(respt, "Write speed L: ");
|
||||
sprintf(respt + strlen(respt), " %5dk , %4.1fx%s\n",
|
||||
low, ((double) low) * 1000.0 / speed_factor, speed_unit);
|
||||
Xorriso_result(xorriso,0);
|
||||
Xorriso_choose_speed_factor(xorriso, low, recent_profile,
|
||||
&speed_factor, &speed_unit, 0);
|
||||
if(flag & 4)
|
||||
sprintf(respt, "Write speed H: ");
|
||||
else
|
||||
sprintf(respt, "Read speed H : ");
|
||||
sprintf(respt, "Write speed H: ");
|
||||
sprintf(respt + strlen(respt), " %5dk , %4.1fx%s\n",
|
||||
high, ((double) high) * 1000.0 / speed_factor, speed_unit);
|
||||
Xorriso_result(xorriso,0);
|
||||
ret= burn_drive_get_best_speed(drive, 0, &item, 2);
|
||||
if(ret > 0 && item != NULL && (flag & 4))
|
||||
if(ret > 0 && item != NULL)
|
||||
if(item->write_speed != high) {
|
||||
sprintf(respt, "Write speed 0: %5dk , %4.1fx%s\n",
|
||||
item->write_speed,
|
||||
@ -1740,8 +1712,7 @@ int Xorriso_list_speeds_sub(struct XorrisO *xorriso, int flag)
|
||||
}
|
||||
} else {
|
||||
sprintf(xorriso->info_text,
|
||||
"Could not get any %s speed information from drive",
|
||||
(flag & 4) ? "write" : "read");
|
||||
"Could not get any write speed information from drive");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
|
||||
ret= 0; goto ex;
|
||||
}
|
||||
@ -1753,35 +1724,6 @@ ex:;
|
||||
}
|
||||
|
||||
|
||||
int Xorriso_list_speeds(struct XorrisO *xorriso, int flag)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if(xorriso->out_drive_handle == NULL && xorriso->in_drive_handle == NULL) {
|
||||
Xorriso_msgs_submit(xorriso, 0,
|
||||
"No drive aquired on attempt to list speeds", 0, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
if(xorriso->in_drive_handle != NULL) {
|
||||
ret= Xorriso_list_speeds_sub(xorriso, 0);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
}
|
||||
if(xorriso->out_drive_handle != NULL &&
|
||||
xorriso->out_drive_handle != xorriso->in_drive_handle) {
|
||||
ret= Xorriso_list_speeds_sub(xorriso, 2);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
}
|
||||
if(xorriso->out_drive_handle != NULL) {
|
||||
ret= Xorriso_list_speeds_sub(xorriso, 1 | 2 | 4);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
}
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
/* @param flag bit0= cdrecord style
|
||||
bit1= obtain outdrive, else indrive
|
||||
@return <=0 error, 1 success
|
||||
@ -2146,9 +2088,6 @@ int Xorriso_check_md5_range(struct XorrisO *xorriso, off_t start_lba,
|
||||
Xorriso_no_malloc_memory(xorriso, NULL, 0);
|
||||
goto ex;
|
||||
}
|
||||
if(xorriso->read_speed != -2)
|
||||
burn_drive_set_speed(drive, xorriso->read_speed, 0);
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
for(pos= start_lba; pos < end_lba; pos+= 32) {
|
||||
to_read= 32;
|
||||
if(pos + to_read > end_lba)
|
||||
@ -2668,9 +2607,6 @@ int Xorriso_check_interval(struct XorrisO *xorriso, struct SpotlisT *spotlist,
|
||||
goto ex;
|
||||
}
|
||||
|
||||
if(xorriso->read_speed != -2)
|
||||
burn_drive_set_speed(drive, xorriso->read_speed, 0);
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
start_lba= from_lba;
|
||||
to_read= read_chunk;
|
||||
post_read_time= Sfile_microtime(0);
|
||||
@ -2936,8 +2872,7 @@ int Xorriso_check_media(struct XorrisO *xorriso, struct SpotlisT **spotlist,
|
||||
int blocks, os_errno, i, j, last_track_end= -1, track_blocks, track_lba;
|
||||
int num_sessions, num_tracks, declare_untested= 0, md5_start;
|
||||
int read_capacity= -1, end_lba, hret, count, quality, profile_no;
|
||||
int track_bad_claim= 0;
|
||||
char *toc_info= NULL, profile_name[80], msg[160];
|
||||
char *toc_info= NULL, profile_name[80];
|
||||
struct burn_drive *drive;
|
||||
struct burn_drive_info *dinfo;
|
||||
enum burn_disc_status s;
|
||||
@ -3039,21 +2974,7 @@ int Xorriso_check_media(struct XorrisO *xorriso, struct SpotlisT **spotlist,
|
||||
track_lba + track_blocks < read_capacity + 32 &&
|
||||
(profile_no == 0x41 || profile_no == 0x40)))
|
||||
track_blocks= read_capacity - track_lba;
|
||||
if(track_lba + track_blocks > read_capacity) {
|
||||
if(track_bad_claim < track_lba + track_blocks)
|
||||
track_bad_claim= track_lba + track_blocks;
|
||||
if(track_lba >= read_capacity) {
|
||||
sprintf(msg, "-check_media: Track %d of session %d begins after end of readable medium area.",
|
||||
j + 1, i + 1);
|
||||
Xorriso_msgs_submit(xorriso, 0, msg, 0, "WARNING", 0);
|
||||
continue;
|
||||
} else {
|
||||
sprintf(msg, "-check_media: Track %d of session %d extends over the end of readable medium area.",
|
||||
j + 1, i + 1);
|
||||
Xorriso_msgs_submit(xorriso, 0, msg, 0, "WARNING", 0);
|
||||
track_blocks= read_capacity - track_lba;
|
||||
}
|
||||
}
|
||||
|
||||
md5_start= track_lba;
|
||||
if(i == 0 && j == 0) {
|
||||
if(track_lba == 32) {
|
||||
@ -3100,14 +3021,6 @@ int Xorriso_check_media(struct XorrisO *xorriso, struct SpotlisT **spotlist,
|
||||
}
|
||||
}
|
||||
|
||||
if(track_bad_claim > read_capacity) {
|
||||
ret= Spotlist_add_item(*spotlist, read_capacity,
|
||||
track_bad_claim - read_capacity,
|
||||
Xorriso_read_quality_unreadablE, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
}
|
||||
|
||||
} else if(mode == 1) { /* Image range */
|
||||
/* Default is the emulated disc capacity.
|
||||
*/
|
||||
@ -3255,7 +3168,7 @@ int Xorriso_pretend_full_disc(struct XorrisO *xorriso, int flag)
|
||||
"on attempt to let libburn pretend having a closed medium", 2);
|
||||
if(ret<=0)
|
||||
return(ret);
|
||||
ret= burn_disc_pretend_full_uncond(drive);
|
||||
ret= burn_disc_pretend_full(drive);
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
if(ret <= 0) {
|
||||
sprintf(xorriso->info_text,
|
||||
|
@ -67,7 +67,6 @@ int Xorriso_cdrskin_help(struct XorrisO *xorriso, int flag)
|
||||
"\t-toc\t\tretrieve and print TOC/PMA data",
|
||||
"\t-atip\t\tretrieve media state, print \"Is *erasable\"",
|
||||
"\t-multi\t\tgenerate a TOC that allows multi session",
|
||||
"\t--multi_if_possible\tapply -multi if the medium supports it",
|
||||
"\t-waiti\t\twait until input is available before opening SCSI",
|
||||
"\t-tao\t\tWrite disk in TAO mode.",
|
||||
"\t-dao\t\tWrite disk in SAO mode.",
|
||||
@ -109,8 +108,7 @@ int Xorriso_cdrskin(struct XorrisO *xorriso, char *whom, int argc, char **argv,
|
||||
int do_atip= 0, do_checkdrive= 0, do_eject= 0, do_scanbus= 0;
|
||||
int do_toc= 0, do_verbous= 0, do_version= 0, do_help= 0, do_waiti= 0;
|
||||
int do_multi= 0, do_msinfo= 0, do_grow= 0, do_isosize= 0, do_xa1= 0;
|
||||
int do_auto_close= 0;
|
||||
double write_start_address= -1.0, tsize= -1.0, mem_auto_close;
|
||||
double write_start_address= -1.0, tsize= -1.0;
|
||||
char *track_source= NULL, *dev_adr= NULL, *cpt;
|
||||
char mem_report_about_text[80], *report_about= "SORRY", blank_mode[80];
|
||||
char speed[80], *argpt;
|
||||
@ -167,7 +165,6 @@ static char blank_help[][80]= {
|
||||
};
|
||||
|
||||
mem_do_close= xorriso->do_close;
|
||||
mem_auto_close= xorriso->auto_close;
|
||||
Xorriso_alloc_meM(track_source, char, SfileadrL);
|
||||
Xorriso_alloc_meM(dev_adr, char, SfileadrL);
|
||||
|
||||
@ -300,10 +297,6 @@ no_volunteer:;
|
||||
do_msinfo= 1;
|
||||
} else if(strcmp(argpt, "-multi")==0) {
|
||||
do_multi= 1;
|
||||
do_auto_close= 0;
|
||||
} else if(strcmp(argv[i], "--multi_if_possible") == 0) {
|
||||
do_multi= 1;
|
||||
do_auto_close= 1;
|
||||
} else if(strcmp(argpt, "-nopad")==0) {
|
||||
xorriso->padding= 0;
|
||||
} else if(strcmp(argv[i], "--no_rc")==0) { /* intentional: argv[i] */
|
||||
@ -517,15 +510,9 @@ no_volunteer:;
|
||||
}
|
||||
if(track_source[0]) {
|
||||
xorriso->do_close= !do_multi;
|
||||
xorriso->auto_close= do_auto_close;
|
||||
ret= Xorriso_burn_track(xorriso, (off_t) write_start_address,
|
||||
track_source, (off_t) tsize,
|
||||
(!!do_grow) | ((!!do_isosize) << 1) | ((do_xa1 == 1) << 2));
|
||||
if(ret == 2) {
|
||||
ret= Xorriso_retry_burn_track(xorriso, (off_t) write_start_address,
|
||||
track_source, (off_t) tsize,
|
||||
(!!do_grow) | ((!!do_isosize) << 1) | ((do_xa1 == 1) << 2));
|
||||
}
|
||||
aq_ret= Xorriso_reaquire_outdev(xorriso, 2*(ret>0));
|
||||
if(ret<=0 && ret<aq_ret)
|
||||
goto ex;
|
||||
@ -547,7 +534,6 @@ ex:;
|
||||
}
|
||||
Xorriso_option_report_about(xorriso, mem_report_about_text, 0);
|
||||
xorriso->do_close= mem_do_close;
|
||||
xorriso->auto_close= mem_auto_close;
|
||||
Xorriso_free_meM(dev_adr);
|
||||
Xorriso_free_meM(track_source);
|
||||
return(ret);
|
||||
@ -2057,9 +2043,6 @@ rr_reloc_dir:;
|
||||
Xorriso_relax_compliance(xorriso, "deep_paths_off:long_paths_off", 0);
|
||||
|
||||
} else if(strcmp(argpt, "-log-file") == 0) {
|
||||
if(i + 1 >= argc)
|
||||
goto not_enough_args;
|
||||
i+= 1;
|
||||
/* was already handled before this loop */;
|
||||
|
||||
} else if(strcmp(argpt, "-gui") == 0) {
|
||||
@ -2481,7 +2464,6 @@ ex:;
|
||||
free(weight_list);
|
||||
if(delay_opt_list != NULL)
|
||||
free(delay_opt_list);
|
||||
Xorriso_free_meM(sort_file);
|
||||
Xorriso_free_meM(sfe);
|
||||
Xorriso_free_meM(adr);
|
||||
Xorriso_free_meM(pathspec);
|
||||
|
@ -40,7 +40,6 @@
|
||||
/* @param flag bit0= give directory x-permission where is r-permission
|
||||
bit1= do not transfer ACL or xattr
|
||||
bit2= record dev,inode (only if enabled by xorriso)
|
||||
bit3= with bit0: pretend to have indeed a directory
|
||||
bit5= transfer ACL or xattr from eventual link target
|
||||
*/
|
||||
int Xorriso_transfer_properties(struct XorrisO *xorriso, struct stat *stbuf,
|
||||
@ -57,7 +56,7 @@ int Xorriso_transfer_properties(struct XorrisO *xorriso, struct stat *stbuf,
|
||||
/* Will drop ACL. Update mode S_IRWXG by eventual group:: ACL entry */
|
||||
iso_local_get_perms_wo_acl(disk_path, &mode, flag & 32);
|
||||
|
||||
if((flag & 1) && ((flag & 8) || S_ISDIR(mode))) {
|
||||
if((flag&1) && S_ISDIR(mode)) {
|
||||
if(mode&S_IRUSR)
|
||||
mode|= S_IXUSR;
|
||||
if(mode&S_IRGRP)
|
||||
@ -668,7 +667,7 @@ int Xorriso_copy_implicit_properties(struct XorrisO *xorriso, IsoDir *dir,
|
||||
if(stat(nfd, &stbuf)==-1)
|
||||
{ret= 0; goto ex;}
|
||||
Xorriso_transfer_properties(xorriso, &stbuf, nfd, (IsoNode *) dir,
|
||||
((8 | 1) * ((flag&1) && d==0)) | 4 | 32);
|
||||
((flag&1) && d==0) | 4 | 32);
|
||||
sprintf(xorriso->info_text, "Copied properties for ");
|
||||
Text_shellsafe(ni, xorriso->info_text, 1);
|
||||
sprintf(xorriso->info_text+strlen(xorriso->info_text), " from ");
|
||||
@ -1324,7 +1323,7 @@ int Xorriso_rmi(struct XorrisO *xorriso, void *boss_iter, off_t boss_mem,
|
||||
char *path, int flag)
|
||||
{
|
||||
int ret, is_dir= 0, pl, not_removed= 0, fret;
|
||||
IsoNode *victim_node= NULL, *node;
|
||||
IsoNode *victim_node, *node;
|
||||
IsoDir *boss_node, *root_dir;
|
||||
IsoDirIter *iter= NULL;
|
||||
IsoImage *volume;
|
||||
@ -3032,7 +3031,7 @@ int Xorriso_findi(struct XorrisO *xorriso, struct FindjoB *job,
|
||||
char *name;
|
||||
off_t mem;
|
||||
IsoNode **node_array= NULL;
|
||||
int node_count= 0, node_idx;
|
||||
int node_count, node_idx;
|
||||
char *path= NULL, *abs_path= NULL;
|
||||
|
||||
if(xorriso->request_to_abort)
|
||||
|
@ -40,7 +40,7 @@ create_gnu_xorriso="yes"
|
||||
current_dir=$(pwd)
|
||||
lone_dir="$current_dir"/"xorriso-standalone"
|
||||
|
||||
xorriso_rev=1.3.4
|
||||
xorriso_rev=1.3.2
|
||||
# For unstable uploads and patch level 0 of stable releases:
|
||||
xorriso_pl=""
|
||||
# For higher patch levels of stable releases:
|
||||
|
@ -1913,19 +1913,10 @@ int Xorriso_option_clone(struct XorrisO *xorriso, char *origin, char *dest,
|
||||
}
|
||||
|
||||
|
||||
/* Option -close "on"|"off"|"as_needed" */
|
||||
/* Option -close "on"|"off" */
|
||||
int Xorriso_option_close(struct XorrisO *xorriso, char *mode, int flag)
|
||||
{
|
||||
if(strcmp(mode, "off") == 0) {
|
||||
xorriso->do_close= 0;
|
||||
xorriso->auto_close= 0;
|
||||
} else if(strcmp(mode, "as_needed") == 0) {
|
||||
xorriso->do_close= 0;
|
||||
xorriso->auto_close= 1;
|
||||
} else {
|
||||
xorriso->do_close= 1;
|
||||
xorriso->auto_close= 0;
|
||||
}
|
||||
xorriso->do_close= !!strcmp(mode, "off");
|
||||
return(1);
|
||||
}
|
||||
|
||||
@ -1975,7 +1966,6 @@ int Xorriso_option_close_filter_list(struct XorrisO *xorriso, int flag)
|
||||
int Xorriso_option_commit(struct XorrisO *xorriso, int flag)
|
||||
{
|
||||
int ret;
|
||||
char eternal_problem_status_text_mem[80];
|
||||
|
||||
if(!Xorriso_change_is_pending(xorriso, 0)) {
|
||||
sprintf(xorriso->info_text, "-commit: No image modifications pending");
|
||||
@ -1989,14 +1979,7 @@ int Xorriso_option_commit(struct XorrisO *xorriso, int flag)
|
||||
{ret= 2; goto ex;}
|
||||
}
|
||||
Xorriso_process_errfile(xorriso, 0, "burn session start", 0, 1);
|
||||
Xorriso_get_problem_status(xorriso, eternal_problem_status_text_mem, 1);
|
||||
ret= Xorriso_write_session(xorriso, 0);
|
||||
if(ret == 2) {
|
||||
if(Xorriso__severity_cmp("WARNING", eternal_problem_status_text_mem) > 0)
|
||||
strcpy(eternal_problem_status_text_mem, "WARNING");
|
||||
Xorriso_set_problem_status(xorriso, eternal_problem_status_text_mem, 1);
|
||||
ret= Xorriso_retry_write_session(xorriso, 0);
|
||||
}
|
||||
Xorriso_process_errfile(xorriso, 0, "burn session end", 0, 1);
|
||||
if(ret<=0)
|
||||
goto ex;
|
||||
|
@ -1533,9 +1533,6 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
|
||||
" those lists empty. Defaulty entry in \"risky\" is \"/dev\".",
|
||||
" -grow_blindly \"off\"|predicted_nwa",
|
||||
" Switch between modifying and blind growing.",
|
||||
" -read_speed number[\"k/s\"|\"m/s\"|\"[x]CD\"|\"[x]DVD\"|\"[x]BD\"]",
|
||||
" Set the read speed. Default is \"none\" = do not set speed",
|
||||
" before reading.",
|
||||
" -load \"session\"|\"track\"|\"lba\"|\"sbsector\"|\"volid\"|\"auto\" id",
|
||||
" Load a particular (outdated) ISO image from a -dev or",
|
||||
" -indev which hosts more than one session.",
|
||||
@ -1900,14 +1897,14 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
|
||||
" Give up any unejected drive afterwards.",
|
||||
" -write_type \"auto\"|\"tao\"|\"sao/dao\"",
|
||||
" Set write type for CD-R[W], DVD-R[W], DVD+R, BD-R.",
|
||||
" -close \"on\"|\"off\"|\"as_needed\"",
|
||||
" -close \"on\"|\"off\"",
|
||||
" If \"on\" then mark the written medium as not appendable.",
|
||||
" -padding number[\"k\"|\"m\"]|\"included\"|\"appended\"",
|
||||
" Append extra bytes to image stream. (Default is 300k)",
|
||||
" -dummy \"on\"|\"off\"",
|
||||
" If \"on\" simulate burning. Refuse if medium cannot simulate.",
|
||||
" -speed number[\"k/s\"|\"m/s\"|\"[x]CD\"|\"[x]DVD\"|\"[x]BD\"]",
|
||||
" Set the burn speed. Default is \"max\" = maximum speed.",
|
||||
" Set the burn speed. Default is 0 = maximum speed.",
|
||||
" -stream_recording \"on\"|\"off\"",
|
||||
" Try to circumvent slow checkread on DVD-RAM, BD-RE, BD-R.",
|
||||
" -dvd_obs \"default\"|\"32k\"|\"64k\"",
|
||||
|
@ -1318,34 +1318,19 @@ int Xorriso_option_sleep(struct XorrisO *xorriso, char *duration, int flag)
|
||||
}
|
||||
|
||||
|
||||
/* Commands -speed , -read_speed */
|
||||
/* @param flag bit0= -read_speed rather than -speed
|
||||
*/
|
||||
/* Option -speed */
|
||||
int Xorriso_option_speed(struct XorrisO *xorriso, char *speed, int flag)
|
||||
{
|
||||
int is_cd= 1, unit_found= 0, ret, profile_number, intspeed= 1;
|
||||
double num= -2.0;
|
||||
int is_cd= 1, unit_found= 0, ret, profile_number;
|
||||
double num;
|
||||
char *cpt, profile_name[80];
|
||||
|
||||
if(speed[0] == 0 || strcmp(speed, "any") == 0 || strcmp(speed, "max") == 0) {
|
||||
intspeed= 0;
|
||||
} else if(strcmp(speed, "min") == 0) {
|
||||
intspeed= -1;
|
||||
} else if(strcmp(speed, "none") == 0) {
|
||||
intspeed= -2;
|
||||
} else {
|
||||
sscanf(speed,"%lf",&num);
|
||||
if(num <= 0)
|
||||
intspeed= num;
|
||||
}
|
||||
if(intspeed <= 0) {
|
||||
if(flag & 1)
|
||||
xorriso->read_speed= intspeed;
|
||||
else
|
||||
xorriso->write_speed= intspeed;
|
||||
if(speed[0]==0 || strcmp(speed, "any")==0) {
|
||||
xorriso->speed= 0; /* full speed */
|
||||
return(1);
|
||||
}
|
||||
|
||||
sscanf(speed,"%lf",&num);
|
||||
for(cpt= speed+strlen(speed)-1; cpt>=speed; cpt--)
|
||||
if(isdigit(*cpt) || *cpt=='.')
|
||||
break;
|
||||
@ -1372,8 +1357,7 @@ dvd_speed:;
|
||||
bd_speed:;
|
||||
num*= 4495.625;
|
||||
} else {
|
||||
ret= Xorriso_get_profile(xorriso, &profile_number, profile_name,
|
||||
2 * !(flag & 1));
|
||||
ret= Xorriso_get_profile(xorriso, &profile_number, profile_name, 2);
|
||||
is_cd= (ret==2);
|
||||
if(is_cd)
|
||||
goto cd_speed;
|
||||
@ -1389,13 +1373,9 @@ bd_speed:;
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
|
||||
return(0);
|
||||
}
|
||||
intspeed= num;
|
||||
if(intspeed < num)
|
||||
intspeed++;
|
||||
if(flag & 1)
|
||||
xorriso->read_speed= intspeed;
|
||||
else
|
||||
xorriso->write_speed= intspeed;
|
||||
xorriso->speed= num;
|
||||
if(xorriso->speed<num)
|
||||
xorriso->speed++;
|
||||
return(1);
|
||||
}
|
||||
|
||||
@ -2099,9 +2079,7 @@ int Xorriso_option_zisofs(struct XorrisO *xorriso, char *mode, int flag)
|
||||
xorriso->zlib_level= num;
|
||||
|
||||
} else if(strncmp(cpt, "ziso_used=", 10) == 0 ||
|
||||
strncmp(cpt, "osiz_used=", 10) == 0 ||
|
||||
strncmp(cpt, "gzip_used=", 10) == 0 ||
|
||||
strncmp(cpt, "gunzip_used=", 12) == 0) {
|
||||
strncmp(cpt, "osiz_used=", 10) == 0) {
|
||||
/* (ignored info from -status) */;
|
||||
|
||||
} else if(strncmp(cpt, "block_size=", 11)==0) {
|
||||
|
@ -197,24 +197,14 @@ ex:;
|
||||
}
|
||||
|
||||
|
||||
/* @param flag bit0= get eternal problem status
|
||||
*/
|
||||
int Xorriso_get_problem_status(struct XorrisO *xorriso, char severity[80],
|
||||
int flag)
|
||||
{
|
||||
if(flag & 1) {
|
||||
strcpy(severity, xorriso->eternal_problem_status_text);
|
||||
return(xorriso->eternal_problem_status);
|
||||
} else {
|
||||
strcpy(severity, xorriso->problem_status_text);
|
||||
return(xorriso->problem_status);
|
||||
}
|
||||
strcpy(severity, xorriso->problem_status_text);
|
||||
return(xorriso->problem_status);
|
||||
}
|
||||
|
||||
|
||||
/* @param flag bit0= set eternal problem status to severity,
|
||||
and set problem status to ALL
|
||||
*/
|
||||
int Xorriso_set_problem_status(struct XorrisO *xorriso, char *severity,
|
||||
int flag)
|
||||
{
|
||||
@ -247,15 +237,9 @@ int Xorriso_set_problem_status(struct XorrisO *xorriso, char *severity,
|
||||
|
||||
#endif /* Xorriso_fetch_with_msg_queueS */
|
||||
|
||||
if(flag & 1) {
|
||||
strcpy(xorriso->problem_status_text, "ALL");
|
||||
Xorriso__text_to_sev(xorriso->problem_status_text,
|
||||
&(xorriso->problem_status), 0);
|
||||
} else {
|
||||
xorriso->problem_status= sev;
|
||||
strcpy(xorriso->problem_status_text, sev_text);
|
||||
}
|
||||
if(sev > xorriso->eternal_problem_status || (flag & 1)) {
|
||||
xorriso->problem_status= sev;
|
||||
strcpy(xorriso->problem_status_text, sev_text);
|
||||
if(sev > xorriso->eternal_problem_status) {
|
||||
xorriso->eternal_problem_status= sev;
|
||||
strcpy(xorriso->eternal_problem_status_text, sev_text);
|
||||
}
|
||||
@ -531,7 +515,7 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
|
||||
"pacifier","padding","path_list","pathspecs","pkt_output",
|
||||
"preparer_id","print","print_info","print_mark","prompt",
|
||||
"prog","prog_help","publisher","quoted_not_list","quoted_path_list",
|
||||
"read_speed","reassure","report_about","rockridge",
|
||||
"reassure","report_about","rockridge",
|
||||
"rom_toc_scan","rr_reloc_dir","scsi_log",
|
||||
"session_log","sh_style_result","signal_handling","sleep",
|
||||
"speed","split_size","status","status_history_max",
|
||||
@ -665,8 +649,7 @@ int Xorriso_cmd_sorting_rank(struct XorrisO *xorriso,
|
||||
"mount_opts", "mount_cmd", "session_string",
|
||||
|
||||
"* Influencing the behavior of image loading:",
|
||||
"read_speed", "load", "displacement",
|
||||
"drive_class", "assert_volid", "in_charset",
|
||||
"load", "displacement", "drive_class", "assert_volid", "in_charset",
|
||||
"auto_charset", "hardlinks", "acl", "xattr", "md5", "for_backup",
|
||||
"disk_dev_ino", "rom_toc_scan", "calm_drive", "ban_stdio_write",
|
||||
"early_stdio_test", "data_cache_size",
|
||||
@ -1628,10 +1611,6 @@ next_command:;
|
||||
} else if(strcmp(cmd,"read_mkisofsrc")==0) {
|
||||
ret= Xorriso_option_read_mkisofsrc(xorriso, 0);
|
||||
|
||||
} else if(strcmp(cmd,"read_speed")==0) {
|
||||
(*idx)++;
|
||||
ret= Xorriso_option_speed(xorriso, arg1, 1);
|
||||
|
||||
} else if(strcmp(cmd,"reassure")==0) {
|
||||
(*idx)++;
|
||||
ret= Xorriso_option_reassure(xorriso, arg1, 0);
|
||||
@ -2675,21 +2654,12 @@ int Xorriso_convert_datestring(struct XorrisO *xorriso, char *cmd,
|
||||
{
|
||||
int ret;
|
||||
|
||||
*t_type= 0;
|
||||
if(strcmp(time_type, "a")==0)
|
||||
(*t_type)|= 1;
|
||||
else if(strcmp(time_type, "a-c")==0)
|
||||
(*t_type)|= 1 | 256;
|
||||
else if(strcmp(time_type, "m")==0)
|
||||
(*t_type)|= 4;
|
||||
else if(strcmp(time_type, "m-c")==0)
|
||||
(*t_type)|= 4 | 256;
|
||||
else if(strcmp(time_type, "b")==0)
|
||||
(*t_type)|= 5;
|
||||
else if(strcmp(time_type, "b-c")==0)
|
||||
(*t_type)|= 5 | 256;
|
||||
else if(strcmp(time_type, "c")==0)
|
||||
(*t_type)|= 2 | 256;
|
||||
else {
|
||||
sprintf(xorriso->info_text, "%s: Unrecognized type '%s'", cmd, time_type);
|
||||
if(!(flag & 1))
|
||||
|
@ -72,10 +72,9 @@ int Xorriso_dialog_input(struct XorrisO *xorriso, char line[], int linesize,
|
||||
*/
|
||||
{
|
||||
char *cpt= NULL, **argv= NULL, *linept, *why_append= "";
|
||||
int ret, argc= 0, base_length= 0, l, append_line;
|
||||
int ret, argc= 0, base_length= 0, l, append_line, no_history= 0;
|
||||
#ifdef Xorriso_with_readlinE
|
||||
static char last_input[SfileadrL]= {""};
|
||||
int no_history= 0;
|
||||
#endif /* ! Xorriso_with_readlinE */
|
||||
double tdiff;
|
||||
struct timeval tv;
|
||||
@ -87,10 +86,7 @@ int Xorriso_dialog_input(struct XorrisO *xorriso, char line[], int linesize,
|
||||
|
||||
fflush(stdout);
|
||||
linept= line;
|
||||
|
||||
#ifdef Xorriso_with_readlinE
|
||||
no_history= (flag & 1) || xorriso->use_stdin;
|
||||
#endif
|
||||
|
||||
get_single:;
|
||||
|
||||
@ -731,9 +727,7 @@ bit15= with bit1 to bit3: close depicted log file
|
||||
fflush(pktlog_fp);
|
||||
}
|
||||
if(flag & 8) {
|
||||
ret= truncate(text, (off_t) 0);
|
||||
if(ret == -1 && errno != ENOENT)
|
||||
{ret= 0; goto ex;}
|
||||
truncate(text, (off_t) 0);
|
||||
xorriso->stderr_fp= fopen(text, "a");
|
||||
if(xorriso->stderr_fp == NULL)
|
||||
{ret= 0; goto ex;}
|
||||
@ -2443,25 +2437,6 @@ int Xorriso_boot_status_sysarea(struct XorrisO *xorriso, char *filter,
|
||||
}
|
||||
|
||||
|
||||
static char *Xorriso__speedname(int speed)
|
||||
{
|
||||
static char name[64];
|
||||
|
||||
if(speed > 0) {
|
||||
sprintf(name, "%dkB/s", speed);
|
||||
return(name);
|
||||
} else if(speed == 0) {
|
||||
return("max");
|
||||
} else if(speed == -1) {
|
||||
return("min");
|
||||
} else if(speed == -2) {
|
||||
return("none");
|
||||
}
|
||||
sprintf(name, "%d", speed);
|
||||
return(name);
|
||||
}
|
||||
|
||||
|
||||
int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
|
||||
/*
|
||||
bit0= do only report non-default settings
|
||||
@ -3049,14 +3024,8 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
|
||||
is_default= (xorriso->read_speed == -2);
|
||||
sprintf(line,"-read_speed %s\n", Xorriso__speedname(xorriso->read_speed));
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
|
||||
is_default= !(xorriso->auto_close || xorriso->do_close);
|
||||
sprintf(line,"-close %s\n",xorriso->auto_close ? "as_needed" :
|
||||
xorriso->do_close ? "on" : "off");
|
||||
is_default= !xorriso->do_close;
|
||||
sprintf(line,"-close %s\n",(xorriso->do_close ? "on" : "off"));
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
|
||||
@ -3071,8 +3040,8 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
|
||||
is_default= (xorriso->write_speed==0);
|
||||
sprintf(line,"-speed %s\n", Xorriso__speedname(xorriso->write_speed));
|
||||
is_default= (xorriso->speed==0);
|
||||
sprintf(line,"-speed %dkB/s\n", xorriso->speed);
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
|
||||
|
@ -67,8 +67,6 @@ int Xorriso_check_multi(struct XorrisO *xorriso, struct burn_drive *drive,
|
||||
struct burn_multi_caps *caps= NULL;
|
||||
char profile_name[80];
|
||||
|
||||
if(xorriso->auto_close)
|
||||
xorriso->do_close= 0;
|
||||
if(!xorriso->do_close) {
|
||||
burn_disc_get_profile(drive, &profile_no, profile_name);
|
||||
if(profile_no == 0x14) { /* DVD-RW sequential */
|
||||
@ -76,12 +74,7 @@ int Xorriso_check_multi(struct XorrisO *xorriso, struct burn_drive *drive,
|
||||
if(caps != NULL)
|
||||
burn_disc_free_multi_caps(&caps);
|
||||
if(ret == 0) {
|
||||
if(xorriso->auto_close) {
|
||||
sprintf(xorriso->info_text,
|
||||
"-close \"as_needed\" triggered -close \"on\"");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
|
||||
xorriso->do_close= 1;
|
||||
} else if(flag & 1) {
|
||||
if(flag & 1) {
|
||||
sprintf(xorriso->info_text,
|
||||
"This DVD-RW media can only be written without option -multi");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
@ -91,7 +84,6 @@ int Xorriso_check_multi(struct XorrisO *xorriso, struct burn_drive *drive,
|
||||
sprintf(xorriso->info_text,
|
||||
"After writing a session without -multi, apply blank=all");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "HINT", 0);
|
||||
return(0);
|
||||
} else {
|
||||
sprintf(xorriso->info_text,
|
||||
"This DVD-RW media can only be written with -close \"on\"");
|
||||
@ -102,26 +94,18 @@ int Xorriso_check_multi(struct XorrisO *xorriso, struct burn_drive *drive,
|
||||
sprintf(xorriso->info_text,
|
||||
"After writing a session with -close \"on\", apply -blank \"all\"");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "HINT", 0);
|
||||
return(0);
|
||||
}
|
||||
return(0);
|
||||
}
|
||||
} else if(profile_no == 0x15) { /* DVD-RW DL */
|
||||
if(xorriso->auto_close) {
|
||||
sprintf(xorriso->info_text,
|
||||
"-close \"as_needed\" triggered -close \"on\"");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
|
||||
xorriso->do_close= 1;
|
||||
} else if(flag & 1) {
|
||||
if(flag & 1)
|
||||
sprintf(xorriso->info_text,
|
||||
"DVD-R DL media can only be written without option -multi");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
} else {
|
||||
else
|
||||
sprintf(xorriso->info_text,
|
||||
"DVD-R DL media can only be written with -close \"on\"");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
}
|
||||
return(1);
|
||||
@ -132,10 +116,8 @@ int Xorriso_make_write_options(
|
||||
struct XorrisO *xorriso, struct burn_drive *drive,
|
||||
struct burn_write_opts **burn_options, int flag)
|
||||
{
|
||||
int drive_role, stream_mode= 0, ret, profile;
|
||||
char profile_name[80];
|
||||
enum burn_disc_status s;
|
||||
|
||||
int drive_role, stream_mode= 0;
|
||||
|
||||
*burn_options= burn_write_opts_new(drive);
|
||||
if(*burn_options==NULL) {
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
@ -147,18 +129,7 @@ int Xorriso_make_write_options(
|
||||
drive_role= burn_drive_get_drive_role(drive);
|
||||
burn_write_opts_set_multi(*burn_options,
|
||||
!(xorriso->do_close || drive_role==0 || drive_role==3));
|
||||
|
||||
ret= burn_disc_get_profile(drive, &profile, profile_name);
|
||||
if(ret > 0) {
|
||||
s= isoburn_disc_get_status(drive);
|
||||
if(xorriso->auto_close && xorriso->do_close == 0 &&
|
||||
profile == 0x14 && s == BURN_DISC_BLANK)
|
||||
/* Prepare for missing feature 21h despite drive's announcement */
|
||||
burn_write_opts_set_fail21h_sev(*burn_options, "NOTE");
|
||||
}
|
||||
|
||||
if(xorriso->write_speed != -2)
|
||||
burn_drive_set_speed(drive, 0, xorriso->write_speed);
|
||||
burn_drive_set_speed(drive, xorriso->speed, xorriso->speed);
|
||||
if(xorriso->do_stream_recording == 1)
|
||||
stream_mode= 1;
|
||||
else if(xorriso->do_stream_recording == 2)
|
||||
@ -278,12 +249,8 @@ no_track:;
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
sprintf(xorriso->info_text,"Image size %ds exceeds free space on media %ds",
|
||||
img_sectors + padding, media_space);
|
||||
if(flag & 1) {
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
|
||||
} else {
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
{ret= 0; goto ex;}
|
||||
}
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
{ret= 0; goto ex;}
|
||||
}
|
||||
if(flag&1) {
|
||||
ret= multi_emul_blocks + img_sectors + padding;
|
||||
@ -719,31 +686,7 @@ ex:
|
||||
}
|
||||
|
||||
|
||||
int Xorriso_retry_write_session(struct XorrisO *xorriso, int flag)
|
||||
{
|
||||
int ret, auto_close_mem, do_close_mem;
|
||||
|
||||
if(xorriso->do_tao == 1) {
|
||||
Xorriso_msgs_submit(xorriso, 0,
|
||||
"There is no hope for a re-try with -close \"on\" as long as -write_type is \"tao\"",
|
||||
0, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
Xorriso_msgs_submit(xorriso, 0, "Re-trying with -close \"on\"", 0, "NOTE", 0);
|
||||
do_close_mem= xorriso->do_close;
|
||||
auto_close_mem= xorriso->auto_close;
|
||||
xorriso->do_close= 1;
|
||||
xorriso->auto_close= 0;
|
||||
ret= Xorriso_write_session(xorriso, 0);
|
||||
xorriso->do_close= do_close_mem;
|
||||
xorriso->auto_close= auto_close_mem;
|
||||
return(ret);
|
||||
}
|
||||
|
||||
|
||||
/* @param flag bit0= do not write but only prepare and return size in sectors
|
||||
@return <=0 error , 1= success
|
||||
2= failure with DVD-RW, please call Xorriso_retry_write_session()
|
||||
*/
|
||||
int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
||||
{
|
||||
@ -1199,15 +1142,6 @@ fprintf(stderr, "XORRISO_DEBUG: isoburn_igopt_set_tail_blocks(%d)\n",
|
||||
if(!isoburn_drive_wrote_well(drive)) {
|
||||
isoburn_cancel_prepared_write(source_drive, drive, 0);
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
if(xorriso->auto_close && xorriso->do_close == 0) {
|
||||
if(burn_drive_was_feat21_failure(drive)) {
|
||||
sprintf(xorriso->info_text,
|
||||
"libburn indicates failure with writing DVD-RW to appendable state.");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
|
||||
/* Urge caller to call Xorriso_retry_write_session() */
|
||||
ret= 2; goto ex;
|
||||
}
|
||||
}
|
||||
sprintf(xorriso->info_text,
|
||||
"libburn indicates failure with writing.");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
@ -1256,8 +1190,6 @@ ex:;
|
||||
|
||||
/* >>> ??? revive discarded boot image */;
|
||||
|
||||
/* suppress automatic -commit at program end */
|
||||
xorriso->volset_change_pending= 3;
|
||||
}
|
||||
if(disc!=NULL)
|
||||
burn_disc_free(disc);
|
||||
@ -1878,7 +1810,7 @@ int Xorriso_blank_as_needed(struct XorrisO *xorriso, int flag)
|
||||
return(ret);
|
||||
did_work= (ret == 1);
|
||||
} else if(current_profile == 0x41) { /* BD-R SRM */
|
||||
if((flag & 4) && !is_formatted) {
|
||||
if(!is_formatted) {
|
||||
ret= Xorriso_format_media(xorriso, (off_t) 0, 1);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
@ -1900,38 +1832,11 @@ int Xorriso_blank_as_needed(struct XorrisO *xorriso, int flag)
|
||||
}
|
||||
|
||||
|
||||
int Xorriso_retry_burn_track(struct XorrisO *xorriso,
|
||||
off_t write_start_address,
|
||||
char *track_source, off_t tsize, int flag)
|
||||
{
|
||||
int ret, auto_close_mem, do_close_mem;
|
||||
|
||||
if(xorriso->do_tao == 1) {
|
||||
Xorriso_msgs_submit(xorriso, 0,
|
||||
"There is no hope for a re-try with -close \"on\" as long as -write_type is \"tao\"",
|
||||
0, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
Xorriso_msgs_submit(xorriso, 0, "Re-trying with -close \"on\"", 0, "NOTE", 0);
|
||||
do_close_mem= xorriso->do_close;
|
||||
auto_close_mem= xorriso->auto_close;
|
||||
xorriso->do_close= 1;
|
||||
xorriso->auto_close= 0;
|
||||
ret= Xorriso_burn_track(xorriso, write_start_address, track_source, tsize,
|
||||
flag);
|
||||
xorriso->do_close= do_close_mem;
|
||||
xorriso->auto_close= auto_close_mem;
|
||||
return(ret);
|
||||
}
|
||||
|
||||
|
||||
/* @param write_start_address is valid if >=0
|
||||
@param tsize is valid if >0
|
||||
@param flag bit0= grow_overwriteable_iso
|
||||
bit1= do_isosize
|
||||
bit2= do_xa1 conversion
|
||||
@return <=0 error , 1= success
|
||||
2= failure with DVD-RW, please call Xorriso_retry_burn_track()
|
||||
*/
|
||||
int Xorriso_burn_track(struct XorrisO *xorriso, off_t write_start_address,
|
||||
char *track_source, off_t tsize, int flag)
|
||||
@ -2185,15 +2090,6 @@ int Xorriso_burn_track(struct XorrisO *xorriso, off_t write_start_address,
|
||||
goto ex;
|
||||
if(!burn_drive_wrote_well(drive)) {
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
if(xorriso->auto_close && xorriso->do_close == 0) {
|
||||
if(burn_drive_was_feat21_failure(drive)) {
|
||||
sprintf(xorriso->info_text,
|
||||
"libburn indicates failure with writing DVD-RW to appendable state.");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
|
||||
/* Urge caller to call Xorriso_retry_burn_rack() */
|
||||
ret= 2; goto ex;
|
||||
}
|
||||
}
|
||||
sprintf(xorriso->info_text,
|
||||
"libburn indicates failure with writing.");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
@ -2825,12 +2721,9 @@ int Xorriso_close_damaged(struct XorrisO *xorriso, int flag)
|
||||
ret= 0; goto ex;
|
||||
}
|
||||
ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
|
||||
"on attempt to close damaged session", 2);
|
||||
"on attempt to closed damaged session", 2);
|
||||
if(ret<=0)
|
||||
goto ex;
|
||||
ret= Xorriso_check_multi(xorriso, drive, 0);
|
||||
if(ret<=0)
|
||||
goto ex;
|
||||
ret= Xorriso_make_write_options(xorriso, drive, &burn_options, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
|
@ -9,7 +9,7 @@
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH XORRECORD 1 "Version 1.3.4, Dec 12, 2013"
|
||||
.TH XORRECORD 1 "Version 1.3.2, Aug 07, 2013"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
@ -333,9 +333,8 @@ after the current session has been written.
|
||||
Without it the disc gets closed and may not be written any more \- unless it
|
||||
is a \-RW and gets blanked, which causes loss of its content.
|
||||
.br
|
||||
This option cannot be applied to DVD\-R DL or to DVD\-RW which were blanked
|
||||
by mode "deformat_quickest". Option \-\-multi_if_possible
|
||||
may automatically recognize and handle this situation.
|
||||
This option cannot be applied to DVD\-R DL and DVD\-RW which were blanked
|
||||
by type deformat_quickest.
|
||||
.br
|
||||
In order to have all filesystem content accessible, the eventual ISO\-9660
|
||||
filesystem of a follow\-up
|
||||
@ -540,14 +539,6 @@ appendable rather than as blank. I.e. options \-msinfo and \-toc will work.
|
||||
\-toc will always show a single session with its size increasing with
|
||||
every added ISO 9660 image.
|
||||
.TP
|
||||
\fB--multi_if_possible\fR
|
||||
Apply option \-multi if the medium is suitable. Not suitable are DVD\-R DL
|
||||
and DVD\-RW, which were blanked with mode "deformat_quickest".
|
||||
.br
|
||||
Not all drives correctly recognize such fast\-blanked DVD\-RW which need "on".
|
||||
If there is well founded suspicion that a burn run failed due to
|
||||
\-multi, then this causes a re\-try without \-multi.
|
||||
.TP
|
||||
\fBstream_recording="on"|"off"|number\fR
|
||||
Mode "on" requests that compliance to the desired speed setting is
|
||||
preferred over management of write errors. With DVD\-RAM and BD this can
|
||||
|
@ -15,7 +15,7 @@ xorriso
|
||||
|
||||
File: xorrecord.info, Node: Top, Next: Overview, Up: (dir)
|
||||
|
||||
xorrecord 1.3.4
|
||||
xorrecord 1.3.2
|
||||
***************
|
||||
|
||||
xorrecord - Emulation of CD/DVD/BD program cdrecord by program xorriso
|
||||
@ -335,9 +335,8 @@ blank=mode
|
||||
appendable after the current session has been written. Without it
|
||||
the disc gets closed and may not be written any more - unless it
|
||||
is a -RW and gets blanked, which causes loss of its content.
|
||||
This option cannot be applied to DVD-R DL or to DVD-RW which were
|
||||
blanked by mode "deformat_quickest". Option -multi_if_possible may
|
||||
automatically recognize and handle this situation.
|
||||
This option cannot be applied to DVD-R DL and DVD-RW which were
|
||||
blanked by type deformat_quickest.
|
||||
In order to have all filesystem content accessible, the eventual
|
||||
ISO-9660 filesystem of a follow-up session needs to be prepared in
|
||||
a special way by the filesystem formatter program. mkisofs,
|
||||
@ -534,14 +533,6 @@ File: xorrecord.info, Node: NonCdrecord, Next: ExDevices, Prev: Verbous, Up:
|
||||
single session with its size increasing with every added ISO 9660
|
||||
image.
|
||||
|
||||
--multi_if_possible
|
||||
Apply option -multi if the medium is suitable. Not suitable are
|
||||
DVD-R DL and DVD-RW, which were blanked with mode
|
||||
"deformat_quickest".
|
||||
Not all drives correctly recognize such fast-blanked DVD-RW which
|
||||
need "on". If there is well founded suspicion that a burn run
|
||||
failed due to -multi, then this causes a re-try without -multi.
|
||||
|
||||
stream_recording="on"|"off"|number
|
||||
Mode "on" requests that compliance to the desired speed setting is
|
||||
preferred over management of write errors. With DVD-RAM and BD
|
||||
@ -837,44 +828,42 @@ File: xorrecord.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
|
||||
* --devices get list of drives: DriveAddr. (line 8)
|
||||
* --grow_overwriteable_iso emulate ISO 9660 multi-session: NonCdrecord.
|
||||
(line 13)
|
||||
* --multi_if_possible apply -multi if medium is suitable: NonCdrecord.
|
||||
(line 35)
|
||||
* --no_rc do not execute xorriso startup files: NonCdrecord.
|
||||
(line 8)
|
||||
* -atip inquire medium state: Inquire. (line 16)
|
||||
* -checkdrive inquire drive CD capabilities: Inquire. (line 12)
|
||||
* -dao explicitely set write type SAO/DAO: SetBurn. (line 178)
|
||||
* -data explicitely announce a data track: SetBurn. (line 160)
|
||||
* -dummy control write simulation: SetBurn. (line 102)
|
||||
* -eject finally eject drive tray: SetBurn. (line 214)
|
||||
* -dao explicitely set write type SAO/DAO: SetBurn. (line 177)
|
||||
* -data explicitely announce a data track: SetBurn. (line 159)
|
||||
* -dummy control write simulation: SetBurn. (line 101)
|
||||
* -eject finally eject drive tray: SetBurn. (line 213)
|
||||
* -help print sparse overview of options: Verbous. (line 33)
|
||||
* -inq inquire drive identifiers: Inquire. (line 8)
|
||||
* -isosize obtain track size from ISO 9660 superblock: SetBurn.
|
||||
(line 136)
|
||||
(line 135)
|
||||
* -msinfo retrieve multi-session info: Inquire. (line 48)
|
||||
* -multi keep media appendable after burn run: SetBurn. (line 84)
|
||||
* -nopad disable adding of bytes to end of track: SetBurn. (line 152)
|
||||
* -pad add 15 blocks to end of track: SetBurn. (line 155)
|
||||
* -sao explicitely set write type SAO/DAO: SetBurn. (line 173)
|
||||
* -tao explicitely set write type TAO: SetBurn. (line 166)
|
||||
* -nopad disable adding of bytes to end of track: SetBurn. (line 151)
|
||||
* -pad add 15 blocks to end of track: SetBurn. (line 154)
|
||||
* -sao explicitely set write type SAO/DAO: SetBurn. (line 172)
|
||||
* -tao explicitely set write type TAO: SetBurn. (line 165)
|
||||
* -toc inquire medium content: Inquire. (line 25)
|
||||
* -v increase program verbosity: Verbous. (line 17)
|
||||
* -V log SCSI command transactions to stderr: Verbous. (line 22)
|
||||
* -version report emulation and xorriso version: Verbous. (line 8)
|
||||
* -waiti access drive only after stdin delivers data: SetBurn.
|
||||
(line 110)
|
||||
(line 109)
|
||||
* blank= make media re-usabable or format media: SetBurn. (line 27)
|
||||
* dev= address the drive to be used: DriveAddr. (line 22)
|
||||
* dvd_obs= set write transaction payload size: NonCdrecord. (line 54)
|
||||
* fs= set program fifo size: SetBurn. (line 181)
|
||||
* padsize= add bytes to end of track: SetBurn. (line 144)
|
||||
* speed= set write speed: SetBurn. (line 197)
|
||||
* stdio_sync= control stdio buffer: NonCdrecord. (line 69)
|
||||
* dvd_obs= set write transaction payload size: NonCdrecord. (line 46)
|
||||
* fs= set program fifo size: SetBurn. (line 180)
|
||||
* padsize= add bytes to end of track: SetBurn. (line 143)
|
||||
* speed= set write speed: SetBurn. (line 196)
|
||||
* stdio_sync= control stdio buffer: NonCdrecord. (line 61)
|
||||
* stream_recording= try to get full speed on DVD-RAM, BD: NonCdrecord.
|
||||
(line 43)
|
||||
* tsize= set a fixed track size: SetBurn. (line 124)
|
||||
(line 35)
|
||||
* tsize= set a fixed track size: SetBurn. (line 123)
|
||||
* write_start_address= set block address for write start: NonCdrecord.
|
||||
(line 62)
|
||||
(line 54)
|
||||
|
||||
|
||||
File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
||||
@ -885,23 +874,22 @@ File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
||||
|