Compare commits

..

4 Commits
1.0.8 ... 1.0.4

41 changed files with 594 additions and 1424 deletions

View File

@ -1,8 +1,8 @@
Mario Danic <mario.danic@gmail.com>,
Vreixo Formoso <metalpain2002@yahoo.es>
Thomas Schmitt <scdbackup@gmx.net>
libisoburn is Copyright (C) 2007-2011 Vreixo Formoso, Thomas Schmitt
xorriso is Copyright (C) 2007-2011 Thomas Schmitt
libisoburn is Copyright (C) 2007-2010 Vreixo Formoso, Thomas Schmitt
xorriso is Copyright (C) 2007-2010 Thomas Schmitt
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2

View File

@ -1,19 +1,7 @@
libisoburn-1.0.8.pl00.tar.gz Thu Apr 14 2011
SVN trunk (to become libisoburn-1.0.6.pl00.tar.gz)
===============================================================================
* Bug fix: mkisofs emulation could ignore options (regression in 0.1.6)
- no novelties yet
libisoburn-1.0.6.pl00.tar.gz Sat Apr 9 2011
===============================================================================
* Bug fix: -as mkisofs padding did not work (regression in 1.0.4)
* Bug fix: Options -gid and -uid had no effect
* New API call isoburn_set_truncate()
* New relax option isoburn_igopt_joliet_long_names
* New option -early_stdio_test
* New options -print_info and -print_mark
* New -compliance option joliet_long_names
* -as mkisofs option -joliet-long is now fully functional
* Burning DVD-R DAO with 2 kB size granularity rather than 32 kB
libisoburn-1.0.4.pl00.tar.gz Thu Mar 10 2011
===============================================================================

View File

@ -233,7 +233,6 @@ EXTRA_DIST = \
doc/comments \
doc/doxygen.conf.in \
doc/partition_offset.wiki \
doc/startup_file.txt \
README \
AUTHORS \
CONTRIBUTORS \

14
README
View File

@ -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.0.8.pl00.tar.gz
http://files.libburnia-project.org/releases/libisoburn-1.0.4.pl00.tar.gz
Copyright (C) 2006-2011 Vreixo Formoso, Thomas Schmitt.
Provided under GPL version 2 or later.
------------------------------------------------------------------------------
@ -34,17 +34,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.0.8 :
- libburn.so.4 , version libburn-1.0.6 or higher
- libisofs.so.6 , version libisofs-1.0.6 or higher
Dynamic library and compile time header requirements for libisoburn-1.0.4 :
- libburn.so.4 , version libburn-1.0.4 or higher
- libisofs.so.6 , version libisofs-1.0.4 or higher
libisoburn and xorriso will not start with libraries which are older than their
include headers seen at compile time.
Obtain libisoburn-1.0.8.pl00.tar.gz, take it to a directory of your choice
Obtain libisoburn-1.0.4.pl00.tar.gz, take it to a directory of your choice
and do:
tar xzf libisoburn-1.0.8.pl00.tar.gz
cd libisoburn-1.0.8
tar xzf libisoburn-1.0.4.pl00.tar.gz
cd libisoburn-1.0.4
Within that directory execute:

View File

@ -1,4 +1,4 @@
AC_INIT([libisoburn], [1.0.8], [http://libburnia-project.org])
AC_INIT([libisoburn], [1.0.4], [http://libburnia-project.org])
AC_PREREQ([2.50])
dnl AC_CONFIG_HEADER([config.h])
@ -23,7 +23,7 @@ dnl
dnl These three are only copies to provide libtool with unused LT_RELEASE
ISOBURN_MAJOR_VERSION=1
ISOBURN_MINOR_VERSION=0
ISOBURN_MICRO_VERSION=8
ISOBURN_MICRO_VERSION=4
dnl ISOBURN_VERSION=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION.$ISOBURN_MICRO_VERSION
@ -36,16 +36,16 @@ dnl Libtool versioning
dnl Generate libisoburn.so.1.x.y
dnl SONAME will become LT_CURRENT - LT_AGE
dnl
dnl ts B10414
dnl This is the release version 1.0.8 = libisoburn.so.1.65.0
dnl ts B10103
dnl This is the release version 1.0.4 = libisoburn.so.1.61.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 = 66 - 65 = 1 . Library name = libisoburn.so.1.65.0
dnl SONAME = 62 - 61 = 1 . Library name = libisoburn.so.1.61.0
LT_RELEASE=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION
LT_CURRENT=66
LT_AGE=65
LT_CURRENT=62
LT_AGE=61
LT_REVISION=0
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
@ -302,8 +302,8 @@ AC_CHECK_HEADER(libisofs/libisofs.h)
# ------- Visible mark in configure : Start of library check
dnl Check for proper library versions
LIBBURN_REQUIRED=1.0.6
LIBISOFS_REQUIRED=1.0.6
LIBBURN_REQUIRED=1.0.4
LIBISOFS_REQUIRED=1.0.4
PKG_CHECK_MODULES(LIBBURN, libburn-1 >= $LIBBURN_REQUIRED)
PKG_CHECK_MODULES(LIBISOFS, libisofs-1 >= $LIBISOFS_REQUIRED)

View File

@ -36,8 +36,6 @@ Miscellaneous:
[#xorriso_dialog_mode What is xorriso dialog mode useful for ?]
[#version_numbers Why is every second release missing ?]
----------------------------------------------------------------------------
'''Burning'''
----------------------------------------------------------------------------
@ -217,15 +215,6 @@ xorriso's stdin and stdout. This is more efficient than forking xorriso
every now and then to perform various commands in order to complete
complex tasks like image size prediction.
===== Why is every second release missing ? ===== #version_numbers
Releases have an even third version number. Like 0.5.6 or 1.0.4.
During development the next higher odd number is used. E.g. 0.5.7 or 1.0.5.
The content of release tarballs does not get changed without changing
their name. The development tarballs of xorriso and cdrskin may change
their content without notice.
----------------------------------------------------------------------------
Site maintainer: Do not edit this wiki directly but rather the SVN version
of libisoburn/trunk/doc/faq.wiki. When done, paste it into the wiki editor.

View File

@ -131,7 +131,7 @@ was edited to replace in the options of the xorriso command:
}}}
by
{{{
-partition_offset 16 -no-pad
-partition_offset 16 -no-pad --no-emul-toc
}}}
Then GRUB 2 was built and installed.
@ -142,24 +142,10 @@ The resulting image from
was put onto USB stick. It passed the same tests on Debian
as above RIPLinux example. It boots to a GRUB prompt.
Due to option -no-pad the image is about 250 kB smaller than
Due to options -no-pad --no-emul-toc the image is about 300 kB smaller than
the image produced by original grub-mkrescue. Else it would have grown by
about 50 kB.
Unpadded ISO images are safe except for burning on CD in TAO mode.
In this case problems may occur with reading the last few data blocks.
So when burning onto CD make sure to require SAO mode and/or to
require padding by 300 KiB.
Burning on DVD or BD needs no such caution. Neither does copying
on USB stick or hard disk.
Program fdisk will complain about "different physical/logical" addresses.
This can be silenced by adding option
{{{
-partition_cyl_align on
}}}
at the cost of image padding up to the next full MiB.
E.g. by 402 KiB to 2 MiB.
about 130 kB. The mkisofs emulation of newer versions of xorriso has
--no-emul-toc as default. Thus the overhead would only be about 50 kB.
--------------------------------------------------------------------------
@ -176,15 +162,12 @@ preparations.
Application:
The partition offset feature can be controlled by libisofs API calls
The partition offset feature can be controlled by libisofs API call
{{{
int iso_write_opts_set_part_offset(IsoWriteOpts *opts,
uint32_t block_offset_2k,
int secs_512_per_head,
int heads_per_cyl);
int iso_write_opts_set_system_area(IsoWriteOpts *opts, char data[32768],
int options, int flag);
}}}
resp. by libisoburn calls
{{{
@ -195,24 +178,13 @@ int isoburn_igopt_set_part_offset(struct isoburn_imgen_opts *opts,
int isoburn_igopt_get_part_offset(struct isoburn_imgen_opts *opts,
uint32_t *block_offset_2k,
int *secs_512_per_head, int *heads_per_cyl);
int isoburn_igopt_set_system_area(struct isoburn_imgen_opts *o,
char data[32768], int options);
int isoburn_igopt_get_system_area(struct isoburn_imgen_opts *o,
char data[32768], int *options);
}}}
resp. by xorriso options
{{{
-boot_image any partition_offset=(2kb_block_adr)
-boot_image any partition_sec_hd=(number)
-boot_image any partition_hd_cyl=(number)
-boot_image any partition_cyl_align(on|auto|off)
-as mkisofs ... -partition_offset (2kb_block_adr) \
-partition_hd_cyl (number) \
-partition_sec_hd (number) \
-partition_cyl_align (on|auto|off) ...
-as mkisofs ... -partition_offset (2kb_block_adr) ...
}}}
As stated above, an offset larger than 16 would expose vital parts of the

View File

@ -1,22 +0,0 @@
# This is an example for a xorriso startup file.
# If found at one of the following addresses then its text lines will get
# executed by xorriso as commands before any of its program arguments:
# /etc/default/xorriso
# /etc/opt/xorriso/rc
# /etc/xorriso/xorriso.conf
# $HOME/.xorrisorc
# Note: Command -no_rc as first program argument prevents this execution.
# Disallow the use of hard disk /dev/sda and its partitions as
# pseudo-drive (e.g. as output target of an ISO image).
-drive_class banned /dev/sda*
# Allow the use of /dev/sdb, /dev/sdc, and /dev/sdd as pseudo-drives
# without the prefix "stdio:" which is usually required for device addresses
# which begin by "/dev/" but represent no CD drives.
-drive_class harmless /dev/sd[bcd]

View File

@ -240,7 +240,6 @@ LIBJTE_MISCONFIGURATION_ = 0;
sprintf(msg+strlen(msg), "Cannot initialize libburn\n");
return(0);
}
burn_version(&major, &minor, &micro);
sprintf(msg+strlen(msg), "libburn-%d.%d.%d ", major, minor, micro);
if(major > burn_header_version_major
@ -344,8 +343,7 @@ int isoburn_is_intermediate_dvd_rw(struct burn_drive *d, int flag)
static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
int flag)
{
int ret, lba, nwa, profile, readonly= 0, role, random_access;
int emulation_started= 0;
int ret, lba, nwa, profile, readonly= 0;
struct burn_multi_caps *caps= NULL;
struct isoburn_toc_entry *t;
char profile_name[80];
@ -384,18 +382,16 @@ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
(*o)->fabricated_disc_status= BURN_DISC_APPENDABLE;
#endif
role= burn_drive_get_drive_role(d);
random_access= caps->start_adr || role == 4;
if(random_access)
if(caps->start_adr)
(*o)->emulation_mode= 1;
if(random_access && !readonly) { /* set emulation to overwriteable */
if(caps->start_adr && !readonly) { /* set emulation to overwriteable */
ret= isoburn_is_intermediate_dvd_rw(d, 0);
if(ret>0) {
(*o)->min_start_byte= 0;
(*o)->nwa= 0;
(*o)->zero_nwa= 0;
}
if((flag & 1) && role != 4 && role != 5) {
if(flag&1) {
(*o)->nwa= (*o)->zero_nwa;
(*o)->fabricated_disc_status= BURN_DISC_BLANK;
} else {
@ -404,7 +400,6 @@ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
(*o)->emulation_mode= -1;
goto ex;
}
emulation_started= 1;
/* try to read emulated toc */
ret= isoburn_emulate_toc(d, flag & 16);
if(ret<0) {
@ -445,12 +440,6 @@ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
if((flag & 16) || track_count >= 2) {
ret= 0; /* toc emulation off, or not overwriteable */
} else {
ret= isoburn_start_emulation(*o, 1);
if(ret<=0) {
(*o)->emulation_mode= -1;
goto ex;
}
emulation_started= 1;
ret= isoburn_emulate_toc(d, 1);
if(ret<0)
goto ex;
@ -463,13 +452,6 @@ static int isoburn_welcome_media(struct isoburn **o, struct burn_drive *d,
CD-R TOC (profile 0x08) can be trusted. Others not.
Do a scan search of ISO headers.
*/
if(!emulation_started) {
ret= isoburn_start_emulation(*o, 1);
if(ret<=0) {
(*o)->emulation_mode= -1;
goto ex;
}
}
ret= isoburn_emulate_toc(d, 1|2);
if(ret<0)
goto ex;
@ -653,7 +635,7 @@ int isoburn_disc_erasable(struct burn_drive *d)
void isoburn_disc_erase(struct burn_drive *drive, int fast)
{
int ret, do_pseudo_blank= 0, role;
int ret, do_pseudo_blank= 0;
struct isoburn *o;
enum burn_disc_status s;
char zero_buffer[Libisoburn_target_head_sizE];
@ -666,15 +648,7 @@ void isoburn_disc_erase(struct burn_drive *drive, int fast)
burn_drive_cancel(drive);
goto ex;
}
role = burn_drive_get_drive_role(drive);
if (role == 5) {
/* libburn will truncate the random-access write-only file
to zero size and change its state */
burn_disc_erase(drive, fast);
o->fabricated_disc_status= burn_disc_get_status(drive);
o->nwa= 0;
goto ex;
}
if(o->emulation_mode > 0) { /* might be readonly with emulated sessions */
ret= burn_disc_get_multi_caps(drive, BURN_WRITE_NONE, &caps, 0);
if(ret > 0 && caps->start_adr)
@ -806,29 +780,6 @@ int isoburn_get_msc2(struct isoburn *o,
return(1);
}
/* @param flag bit0= truncate (else do not truncate)
bit1= do not warn if call is inappropriate to drive
bit2= only set if truncation is currently enabled
*/
int isoburn_set_truncate(struct burn_drive *drive, int flag)
{
int ret;
struct isoburn *o;
ret= isoburn_find_emulator(&o, drive, 0);
if(ret < 0)
return ret;
if(o == NULL) {
if(!(flag & (2 | 4)))
isoburn_msgs_submit(o, 0x00060000,
"Drive type or role is inappropriate for truncation", 0, "WARNING", 0);
return(0);
}
if(o->truncate || !(flag & 4))
o->truncate= flag & 1;
return(1);
}
void isoburn_disc_write(struct burn_write_opts *opts, struct burn_disc *disc)
{
@ -877,6 +828,7 @@ void isoburn_disc_write(struct burn_write_opts *opts, struct burn_disc *disc)
return;
}
/* end of DVD-RW oriented check */
burn_write_opts_set_start_byte(opts, nwa * (off_t) 2048);
}
}
@ -908,7 +860,7 @@ void isoburn_disc_write(struct burn_write_opts *opts, struct burn_disc *disc)
if(o->truncate) {
ret= burn_drive_get_drive_role(drive);
if(ret == 2 || ret == 5) {
if(ret==2) {
ret= burn_drive_d_get_adr(drive, adr);
if(ret>0) {
ret= lstat(adr, &stbuf);
@ -1190,28 +1142,21 @@ int isoburn_read_iso_head(struct burn_drive *d, int lba,
unsigned char buffer[64*1024];
int ret, info_mode, capacity, role;
off_t data_count, to_read;
enum burn_disc_status s;
info_mode= flag&255;
*image_blocks= 0;
if(flag&(1<<13)) {
memcpy(buffer, info, 64*1024);
} else {
memset(buffer, 0, 64 * 1024);
s= isoburn_disc_get_status(d);
role = burn_drive_get_drive_role(d);
if (role == 3 || role == 5)
/* >>> ??? return always 0 ? */
return(-1*!!(flag&(1<<15)));
ret = burn_get_read_capacity(d, &capacity, 0);
if (ret <= 0 && (role == 2 || role == 4)) {
if (ret <= 0 && role == 2) {
/* Might be a block device on a system where libburn cannot determine its
size. Try to read anyway. */
capacity = 0x7ffffff0;
ret = 1;
}
memset(buffer, 0, 64 * 1024);
to_read= (off_t) capacity * ((off_t) 2048);
if(ret > 0 && to_read >= (off_t) (36 * 1024)) {
if(to_read >= (off_t) (64 * 1024))
@ -1297,16 +1242,15 @@ int isoburn_emulate_toc(struct burn_drive *d, int flag)
ret= burn_get_read_capacity(d, &readable_blocks, 0);
if(ret <= 0) {
role = burn_drive_get_drive_role(d);
if (role == 2 || role == 4)
if (role == 2)
/* Might be a block device on a system where libburn cannot determine its
size. Try to read anyway. */
readable_blocks= 0x7ffffff0; /* try to read anyway */
else
readable_blocks= -1;
}
if(o->fabricated_disc_status == BURN_DISC_BLANK)
{ret= 0; goto failure;}
start_time= last_pacifier= time(NULL);
lba= 0;

View File

@ -477,7 +477,6 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
iso_write_opts_set_allow_full_ascii(wopts, opts->allow_full_ascii);
iso_write_opts_set_relaxed_vol_atts(wopts, 1);
iso_write_opts_set_joliet_longer_paths(wopts, opts->joliet_longer_paths);
iso_write_opts_set_joliet_long_names(wopts, opts->joliet_long_names);
iso_write_opts_set_always_gmt(wopts, opts->always_gmt);
iso_write_opts_set_rrip_version_1_10(wopts, opts->rrip_version_1_10);
iso_write_opts_set_dir_rec_mtime(wopts, opts->dir_rec_mtime);
@ -950,7 +949,6 @@ int isoburn_igopt_new(struct isoburn_imgen_opts **new_o, int flag)
o->allow_lowercase= 0;
o->allow_full_ascii= 0;
o->joliet_longer_paths= 0;
o->joliet_long_names= 0;
o->always_gmt= 0;
o->rrip_version_1_10= 0;
o->dir_rec_mtime= 0;
@ -1060,7 +1058,6 @@ int isoburn_igopt_set_relaxed(struct isoburn_imgen_opts *o, int relax)
o->dir_rec_mtime= !!(relax & isoburn_igopt_dir_rec_mtime);
o->aaip_susp_1_10= !!(relax & isoburn_igopt_aaip_susp_1_10);
o->allow_dir_id_ext= !!(relax & isoburn_igopt_allow_dir_id_ext);
o->joliet_long_names= !!(relax & isoburn_igopt_joliet_long_names);
return(1);
}
@ -1075,8 +1072,7 @@ int isoburn_igopt_get_relaxed(struct isoburn_imgen_opts *o, int *relax)
((!!o->dir_rec_mtime)<<10) | ((!!o->aaip_susp_1_10)<<11) |
((!!(o->omit_version_numbers & 2))<<12) |
((!!(o->no_force_dots & 2))<<13) |
((!!o->allow_dir_id_ext) << 14) |
((!!o->joliet_long_names) << 15);
((!!o->allow_dir_id_ext) << 14);
return(1);
}

View File

@ -469,12 +469,6 @@ struct isoburn_imgen_opts {
*/
unsigned int joliet_longer_paths :1;
/**
* Allow leaf names in the Joliet tree to have up to 103 characters
* rather than 64.
*/
unsigned int joliet_long_names :1;
/**
* Store timestamps as GMT rather than in local time.
*/

View File

@ -6,7 +6,7 @@
/*
libisofs related functions of libisoburn.
Copyright 2007 - 2011 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
Copyright 2007 - 2010 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
Thomas Schmitt <scdbackup@gmx.net>
Provided under GPL version 2 or later.
*/
@ -439,17 +439,14 @@ static int isoburn_inspect_partition(struct isoburn *o, uint32_t img_size,
The need for emulation is confirmed already.
@param o A freshly created isoburn object. isoburn_create_data_source() was
already called, nevertheless.
@param flag bit0= read-only
@return <=0 error , 1 = success
*/
int isoburn_start_emulation(struct isoburn *o, int flag)
{
int ret, i, capacity = -1, role, dummy;
int ret, i, capacity = -1, role;
off_t data_count, to_read;
struct burn_drive *drive;
struct ecma119_pri_vol_desc *pvm;
enum burn_disc_status s;
char path[BURN_DRIVE_ADR_LEN], msg[2 * BURN_DRIVE_ADR_LEN];
if(o==NULL) {
isoburn_msgs_submit(NULL, 0x00060000,
@ -460,9 +457,6 @@ int isoburn_start_emulation(struct isoburn *o, int flag)
drive= o->drive;
if(flag & 1)
o->fabricated_disc_status= BURN_DISC_FULL;
/* We can assume 0 as start block for image.
The data there point to the most recent session.
*/
@ -470,12 +464,7 @@ int isoburn_start_emulation(struct isoburn *o, int flag)
ret = burn_get_read_capacity(drive, &capacity, 0);
if (ret <= 0)
capacity = -1;
if (role == 5) { /* random access write-only media */
s = burn_disc_get_status(drive);
o->fabricated_disc_status= s;
burn_disc_track_lba_nwa(drive, NULL, 0, &dummy, &(o->nwa));
return 1;
} else if (capacity > 0 || role == 2 || role == 4) {
if (capacity > 0 || role == 2) {
/* Might be a block device on a system where libburn cannot determine its
size. Try to read anyway. */
to_read = o->target_iso_head_size;
@ -483,25 +472,18 @@ int isoburn_start_emulation(struct isoburn *o, int flag)
if(capacity > 0 && (off_t) capacity * (off_t) 2048 < to_read)
to_read = (off_t) capacity * (off_t) 2048;
ret = burn_read_data(drive, (off_t) 0, (char*)o->target_iso_head,
to_read, &data_count, 2 | 8);
to_read, &data_count, 2);
if (ret <= 0) {
/* an error means a disc with no ISO image */
if (ret == -2) {
path[0]= 0;
burn_drive_d_get_adr(drive, path);
sprintf(msg, "Pseudo drive '%s' does not allow reading", path);
isoburn_msgs_submit(NULL, 0x00060000, msg, 0, "NOTE", 0);
o->fabricated_disc_status= BURN_DISC_BLANK;
} else if (capacity > 0)
if (capacity > 0)
o->fabricated_disc_status= BURN_DISC_FULL;
else if(!(flag & 1))
o->fabricated_disc_status= BURN_DISC_BLANK;
else
o->fabricated_disc_status= BURN_DISC_BLANK;
return 1;
}
} else {
/* No read capacity means blank media */
if(!(flag & 1))
o->fabricated_disc_status= BURN_DISC_BLANK;
o->fabricated_disc_status= BURN_DISC_BLANK;
return 1;
}
@ -512,8 +494,7 @@ int isoburn_start_emulation(struct isoburn *o, int flag)
--i;
if (!i) {
if(!(flag & 1))
o->fabricated_disc_status= BURN_DISC_BLANK;
o->fabricated_disc_status= BURN_DISC_BLANK;
return 1;
}
@ -537,14 +518,12 @@ int isoburn_start_emulation(struct isoburn *o, int flag)
return ret;
size *= (off_t) 2048; /* block size in bytes */
isoburn_set_start_byte(o, size, 0);
if(!(flag & 1))
o->fabricated_disc_status= BURN_DISC_APPENDABLE;
o->fabricated_disc_status= BURN_DISC_APPENDABLE;
} else if (!strncmp((char*)pvm->std_identifier, "CDXX1", 5)) {
/* empty image */
isoburn_set_start_byte(o, o->zero_nwa * 2048, 0);
if(!(flag & 1))
o->fabricated_disc_status= BURN_DISC_BLANK;
o->fabricated_disc_status= BURN_DISC_BLANK;
} else {
/* treat any disc in an unknown format as full */
o->fabricated_disc_status= BURN_DISC_FULL;

View File

@ -224,7 +224,7 @@ void isoburn_version(int *major, int *minor, int *micro);
*/
#define isoburn_libisofs_req_major 1
#define isoburn_libisofs_req_minor 0
#define isoburn_libisofs_req_micro 6
#define isoburn_libisofs_req_micro 4
/** The minimum version of libburn to be used with this version of libisoburn
at compile time.
@ -232,7 +232,7 @@ void isoburn_version(int *major, int *minor, int *micro);
*/
#define isoburn_libburn_req_major 1
#define isoburn_libburn_req_minor 0
#define isoburn_libburn_req_micro 6
#define isoburn_libburn_req_micro 4
/** The minimum compile time requirements of libisoburn towards libjte are
the same as of a suitable libisofs towards libjte.
@ -287,7 +287,7 @@ int isoburn_libburn_req(int *major, int *minor, int *micro);
*/
#define isoburn_header_version_major 1
#define isoburn_header_version_minor 0
#define isoburn_header_version_micro 8
#define isoburn_header_version_micro 4
/** Note:
Above version numbers are also recorded in configure.ac because libtool
wants them as parameters at build time.
@ -403,9 +403,8 @@ int isoburn_drive_scan_and_grab(struct burn_drive_info *drive_infos[],
@param flag bit0= attempt to load the disc tray.
Else: failure if not loaded.
bit1= regard overwriteable media as blank
bit2= if the drive is a regular disk file:
truncate it to the write start address when writing
begins
bit2= if the drive is a regular disk file: truncate it to
the write start address
bit3= if the drive reports a read-only profile try to read
table of content by scanning for ISO image headers.
(depending on media type and drive this might
@ -1116,10 +1115,6 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext);
only 8 characters.
(mkisofs and its clones obviously do this violation.)
@since 1.0.0
bit15= joliet_long_names
Allow for Joliet leaf names up to 103 characters rather than
up to 64.
@since 1.0.6
@return 1 success, <=0 failure
*/
#define isoburn_igopt_omit_version_numbers 1
@ -1137,7 +1132,6 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext);
#define isoburn_igopt_only_iso_versions 4096
#define isoburn_igopt_no_j_force_dots 8192
#define isoburn_igopt_allow_dir_id_ext 16384
#define isoburn_igopt_joliet_long_names 32768
int isoburn_igopt_set_relaxed(struct isoburn_imgen_opts *o, int relax);
int isoburn_igopt_get_relaxed(struct isoburn_imgen_opts *o, int *relax);
@ -1839,21 +1833,6 @@ int isoburn_cancel_prepared_write(struct burn_drive *input_drive,
struct burn_drive *output_drive, int flag);
/**
Override the truncation setting that was made with flag bit2 during the
call of isoburn_drive_aquire. This applies only to stdio pseudo drives.
@since 0.1.6
@param drive The drive which was aquired and shall be used for writing.
@param flag Bitfield controlling the setting:
bit0= truncate (else do not truncate)
bit1= do not warn if call is inappropriate to drive
bit2= only set if truncation is currently enabled
do not warn if call is inappropriate to drive
@return 1 success, 0 inappropriate drive, <0 severe error
*/
int isoburn_set_truncate(struct burn_drive *drive, int flag);
/** Start writing of the new session.
This call is asynchrounous. I.e. it returns quite soon and the progress has
to be watched by a loop with call burn_drive_get_status() until

View File

@ -86,7 +86,6 @@ isoburn_ropt_set_input_charset;
isoburn_set_msc1;
isoburn_set_msgs_submit;
isoburn_set_read_pacifier;
isoburn_set_truncate;
isoburn_sync_after_write;
isoburn_toc_disc_free;
isoburn_toc_disc_get_sectors;
@ -162,7 +161,6 @@ Xorriso_option_displacement;
Xorriso_option_drive_class;
Xorriso_option_dummy;
Xorriso_option_dvd_obs;
Xorriso_option_early_drive_test;
Xorriso_option_eject;
Xorriso_option_end;
Xorriso_option_errfile_log;

View File

@ -7,15 +7,15 @@ Steve McIntyre <steve@einval.com>
George Danchev <danchev@spnet.net>
GNU xorriso is a compilation of modules from libburnia-project.org :
xorriso Copyright (C) 2007-2011 Thomas Schmitt
libisoburn Copyright (C) 2007-2011 Vreixo Formoso, Thomas Schmitt
libisofs Copyright (C) 2007-2011 Vreixo Formoso, Mario Danic, Thomas Schmitt
xorriso Copyright (C) 2007-2010 Thomas Schmitt
libisoburn Copyright (C) 2007-2010 Vreixo Formoso, Thomas Schmitt
libisofs Copyright (C) 2007-2010 Vreixo Formoso, Mario Danic, Thomas Schmitt
libburn Copyright (C) 2002-2006 Derek Foreman, Ben Jansens
2006-2011 Mario Danic, Thomas Schmitt
2006-2010 Mario Danic, Thomas Schmitt
Further included is :
libjte Copyright (C) 2000-2007 Free Software Foundation, Inc.
2004-2011 Steve McIntyre
2010-2011 George Danchev, Thomas Schmitt
2004-2010 Steve McIntyre
2010-2010 George Danchev, Thomas Schmitt
Originally they all are licensed directly or indirectly as GPLv2+.
GNU xorriso is licensed by the following statement:

View File

@ -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
ftp://ftp.gnu.org/gnu/xorriso/xorriso-1.0.8.tar.gz
ftp://ftp.gnu.org/gnu/xorriso/xorriso-1.0.4.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.0.8.tar.gz, take it to a directory of your choice and do:
Obtain xorriso-1.0.4.tar.gz, take it to a directory of your choice and do:
tar xzf xorriso-1.0.8.tar.gz
cd xorriso-1.0.8
tar xzf xorriso-1.0.4.tar.gz
cd xorriso-1.0.4
Within that directory execute:
@ -253,12 +253,12 @@ Tag_id distinguishes the following tag types
"libisofs_checksum_tag_v1" Session end tag
A relocated superblock may appear at LBA 0 of an image which was produced for
being stored in a disk file or on overwriteable media (e.g. DVD+RW, BD-RE).
being stored in a disk file or on overwriteable media (e.g. DVD+R, BD-RE).
xorriso records the first session at LBA 32. An eventual follow-up session
begins at the next block address which is divisible by 32 and higher than the
address of the previous session's end tag. Normally no session starts after the
address given by relocated superblock parameter session_start=.
Session oriented media like CD-R[W], DVD-R, DVD+R, BD-R will have no relocated
Session oriented media like CD-R[W], DVD+R, BD-R will have no relocated
superblock but rather bear a table-of-content on media level.
A tag is valid if pos= tells its own block address and self= tells its own MD5
@ -271,7 +271,7 @@ The newline character at the end is mandatory.
libisoburn
xorriso is based on libisofs which does ISO 9660 filesystem aspects and on
xorriso is based on libisofs which does ISO 9600 filesystem aspects and on
libburn which does the input and output aspects. Parts of this foundation
are accessed via libisoburn, which is closely related to xorriso.
@ -289,9 +289,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.0.6 :
- libburn.so.4 , version libburn-1.0.6 or higher
- libisofs.so.6 , version libisofs-1.0.6 or higher
Dynamic library and compile time header requirements for libisoburn-1.0.4 :
- libburn.so.4 , version libburn-1.0.4 or higher
- libisofs.so.6 , version libisofs-1.0.4 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.
@ -417,9 +417,9 @@ Libburn. By Derek Foreman <derek@signalmarketing.com> and
Ben Jansens <xor@orodu.net>
Copyright (C) 2002-2006 Derek Foreman and Ben Jansens
GNU xorriso contains libjte out of source package jigit >= 1.17
GNU xorriso contains libjte
Copyright (C) 2000-2007 Free Software Foundation, Inc.
2004-2011 Steve McIntyre
2004-2010 Steve McIntyre
2010-2011 George Danchev, Thomas Schmitt
------------------------------------------------------------------------------

View File

@ -183,7 +183,6 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->displacement= 0;
m->displacement_sign= 0;
m->drives_exclusive= 1;
m->early_stdio_test= 0;
m->do_calm_drive= 1;
m->indev[0]= 0;
m->in_drive_handle= NULL;
@ -307,7 +306,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->errfile_mode= 0;
m->errfile_fp= NULL;
m->img_read_error_mode= 1; /* abort faulty image reading with FAILURE */
m->img_read_error_mode= 2; /* abort faulty image reading with FATAL */
m->extract_error_mode= 1; /* keep extracted files after read error */
strcpy(m->return_with_text, "SORRY");
Xorriso__text_to_sev(m->return_with_text, &m->return_with_severity, 0);

View File

@ -10021,7 +10021,7 @@ xorriso/configure_ac.txt
xorriso/xorriso_timestamp.h
Version leap to libisoburn-1.0.4
10 Mar 2011 [3656]
[]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
@ -10041,376 +10041,16 @@ Documented changes and release timestamp
* Own man page and info document for xorrisofs
2011.03.10.135207 [3661]
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
xorriso/xorriso_timestamp.h
Version leap to libisoburn-1.0.5
10 Mar 2011 [3662]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
10 Mar 2011 [3663]
svn move -m Promoted branch to tag
http://svn.libburnia-project.org/libisoburn/branches/1.0.4
http://svn.libburnia-project.org/libisoburn/tags/1.0.4
------------------------------------ cycle - xorriso-1.0.5 - 2011.03.10.135207
13 Mar 2011 [3668]
COPYRIGHT
Updated copyright year
2011.03.13.131305 [3669]
configure.ac
libisoburn/libisoburn.h
Requiring libburn-1.0.5
2011.03.13.131557 [3670]
libisoburn/burn_wrap.c
libisoburn/isofs_wrap.c
Prepared libisoburn for drive role 4
2011.03.21.093208 [3679]
libisoburn/burn_wrap.c
libisoburn/isofs_wrap.c
Prepared libisoburn for drive role 5
2011.03.21.093705 [3680]
xorriso/xorriso.h
xorriso/xorriso_private.h
xorriso/base_obj.c
xorriso/parse_exec.c
xorriso/opts_d_h.c
xorriso/write_run.c
xorriso/text_io.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
libisoburn/libisoburn.ver
New option -early_drive_test
2011.03.21.113720 [3681]
libisoburn/libisoburn.h
libisoburn/burn_wrap.c
libisoburn/libisoburn.ver
New API call isoburn_set_truncate()
2011.03.21.113858 [3682]
xorriso/write_run.c
Made use of new API call isoburn_set_truncate
2011.03.21.165533 [3683]
xorriso/xorriso_private.h
xorriso/opts_d_h.c
xorriso/drive_mgt.c
xorriso/text_io.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New -early_stdio_test option appendable_wo
2011.03.22.081408 [3684]
libisoburn/burn_wrap.c
Fixed use of uninitialized variable when blanking rol5 pseudo drives
24 Mar 2011 [3686]
xorriso/README_gnu_xorriso
Fixed typos in GNU xorriso readme file
2011.03.24.182518 [3688]
libisoburn/burn_wrap.c
libisoburn/isofs_wrap.c
Better handling of pseudo-drive without read-permission
2011.03.25.191936 [3689]
configure.ac
libisoburn/libisoburn.h
Requiring libisofs-1.0.5
2011.03.26.100519 [3690]
xorriso/iso_manip.c
Reporting target name if adding of new node fails with ISO_WRONG_ARG_VALUE
2011.03.26.143944 [3691]
xorriso/write_run.c
Unconditionally reporting iso_level with -status -compliance
2011.03.26.144233 [3692]
libisoburn/libisoburn.h
libisoburn/isoburn.h
libisoburn/isoburn.c
New relax option isoburn_igopt_joliet_long_names
2011.03.26.144541 [3693]
xorriso/emulators.c
xorriso/write_run.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
xorriso/xorrisofs.texi
xorriso/xorrisofs.info
xorriso/xorrisofs.1
New -compliance option joliet_long_names
26 Mar 2011 [3694]
xorriso/xorrisofs.texi
xorriso/xorrisofs.info
xorriso/xorrisofs.1
Small adjustments to xorrisofs.texi
26 Mar 2011 [3695]
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.0.5 - 2011.03.26.144541
* New API call isoburn_set_truncate()
* New relax option isoburn_igopt_joliet_long_names
* New option -early_stdio_test
* New -compliance option joliet_long_names
* -as mkisofs option -joliet-long is now fully functional
* Burning DVD-R DAO with 2 kB size granularity rather than 32 kB
2011.03.26.203042 [3696]
xorriso/iso_manip.c
Interpreting new libisofs error codes ISO_RR_NAME_TOO_LONG ISO_RR_NAME_RESERVED
2011.03.29.150930 [3697]
xorriso/iso_manip.c
Interpreting new libisofs error code ISO_RR_PATH_TOO_LONG
2011.03.29.151144 [3698]
xorriso/write_run.c
Bug fix: -as mkisofs padding did not work (regression in 1.0.4)
30 Mar 2011 [3699]
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.0.5 - 2011.03.29.151144
* Bug fix: -as mkisofs padding did not work (regression in 1.0.4)
2011.04.01.133116 [3700]
xorriso/emulators.c
Allowing double dashes with all long xorrisofs options
3 Apr 2011 [3701]
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
Clarified relation of startup files, -options_from_file and quoted input.
3 Apr 2011 [3702]
xorriso/COPYRIGHT_gnu_xorriso
xorriso/README_gnu_xorriso
Updated info about GNU xorriso copyright and libjte
2011.04.03.094634 [3703]
xorriso/xorriso.h
xorriso/parse_exec.c
xorriso/opts_d_h.c
xorriso/opts_p_z.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New options -print_info and -print_mark
2011.04.04.064909 [3704]
xorriso/write_run.c
Bug fix: Options -gid and -uid had no effect
2011.04.04.071443 [3705]
xorriso/drive_mgt.c
Avoided to report Volume Id when aquiring drive with blank media
4 Apr 2011 [3706]
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.0.5 - 2011.04.04.071443
* Bug fix: Options -gid and -uid had no effect
* New options -print_info and -print_mark
2011.04.04.140752 [3707]
Makefile.am
xorriso/xorriso_makefile_am.txt
xorriso/make_xorriso_standalone.sh
+ doc/startup_file.txt
Added an example of a startup file
2011.04.05.072141 [3708]
xorriso/xorriso_main.c
xorriso/write_run.c
Fixed a typo in messages and goto label
07 Apr 2011 [3709]
xorriso/xorrisofs.texi
xorriso/xorrisofs.info
xorriso/xorrisofs.1
Clarification about -as mkisofs pathspecs
07 Apr 2011 [3710]
doc/partition_offset.wiki
Updated partition offset wiki about cylinder alignment
08 Apr 2011 [3711]
doc/faq.wiki
FAQ about release version numbers
08 Apr 2011 [3716]
svn copy -m Branching for libisoburn release 1.0.6
http://svn.libburnia-project.org/libisoburn/trunk
http://svn.libburnia-project.org/libisoburn/branches/1.0.6
2011.04.08.193001 [3717]
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
xorriso/xorriso_timestamp.h
Version leap to libisoburn-1.0.6
08 Apr 2011 [3718]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
----------------------------------- release - xorriso-1.0.6 - 2011.04.08.193001
* Bug fix: -as mkisofs padding did not work (regression in 1.0.4)
* Bug fix: Options -gid and -uid had no effect
* New API call isoburn_set_truncate()
* New relax option isoburn_igopt_joliet_long_names
* New option -early_stdio_test
* New options -print_info and -print_mark
* New -compliance option joliet_long_names
* -as mkisofs option -joliet-long is now fully functional
* Burning DVD-R DAO with 2 kB size granularity rather than 32 kB
2011.04.09.105219 [3723]
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
xorriso/xorriso_timestamp.h
Version leap to libisoburn-1.0.7
09 Apr 2011 [3724]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
09 Apr 2011 [3725]
svn move -m Promoted branch to tag
http://svn.libburnia-project.org/libisoburn/branches/1.0.6
http://svn.libburnia-project.org/libisoburn/tags/1.0.6
------------------------------------ cycle - xorriso-1.0.7 - 2011.04.09.105219
2011.04.13.204236 [3726]
xorriso/emulators.c
Bug fix: mkisofs emulation could ignore options (regression in 0.1.6)
14 Apr 2011 [3727]
svn copy -m Branching for libisoburn release 1.0.8
http://svn.libburnia-project.org/libisoburn/trunk
http://svn.libburnia-project.org/libisoburn/branches/1.0.8
2011.04.15.073001 [3278]
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
xorriso/xorriso_timestamp.h
Version leap to libisoburn-1.0.8
14 Apr 2011 [3729]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
2011.04.14.073001 []
xorriso/xorriso_timestamp.h
ChangeLog
xorriso/changelog.txt
Corrected release date
----------------------------------- release - xorriso-1.0.8 - 2011.04.13.073001
* Bug fix: mkisofs emulation could ignore options (regression in 0.1.6)
[]
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
xorriso/xorriso_timestamp.h
Version leap to libisoburn-1.0.9
[]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
[]
svn move -m Promoted branch to tag
http://svn.libburnia-project.org/libisoburn/branches/1.0.8
http://svn.libburnia-project.org/libisoburn/tags/1.0.8
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.0.9 -
------------------------------------ cycle - xorriso-1.0.5 -
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.0.9 -
------------------------------------ cycle - xorriso-1.0.5 -
**********************************************************************
@ -10422,28 +10062,22 @@ Important: When adding a public API function then add its name to file
TODO
===============================================================================
- Does not do anything:
xorriso -as mkisofs -o /dvdbuffer/image.iso /u/x
This works
xorriso -as mkisofs -o /dvdbuffer/image.iso -J /u/x
- The return values of the fwrite() calls in libisofs/demo/demo.c are ignored
- Make Debian test machine ready for cppcheck and add it to release procedure
- ? 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()
- Keshav P.R. <skodabenz@rocketmail.com>:
Allow double dashes with all long options.
- Zhang Weiwu:
>>> ask for test of -old-root
- xorrecord.texi , man_1_xorrecord.html
- xorrecord.texi
- man_1_xorrisofs.html , man_1_xorrecord.html
- make possible -joliet-long in libisofs:
Up to 103 leafname characters in Joliet.
Name length restriction in libisofs/util.c:iso_j_file_id seems
to be hardcoded.
------------------------------------------------- For Debian:
@ -10531,6 +10165,8 @@ xorriso : UPDATE : 3691 MB written (fifo 78%) [buf 100%] 2.3x.
- take into account indispensible RR and eventual Joliet stuff
- take into account the eventual file checksums.
- options -print_info , -print_mark
- Mark data blocks of -check_md5 matching files as valid in sector map ?
- tree of name nodes to represent the cached paths of hardlink candidates.

View File

@ -3,7 +3,7 @@
# Copyright (c) 2007 - 2011 Thomas Schmitt <scdbackup@gmx.net>
# Provided under GPL version 2 or later.
AC_INIT([xorriso], [1.0.8], [http://libburnia-project.org])
AC_INIT([xorriso], [1.0.4], [http://libburnia-project.org])
AC_PREREQ([2.50])
AC_CANONICAL_HOST
@ -22,14 +22,14 @@ AC_DEFINE([Xorriso_standalonE], [])
BURN_MAJOR_VERSION=1
BURN_MINOR_VERSION=0
BURN_MICRO_VERSION=7
BURN_MICRO_VERSION=4
AC_SUBST(BURN_MAJOR_VERSION)
AC_SUBST(BURN_MINOR_VERSION)
AC_SUBST(BURN_MICRO_VERSION)
LIBISOFS_MAJOR_VERSION=1
LIBISOFS_MINOR_VERSION=0
LIBISOFS_MICRO_VERSION=7
LIBISOFS_MICRO_VERSION=4
AC_SUBST(LIBISOFS_MAJOR_VERSION)
AC_SUBST(LIBISOFS_MINOR_VERSION)
AC_SUBST(LIBISOFS_MICRO_VERSION)

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2010 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -225,7 +225,6 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, int flag)
if((xorriso->ino_behavior & (1 | 2)) && !(xorriso->do_aaip & (4 | 32)))
aquire_flag|= 64;
burn_preset_device_open(xorriso->drives_exclusive, 0, 0);
burn_allow_drive_role_4(1 | (xorriso->early_stdio_test & 14));
ret= isoburn_drive_aquire(&dinfo, libburn_adr, aquire_flag);
burn_preset_device_open(1, 0, 0);
Xorriso_process_msg_queues(xorriso,0);
@ -503,16 +502,15 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, int flag)
if(!(flag&32)) {
Xorriso_toc(xorriso, 1 | 8);
if(xorriso->loaded_volid[0] != 0 &&
(state == BURN_DISC_APPENDABLE || state == BURN_DISC_FULL)) {
sprintf(xorriso->info_text,"Volume id : '%s'\n",
xorriso->loaded_volid);
Xorriso_info(xorriso, 0);
}
if(strcmp(xorriso->loaded_volid, xorriso->volid) != 0 &&
!xorriso->volid_default) {
sprintf(xorriso->info_text, "New volume id: '%s'\n", xorriso->volid);
if(xorriso->loaded_volid[0]!=0) {
sprintf(xorriso->info_text,"Volume id : '%s'\n",
xorriso->loaded_volid);
Xorriso_info(xorriso, 0);
if(strcmp(xorriso->loaded_volid, xorriso->volid) != 0 &&
!xorriso->volid_default) {
sprintf(xorriso->info_text, "New volume id: '%s'\n", xorriso->volid);
Xorriso_info(xorriso, 0);
}
}
}
@ -834,18 +832,14 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
if(profile_no == 0x0002 && s == BURN_DISC_EMPTY)
profile_no= 0;
sprintf(respt, "Media current: ");
drive_role= burn_drive_get_drive_role(drive);
if (profile_no > 0 && ret > 0) {
if (profile_name[0])
sprintf(respt+strlen(respt), "%s", profile_name);
else
sprintf(respt+strlen(respt), "%4.4Xh", profile_no);
drive_role= burn_drive_get_drive_role(drive);
if(drive_role==2)
sprintf(respt+strlen(respt), ", overwriteable");
else if(drive_role == 4)
sprintf(respt+strlen(respt), ", random read-only");
else if(drive_role == 5)
sprintf(respt+strlen(respt), ", random write-only");
else if(drive_role==0 || drive_role==3)
sprintf(respt+strlen(respt), ", sequential");
strcat(respt, "\n");
@ -904,21 +898,15 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
if (disc==NULL) {
Xorriso_process_msg_queues(xorriso,0);
if(drive_role == 5 && s == BURN_DISC_APPENDABLE) {
ret= burn_disc_track_lba_nwa(drive, NULL, 0, &lba, &nwa);
if(ret == 1)
num_data= nwa;
} else {
ret= isoburn_get_min_start_byte(drive, &start_byte, 0);
nwa= start_byte / 2048;
if(ret<=0) {
Xorriso_process_msg_queues(xorriso,0);
if(flag&1)
{ret= 0; goto ex;}
sprintf(xorriso->info_text, "Cannot obtain Table Of Content");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
ret= isoburn_get_min_start_byte(drive, &start_byte, 0);
nwa= start_byte / 2048;
if(ret<=0) {
Xorriso_process_msg_queues(xorriso,0);
if(flag&1)
{ret= 0; goto ex;}
}
sprintf(xorriso->info_text, "Cannot obtain Table Of Content");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
{ret= 0; goto ex;}
}
/* fabricate TOC */
@ -933,13 +921,13 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
1, 0, image_blocks, volume_id);
nwa= image_blocks;
} else {
nwa= num_data;
nwa= 0;
ret= burn_disc_get_formats(drive, &status, &size, &dummy,
&num_formats);
if(ret>0 && status==BURN_FORMAT_IS_FORMATTED)
nwa= size/2048;
sprintf(respt, "%13s: %3d , %9d , %9ds , \n",
typetext, 1, num_data, nwa);
typetext, 1, 0, nwa);
}
if(!(flag&1))
Xorriso_toc_line(xorriso, flag & 8);
@ -1035,8 +1023,8 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
{ret= 1; goto ex;}
num_wasted= lba - num_payload;
num_nondata= lba - num_data;
Sfile_scale(((double) num_data) * 2048.0, mem_text,5,1e4,1);
sprintf(respt, "Media summary: %d session%s, %d data blocks, %s data",
num_sessions, (num_sessions==1 ? "" : "s"), num_data, mem_text);
num_free= isoburn_disc_available_space(drive, NULL);
@ -1305,12 +1293,6 @@ int Xorriso_atip(struct XorrisO *xorriso, int flag)
else if(ret==3)
sprintf(respt+strlen(respt), "%s\n",
"Emulated (stdio-drive, sequential write-only)");
else if(ret == 4)
sprintf(respt+strlen(respt), "%s\n",
"Emulated (stdio-drive, 2k random read-only)");
else if(ret == 5)
sprintf(respt+strlen(respt), "%s\n",
"Emulated (stdio-drive, 2k random write-only)");
else if(ret!=1)
sprintf(respt+strlen(respt), "%s\n","Emulated (stdio-drive)");
else

View File

@ -617,7 +617,7 @@ int Xorriso_genisofs_count_args(struct XorrisO *xorriso, int argc, char **argv,
/* @param flag bit0= do not report eventual ignore decision
*/
int Xorriso_genisofs_ignore(struct XorrisO *xorriso, char *whom,
char *argpt, int *i, int flag)
char **argv, int *i, int flag)
{
/* mkisofs 2.01 options which are not scheduled for implementation, yet */
static char ignored_arg0_options[][41]= {
@ -633,22 +633,23 @@ int Xorriso_genisofs_ignore(struct XorrisO *xorriso, char *whom,
"-check-session", "-hide-hfs", "-hide-hfs-list",
"-table-name", "-volset-seqno", "-volset-size",
""
};
int k;
}; /* "-root", "-old-root", */
int k, idx_offset= 0;
char sfe[5*SfileadrL];
for(k=0;ignored_arg0_options[k][0]!=0;k++)
if(strcmp(argpt,ignored_arg0_options[k])==0)
if(strcmp(argv[*i],ignored_arg0_options[k])==0)
goto no_volunteer;
for(k=0;ignored_arg1_options[k][0]!=0;k++)
if(strcmp(argpt,ignored_arg1_options[k])==0) {
if(strcmp(argv[*i],ignored_arg1_options[k])==0) {
(*i)++;
idx_offset= -1;
goto no_volunteer;
}
}
return(0);
no_volunteer:;
sprintf(xorriso->info_text, "-as %s: Ignored option %s",
whom, Text_shellsafe(argpt, sfe, 0));
whom, Text_shellsafe(argv[(*i)+idx_offset], sfe, 0));
if(!(flag & 1))
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
return(1);
@ -890,27 +891,6 @@ ex:;
}
/* Strip surplus dash from known single-dash long options */
int Xorriso_genisofs_strip_dash(struct XorrisO *xorriso, char *arg_in,
char **arg_out, int flag)
{
int ret, count;
char *argv[1];
*arg_out= arg_in;
if(strlen(arg_in) < 4)
return(1);
if(arg_in[0] != '-' || arg_in[1] != '-' || arg_in[2] == '-')
return(1);
argv[0]= arg_in + 1;
ret= Xorriso_genisofs_count_args(xorriso, 1, argv, &count, 0);
if(ret > 0)
*arg_out= arg_in + 1;
return(1);
}
/* micro emulation of mkisofs */
int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
int argc, char **argv, int flag)
@ -927,7 +907,7 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
int *delay_opt_list= NULL, delay_opt_count= 0;
char sfe[5*SfileadrL], adr[SfileadrL+8], ra_text[80], pathspec[2*SfileadrL];
char *ept, *add_pt, eff_path[SfileadrL], indev[SfileadrL+8], msc[80], *cpt;
char old_root[SfileadrL], *argpt, *hargv[1];
char old_root[SfileadrL];
char *boot_path, partno_text[8], *iso_rr_pt, *disk_pt, *rpt, *wpt;
char *rm_merge_args[3];
@ -954,13 +934,10 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
with_cat_path= -1;
adr[0]= indev[0]= msc[0]= old_root[0]= 0;
for(i= 0; i<argc; i++) {
ret= Xorriso_genisofs_strip_dash(xorriso, argv[i], &argpt, 0);
if(ret <= 0)
goto ex;
ret= Xorriso_genisofs_ignore(xorriso, whom, argpt, &i, 1);
ret= Xorriso_genisofs_ignore(xorriso, whom, argv, &i, 1);
if(ret == 1)
continue;
if(strcmp(argpt, "-version")==0) {
if(strcmp(argv[i], "-version")==0) {
sprintf(xorriso->result_line,
"mkisofs 2.01-Emulation Copyright (C) 2011 see libburnia-project.org xorriso\n"
);
@ -972,7 +949,7 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
fsync(fd);
Xorriso_option_version(xorriso, 0);
} else if(strcmp(argpt, "-o")==0 || strcmp(argpt, "-output")==0) {
} else if(strcmp(argv[i], "-o")==0 || strcmp(argv[i], "-output")==0) {
if(i+1>=argc)
goto not_enough_args;
i++;
@ -981,8 +958,8 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
strcpy(adr, "stdio:");
if(Sfile_str(adr+strlen(adr), argv[i], 0)<=0)
{ret= -1; goto ex;}
} else if(strcmp(argpt, "-M")==0 || strcmp(argpt, "-dev")==0 ||
strcmp(argpt, "-prev-session")==0) {
} else if(strcmp(argv[i], "-M")==0 || strcmp(argv[i], "-dev")==0 ||
strcmp(argv[i], "-prev-session")==0) {
if(i+1>=argc)
goto not_enough_args;
i++;
@ -990,24 +967,24 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
strcpy(indev, "stdio:");
if(Sfile_str(indev+strlen(indev), argv[i], 0)<=0)
{ret= -1; goto ex;}
} else if(strcmp(argpt, "-C")==0 ||
strcmp(argpt, "-cdrecord-params")==0) {
} else if(strcmp(argv[i], "-C")==0 ||
strcmp(argv[i], "-cdrecord-params")==0) {
if(i+1>=argc)
goto not_enough_args;
i++;
strncpy(msc, argv[i], sizeof(msc)-1);
msc[sizeof(msc)-1]= 0;
} else if(strcmp(argpt, "-help")==0) {
} else if(strcmp(argv[i], "-help")==0) {
Xorriso_genisofs_help(xorriso, 0);
} else if(strcmp(argpt, "-v")==0 || strcmp(argpt, "-verbose")==0) {
} else if(strcmp(argv[i], "-v")==0 || strcmp(argv[i], "-verbose")==0) {
strcpy(ra_text, "UPDATE");
} else if(strcmp(argpt, "-quiet")==0) {
} else if(strcmp(argv[i], "-quiet")==0) {
strcpy(ra_text, "SORRY");
} else if(strcmp(argpt, "-f")==0 || strcmp(argpt, "-follow-links")==0) {
} else if(strcmp(argv[i], "-f")==0 || strcmp(argv[i], "-follow-links")==0) {
ret= Xorriso_option_follow(xorriso, "on", 0);
if(ret<=0)
goto problem_handler_1;
} else if(strcmp(argpt, "-iso-level")==0) {
} else if(strcmp(argv[i], "-iso-level")==0) {
if(i+1>=argc)
goto not_enough_args;
i++;
@ -1028,7 +1005,7 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
goto problem_handler_1;
}
} else if(strcmp(argpt, "-input-charset")==0) {
} else if(strcmp(argv[i], "-input-charset")==0) {
if(i+1>=argc)
goto not_enough_args;
i++;
@ -1039,7 +1016,7 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
ret= Xorriso_option_charset(xorriso, argv[i], 4);
if(ret <= 0)
goto problem_handler_1;
} else if(strcmp(argpt, "-output-charset")==0) {
} else if(strcmp(argv[i], "-output-charset")==0) {
if(i+1>=argc)
goto not_enough_args;
i++;
@ -1051,25 +1028,25 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
if(ret <= 0)
goto problem_handler_1;
} else if(strcmp(argpt, "-hide") == 0 ||
strcmp(argpt, "-hide-list") == 0 ||
strcmp(argpt, "-hide-joliet") == 0 ||
strcmp(argpt, "-hide-joliet-list") == 0) {
} else if(strcmp(argv[i], "-hide") == 0 ||
strcmp(argv[i], "-hide-list") == 0 ||
strcmp(argv[i], "-hide-joliet") == 0 ||
strcmp(argv[i], "-hide-joliet-list") == 0) {
if(i+1>=argc)
goto not_enough_args;
i++;
if(strcmp(argpt, "-hide") == 0)
if(strcmp(argv[i - 1], "-hide") == 0)
ret= Xorriso_genisofs_hide(xorriso, whom, argv[i], 1, 0);
else if(strcmp(argpt, "-hide-list") == 0)
else if(strcmp(argv[i - 1], "-hide-list") == 0)
ret= Xorriso_genisofs_hide_list(xorriso, whom, argv[i], 1, 0);
else if(strcmp(argpt, "-hide-joliet") == 0)
else if(strcmp(argv[i - 1], "-hide-joliet") == 0)
ret= Xorriso_genisofs_hide(xorriso, whom, argv[i], 2, 0);
else if(strcmp(argpt, "-hide-joliet-list") == 0)
else if(strcmp(argv[i - 1], "-hide-joliet-list") == 0)
ret= Xorriso_genisofs_hide_list(xorriso, whom, argv[i], 2, 0);
if(ret <= 0)
goto problem_handler_1;
} else if(strcmp(argpt, "-root") == 0) {
} else if(strcmp(argv[i], "-root") == 0) {
if(i+1>=argc)
goto not_enough_args;
i++;
@ -1080,7 +1057,7 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
strcpy(xorriso->wdi, eff_path);
root_seen= 1;
} else if(strcmp(argpt, "-old-root") == 0) {
} else if(strcmp(argv[i], "-old-root") == 0) {
if(i+1>=argc)
goto not_enough_args;
i++;
@ -1089,56 +1066,54 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
if(Sfile_str(old_root, argv[i], argv[i][0] != '/') <= 0)
{ret= -1; goto ex;}
} else if(strcmp(argpt, "--old-root-no-md5")==0) {
} else if(strcmp(argv[i], "--old-root-no-md5")==0) {
old_root_md5= 0;
} else if(strcmp(argpt, "--old-root-devno")==0) {
} else if(strcmp(argv[i], "--old-root-devno")==0) {
old_root_dev= 1;
} else if(strcmp(argpt, "--old-root-no-ino")==0) {
} else if(strcmp(argv[i], "--old-root-no-ino")==0) {
old_root_ino= 0;
} else if(strcmp(argpt, "--hardlinks")==0) {
} else if(strcmp(argv[i], "--hardlinks")==0) {
Xorriso_option_hardlinks(xorriso, "on", 0);
} else if(strcmp(argpt, "--acl")==0) {
} else if(strcmp(argv[i], "--acl")==0) {
Xorriso_option_acl(xorriso, "on", 0);
} else if(strcmp(argpt, "--xattr")==0) {
} else if(strcmp(argv[i], "--xattr")==0) {
Xorriso_option_xattr(xorriso, "on", 0);
} else if(strcmp(argpt, "--md5")==0) {
} else if(strcmp(argv[i], "--md5")==0) {
Xorriso_option_md5(xorriso, "on", 0);
} else if(strcmp(argpt, "--scdbackup_tag")==0) {
} else if(strcmp(argv[i], "--scdbackup_tag")==0) {
if(i + 2 >= argc)
goto not_enough_args;
i+= 2;
ret= Xorriso_option_scdbackup_tag(xorriso, argv[i-1], argv[i], 0);
if(ret <= 0)
goto problem_handler_1;
} else if(strcmp(argpt, "--for_backup")==0) {
} else if(strcmp(argv[i], "--for_backup")==0) {
Xorriso_option_hardlinks(xorriso, "on", 0);
Xorriso_option_acl(xorriso, "on", 0);
Xorriso_option_xattr(xorriso, "on", 0);
Xorriso_option_md5(xorriso, "on", 0);
} else if(strcmp(argpt, "-z")==0 ||
strcmp(argpt, "-transparent-compression")==0) {
} else if(strcmp(argv[i], "-z")==0 ||
strcmp(argv[i], "-transparent-compression")==0) {
Xorriso_option_zisofs(xorriso, "by_magic=on", 0);
} else if(strcmp(argpt, "--stdio_sync")==0) {
} else if(strcmp(argv[i], "--stdio_sync")==0) {
if(i+1>=argc)
goto not_enough_args;
i++;
Xorriso_option_stdio_sync(xorriso, argv[i], 0);
} else if(strcmp(argpt, "-disallow_dir_id_ext")==0) {
} else if(strcmp(argv[i], "-disallow_dir_id_ext")==0) {
allow_dir_id_ext= 0;
} else if(strcmp(argpt, "--emul-toc")==0) {
} else if(strcmp(argv[i], "--emul-toc")==0) {
with_emul_toc= 1;
xorriso->no_emul_toc&= ~1;
} else if(strcmp(argpt, "--no-emul-toc")==0) {
} else if(strcmp(argv[i], "--no-emul-toc")==0) {
with_emul_toc= 0;
xorriso->no_emul_toc|= 1;
} else {
} else
was_other_option= 1;
hargv[0]= argpt;
ret= Xorriso_genisofs_count_args(xorriso, argc - i, hargv, &count, 0);
ret= Xorriso_genisofs_count_args(xorriso, argc - i, argv + i, &count, 0);
if(ret > 0)
i+= count; /* skip eventual arguments of known option */
}
continue; /* regular bottom of loop */
problem_handler_1:;
was_failure= 1;
@ -1250,30 +1225,26 @@ illegal_c:;
sprintf(xorriso->info_text, "-as %s: %s",
whom, Text_shellsafe(argv[i], sfe, 0));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "DEBUG", 0);
ret= Xorriso_genisofs_strip_dash(xorriso, argv[i], &argpt, 0);
if(ret <= 0)
goto ex;
ret= Xorriso_genisofs_ignore(xorriso, whom, argpt, &i, 0);
ret= Xorriso_genisofs_ignore(xorriso, whom, argv, &i, 0);
if(ret == 1)
continue;
if(strcmp(argpt, "-version")==0) {
if(strcmp(argv[i], "-version")==0) {
/* was already handled in first argument scan */;
} else if(strcmp(argpt, "-R")==0 || strcmp(argpt, "-rock")==0) {
} else if(strcmp(argv[i], "-R")==0 || strcmp(argv[i], "-rock")==0) {
/* ok */;
} else if(strcmp(argpt, "-r")==0 || strcmp(argpt, "-rational-rock")==0){
} else if(strcmp(argv[i], "-r")==0 || strcmp(argv[i], "-rational-rock")==0){
lower_r= 1;
} else if(strcmp(argpt, "-J")==0 || strcmp(argpt, "-joliet")==0) {
} else if(strcmp(argv[i], "-J")==0 || strcmp(argv[i], "-joliet")==0) {
xorriso->do_joliet= 1;
} else if(strcmp(argpt, "-joliet-long")==0) {
ret= Xorriso_option_compliance(xorriso,
"joliet_long_paths:joliet_long_names", 0);
} else if(strcmp(argv[i], "-joliet-long")==0) {
ret= Xorriso_option_compliance(xorriso, "joliet_long_paths", 0);
if(ret<=0)
goto problem_handler_2;
} else if(strcmp(argpt, "-graft-points")==0) {
} else if(strcmp(argv[i], "-graft-points")==0) {
xorriso->allow_graft_points= 1;
} else if(strcmp(argpt, "-path-list")==0 ||
strcmp(argpt, "--quoted_path_list")==0) {
} else if(strcmp(argv[i], "-path-list")==0 ||
strcmp(argv[i], "--quoted_path_list")==0) {
if(i+1>=argc) {
not_enough_args:;
sprintf(xorriso->info_text, "-as %s: Not enough arguments to option %s",
@ -1285,67 +1256,67 @@ not_enough_args:;
was_path= 1;
xorriso->pacifier_style= 1;
ret= Xorriso_option_path_list(xorriso, argv[i],
(strcmp(argpt, "--quoted_path_list")==0));
(strcmp(argv[i-1], "--quoted_path_list")==0));
if(ret<=0)
goto problem_handler_2;
} else if(strcmp(argpt, "-f")==0 || strcmp(argpt, "-follow-links")==0) {
} else if(strcmp(argv[i], "-f")==0 || strcmp(argv[i], "-follow-links")==0) {
/* was already handled in first argument scan */;
} else if(strcmp(argpt, "-pad")==0) {
} else if(strcmp(argv[i], "-pad")==0) {
xorriso->padding= 300*1024;
} else if(strcmp(argpt, "-no-pad")==0) {
} else if(strcmp(argv[i], "-no-pad")==0) {
xorriso->padding= 0;
} else if(strcmp(argpt, "-print-size")==0) {
} else if(strcmp(argv[i], "-print-size")==0) {
do_print_size= 1;
} else if(strcmp(argpt, "-o")==0 || strcmp(argpt, "-output") == 0) {
} else if(strcmp(argv[i], "-o")==0 || strcmp(argv[i], "-output") == 0) {
i++;
/* was already handled in first argument scan */;
} else if(strcmp(argpt, "-M")==0 || strcmp(argpt, "-dev")==0 ||
strcmp(argpt, "-prev-session")==0) {
} else if(strcmp(argv[i], "-M")==0 || strcmp(argv[i], "-dev")==0 ||
strcmp(argv[i], "-prev-session")==0) {
i++;
/* was already handled in first argument scan */;
} else if(strcmp(argpt, "-C")==0 ||
strcmp(argpt, "-cdrecord-params")==0) {
} else if(strcmp(argv[i], "-C")==0 ||
strcmp(argv[i], "-cdrecord-params")==0) {
i++;
/* was already handled in first argument scan */;
} else if(strcmp(argpt, "-help")==0) {
} else if(strcmp(argv[i], "-help")==0) {
/* was already handled in first argument scan */;
} else if(strcmp(argpt, "-V")==0 || strcmp(argpt, "-volid")==0 ||
strcmp(argpt, "-volset")==0 ||
strcmp(argpt, "-p")==0 || strcmp(argpt, "-preparer")==0 ||
strcmp(argpt, "-P")==0 || strcmp(argpt, "-publisher")==0 ||
strcmp(argpt, "-A")==0 || strcmp(argpt, "-appid")==0 ||
strcmp(argpt, "-sysid")==0 ||
strcmp(argpt, "-biblio")==0 ||
strcmp(argpt, "-copyright")==0 ||
strcmp(argpt, "-abstract")==0 ) {
} else if(strcmp(argv[i], "-V")==0 || strcmp(argv[i], "-volid")==0 ||
strcmp(argv[i], "-volset")==0 ||
strcmp(argv[i], "-p")==0 || strcmp(argv[i], "-preparer")==0 ||
strcmp(argv[i], "-P")==0 || strcmp(argv[i], "-publisher")==0 ||
strcmp(argv[i], "-A")==0 || strcmp(argv[i], "-appid")==0 ||
strcmp(argv[i], "-sysid")==0 ||
strcmp(argv[i], "-biblio")==0 ||
strcmp(argv[i], "-copyright")==0 ||
strcmp(argv[i], "-abstract")==0 ) {
if(i+1>=argc)
goto not_enough_args;
i++;
ret= 1;
if(strcmp(argpt, "-V")==0 || strcmp(argpt, "-volid")==0)
if(strcmp(argv[i - 1], "-V")==0 || strcmp(argv[i - 1], "-volid")==0)
ret= Xorriso_option_volid(xorriso, argv[i], 0);
else if(strcmp(argpt, "-volset")==0)
else if(strcmp(argv[i - 1], "-volset")==0)
ret= Xorriso_option_volset_id(xorriso, argv[i], 0);
else if(strcmp(argpt, "-p")==0 ||
strcmp(argpt, "-preparer")==0)
else if(strcmp(argv[i - 1], "-p")==0 ||
strcmp(argv[i - 1], "-preparer")==0)
ret= Xorriso_option_preparer_id(xorriso, argv[i], 0);
else if(strcmp(argpt, "-P")==0 ||
strcmp(argpt, "-publisher")==0)
else if(strcmp(argv[i - 1], "-P")==0 ||
strcmp(argv[i - 1], "-publisher")==0)
ret= Xorriso_option_publisher(xorriso, argv[i], 0);
else if(strcmp(argpt, "-A")==0 || strcmp(argpt, "-appid")==0)
else if(strcmp(argv[i - 1], "-A")==0 || strcmp(argv[i - 1], "-appid")==0)
ret= Xorriso_option_application_id(xorriso, argv[i], 0);
else if(strcmp(argpt, "-sysid")==0)
else if(strcmp(argv[i - 1], "-sysid")==0)
ret= Xorriso_option_system_id(xorriso, argv[i], 0);
else if(strcmp(argpt, "-biblio")==0)
else if(strcmp(argv[i - 1], "-biblio")==0)
ret= Xorriso_option_biblio_file(xorriso, argv[i], 0);
else if(strcmp(argpt, "-copyright")==0)
else if(strcmp(argv[i - 1], "-copyright")==0)
ret= Xorriso_option_copyright_file(xorriso, argv[i], 0);
else if(strcmp(argpt, "-abstract")==0)
else if(strcmp(argv[i - 1], "-abstract")==0)
ret= Xorriso_option_abstract_file(xorriso, argv[i], 0);
if(ret<=0)
goto problem_handler_2;
} else if(strcmp(argpt, "-m")==0 || strcmp(argpt, "-exclude")==0 ||
strcmp(argpt, "-x")==0 || strcmp(argpt, "-old-exclude")==0) {
} else if(strcmp(argv[i], "-m")==0 || strcmp(argv[i], "-exclude")==0 ||
strcmp(argv[i], "-x")==0 || strcmp(argv[i], "-old-exclude")==0) {
if(i+1>=argc)
goto not_enough_args;
i++;
@ -1359,7 +1330,7 @@ not_enough_args:;
xorriso->do_disk_pattern= mem;
if(ret<=0)
goto problem_handler_2;
} else if(strcmp(argpt, "-exclude-list")==0) {
} else if(strcmp(argv[i], "-exclude-list")==0) {
if(i+1>=argc)
goto not_enough_args;
i++;
@ -1369,80 +1340,76 @@ not_enough_args:;
xorriso->do_disk_pattern= mem;
if(ret<=0)
goto problem_handler_2;
} else if(strcmp(argpt, "-v")==0 || strcmp(argpt, "-verbose")==0 ||
strcmp(argpt, "-quiet")==0) {
} else if(strcmp(argv[i], "-v")==0 || strcmp(argv[i], "-verbose")==0 ||
strcmp(argv[i], "-quiet")==0) {
/* was already handled in first argument scan */;
} else if(strcmp(argpt, "-iso-level")==0) {
} else if(strcmp(argv[i], "-iso-level")==0) {
i++;
/* was already handled in first argument scan */;
} else if(strcmp(argpt, "-no-emul-boot")==0 ||
strcmp(argpt, "-hard-disk-boot")==0 ||
strcmp(argpt, "-boot-info-table")==0 ||
strncmp(argpt, "isolinux_mbr=", 13)==0 ||
strcmp(argpt, "-eltorito-alt-boot")==0 ||
strcmp(argpt, "--protective-msdos-label")==0 ||
strcmp(argpt, "--boot-catalog-hide")==0) {
} else if(strcmp(argv[i], "-no-emul-boot")==0 ||
strcmp(argv[i], "-hard-disk-boot")==0 ||
strcmp(argv[i], "-boot-info-table")==0 ||
strncmp(argv[i], "isolinux_mbr=", 13)==0 ||
strcmp(argv[i], "-eltorito-alt-boot")==0 ||
strcmp(argv[i], "--protective-msdos-label")==0 ||
strcmp(argv[i], "--boot-catalog-hide")==0) {
delay_opt_list[delay_opt_count++]= i;
if(argv[i] != argpt)
delay_opt_list[delay_opt_count - 1]|= 1<<31;
} else if(strcmp(argpt, "-b") == 0 ||
strcmp(argpt, "-eltorito-boot") == 0 ||
strcmp(argpt, "--efi-boot") == 0 ||
strcmp(argpt, "-e") == 0 ||
strcmp(argpt, "-mips-boot") == 0 ||
strcmp(argpt, "-mipsel-boot") == 0 ||
strcmp(argpt, "-c") == 0 ||
strcmp(argpt, "-eltorito-catalog") == 0 ||
strcmp(argpt, "-boot-load-size") == 0 ||
strcmp(argpt, "--embedded-boot")==0 ||
strcmp(argpt, "-generic-boot")==0 ||
strcmp(argpt, "-G") == 0 ||
strcmp(argpt, "-partition_offset") == 0 ||
strcmp(argpt, "-partition_hd_cyl") == 0 ||
strcmp(argpt, "-partition_sec_hd") == 0 ||
strcmp(argpt, "-partition_cyl_align") == 0 ||
strcmp(argpt, "-isohybrid-mbr")==0) {
} else if(strcmp(argv[i], "-b") == 0 ||
strcmp(argv[i], "-eltorito-boot") == 0 ||
strcmp(argv[i], "--efi-boot") == 0 ||
strcmp(argv[i], "-e") == 0 ||
strcmp(argv[i], "-mips-boot") == 0 ||
strcmp(argv[i], "-mipsel-boot") == 0 ||
strcmp(argv[i], "-c") == 0 ||
strcmp(argv[i], "-eltorito-catalog") == 0 ||
strcmp(argv[i], "-boot-load-size") == 0 ||
strcmp(argv[i], "--embedded-boot")==0 ||
strcmp(argv[i], "-generic-boot")==0 ||
strcmp(argv[i], "-G") == 0 ||
strcmp(argv[i], "-partition_offset") == 0 ||
strcmp(argv[i], "-partition_hd_cyl") == 0 ||
strcmp(argv[i], "-partition_sec_hd") == 0 ||
strcmp(argv[i], "-partition_cyl_align") == 0 ||
strcmp(argv[i], "-isohybrid-mbr")==0) {
if(i+1>=argc)
goto not_enough_args;
delay_opt_list[delay_opt_count++]= i;
if(argv[i] != argpt)
delay_opt_list[delay_opt_count - 1]|= 1<<31;
i++;
} else if(strncmp(argpt, "--modification-date=", 20)==0) {
ret= Xorriso_option_volume_date(xorriso, "uuid", argpt + 20, 0);
} else if(strncmp(argv[i], "--modification-date=", 20)==0) {
ret= Xorriso_option_volume_date(xorriso, "uuid", argv[i] + 20, 0);
if(ret <= 0)
goto problem_handler_2;
} else if(strcmp(argpt, "-input-charset")==0) {
} else if(strcmp(argv[i], "-input-charset")==0) {
i++;
/* was already handled in first argument scan */;
} else if(strcmp(argpt, "-output-charset")==0) {
} else if(strcmp(argv[i], "-output-charset")==0) {
i++;
/* was already handled in first argument scan */;
} else if(strcmp(argpt, "--hardlinks")==0 ||
strcmp(argpt, "--acl")==0 ||
strcmp(argpt, "--xattr")==0 ||
strcmp(argpt, "--md5")==0 ||
strcmp(argpt, "--for_backup")==0) {
} else if(strcmp(argv[i], "--hardlinks")==0 ||
strcmp(argv[i], "--acl")==0 ||
strcmp(argv[i], "--xattr")==0 ||
strcmp(argv[i], "--md5")==0 ||
strcmp(argv[i], "--for_backup")==0) {
/* was already handled in first argument scan */;
} else if(strcmp(argpt, "--scdbackup_tag")==0) {
} else if(strcmp(argv[i], "--scdbackup_tag")==0) {
/* was already handled in first argument scan */;
i+= 2;
} else if(strcmp(argpt, "--sort-weight")==0) {
} else if(strcmp(argv[i], "--sort-weight")==0) {
if(i + 2 >= argc)
goto not_enough_args;
i+= 2;
/* memorize for find runs after pathspecs have been added */
weight_list[weight_count++]= i - 2;
} else if(strcmp(argpt, "-z")==0 ||
strcmp(argpt, "-transparent-compression")==0) {
} else if(strcmp(argv[i], "-z")==0 ||
strcmp(argv[i], "-transparent-compression")==0) {
/* was already handled in first argument scan */;
} else if(strcmp(argpt, "-U") == 0 ||
strcmp(argpt, "-untranslated-filenames") == 0) {
} else if(strcmp(argv[i], "-U") == 0 ||
strcmp(argv[i], "-untranslated-filenames") == 0) {
Xorriso_relax_compliance(xorriso,
"no_force_dots:long_paths:long_names:omit_version:full_ascii:lowercase", 0);
} else if(strcmp(argpt, "-untranslated_name_len") == 0) {
} else if(strcmp(argv[i], "-untranslated_name_len") == 0) {
if(i+1>=argc)
goto not_enough_args;
i++;
@ -1450,38 +1417,38 @@ not_enough_args:;
ret= Xorriso_relax_compliance(xorriso, sfe, 0);
if(ret <= 0)
goto problem_handler_2;
} else if(strcmp(argpt, "-N") == 0 ||
strcmp(argpt, "-omit-version-number") == 0) {
} else if(strcmp(argv[i], "-N") == 0 ||
strcmp(argv[i], "-omit-version-number") == 0) {
Xorriso_relax_compliance(xorriso, "omit_version", 0);
} else if(strcmp(argpt, "-l") == 0 ||
strcmp(argpt, "-full-iso9660-filenames") == 0 ||
strcmp(argpt, "-max-iso9660-filenames") == 0) {
} else if(strcmp(argv[i], "-l") == 0 ||
strcmp(argv[i], "-full-iso9660-filenames") == 0 ||
strcmp(argv[i], "-max-iso9660-filenames") == 0) {
Xorriso_relax_compliance(xorriso, "long_names", 0);
} else if(strcmp(argpt, "-d") == 0 ||
strcmp(argpt, "-omit-period") == 0) {
} else if(strcmp(argv[i], "-d") == 0 ||
strcmp(argv[i], "-omit-period") == 0) {
Xorriso_relax_compliance(xorriso, "no_force_dots", 0);
} else if(strcmp(argpt, "-allow-lowercase") == 0) {
} else if(strcmp(argv[i], "-allow-lowercase") == 0) {
Xorriso_relax_compliance(xorriso, "lowercase", 0);
} else if(strcmp(argpt, "-hide") == 0 ||
strcmp(argpt, "-hide-list") == 0 ||
strcmp(argpt, "-hide-joliet") == 0 ||
strcmp(argpt, "-hide-joliet-list") == 0) {
} else if(strcmp(argv[i], "-hide") == 0 ||
strcmp(argv[i], "-hide-list") == 0 ||
strcmp(argv[i], "-hide-joliet") == 0 ||
strcmp(argv[i], "-hide-joliet-list") == 0) {
if(i+1>=argc)
goto not_enough_args;
i++;
/* was already handled in first argument scan */;
} else if(strcmp(argpt, "-root") == 0 ||
strcmp(argpt, "-old-root") == 0) {
} else if(strcmp(argv[i], "-root") == 0 ||
strcmp(argv[i], "-old-root") == 0) {
if(i+1>=argc)
goto not_enough_args;
i++;
/* was already handled in first argument scan */;
} else if(strcmp(argpt, "--old-root-no-md5")==0 ||
strcmp(argpt, "--old-root-devno")==0 ||
strcmp(argpt, "--old-root-no-ino")==0) {
} else if(strcmp(argv[i], "--old-root-no-md5")==0 ||
strcmp(argv[i], "--old-root-devno")==0 ||
strcmp(argv[i], "--old-root-no-ino")==0) {
/* was already handled in first argument scan */;
} else if(strcmp(argpt, "-dir-mode") == 0) {
} else if(strcmp(argv[i], "-dir-mode") == 0) {
if(i+1>=argc)
goto not_enough_args;
i++;
@ -1490,7 +1457,7 @@ not_enough_args:;
if(ret<=0)
goto problem_handler_2;
dir_mode= mode_or;
} else if(strcmp(argpt, "-file-mode") == 0) {
} else if(strcmp(argv[i], "-file-mode") == 0) {
if(i+1>=argc)
goto not_enough_args;
i++;
@ -1499,29 +1466,29 @@ not_enough_args:;
if(ret<=0)
goto problem_handler_2;
file_mode= mode_or;
} else if(strcmp(argpt, "-jigdo-jigdo") == 0 ||
strcmp(argpt, "-jigdo-template") == 0 ||
strcmp(argpt, "-jigdo-min-file-size") == 0 ||
strcmp(argpt, "-jigdo-exclude") == 0 ||
strcmp(argpt, "-jigdo-force-md5") == 0 ||
strcmp(argpt, "-jigdo-map") == 0 ||
strcmp(argpt, "-jigdo-template-compress") == 0 ||
strcmp(argpt, "-checksum_algorithm_iso") == 0 ||
strcmp(argpt, "-checksum_algorithm_template") == 0 ||
strcmp(argpt, "-md5-list") == 0) {
} else if(strcmp(argv[i], "-jigdo-jigdo") == 0 ||
strcmp(argv[i], "-jigdo-template") == 0 ||
strcmp(argv[i], "-jigdo-min-file-size") == 0 ||
strcmp(argv[i], "-jigdo-exclude") == 0 ||
strcmp(argv[i], "-jigdo-force-md5") == 0 ||
strcmp(argv[i], "-jigdo-map") == 0 ||
strcmp(argv[i], "-jigdo-template-compress") == 0 ||
strcmp(argv[i], "-checksum_algorithm_iso") == 0 ||
strcmp(argv[i], "-checksum_algorithm_template") == 0 ||
strcmp(argv[i], "-md5-list") == 0) {
i++;
ret= Xorriso_option_jigdo(xorriso, argpt, argv[i], 0);
ret= Xorriso_option_jigdo(xorriso, argv[i - 1], argv[i], 0);
if(ret <= 0)
goto problem_handler_2;
} else if(strcmp(argpt, "-append_partition") == 0) {
} else if(strcmp(argv[i], "-append_partition") == 0) {
i+= 3;
ret= Xorriso_option_append_partition(xorriso, argv[i - 2], argv[i - 1],
argv[i], 0);
if(ret <= 0)
goto problem_handler_2;
} else if(strcmp(argpt, "-B") == 0 ||
strcmp(argpt, "-sparc-boot") == 0) {
} else if(strcmp(argv[i], "-B") == 0 ||
strcmp(argv[i], "-sparc-boot") == 0) {
i++;
if(strlen(argv[i]) >= SfileadrL)
continue;
@ -1568,33 +1535,32 @@ not_enough_args:;
}
}
} else if(strcmp(argpt, "-sparc-label") == 0) {
} else if(strcmp(argv[i], "-sparc-label") == 0) {
i++;
strncpy(xorriso->ascii_disc_label, argv[i], Xorriso_disc_label_sizE - 1);
xorriso->ascii_disc_label[Xorriso_disc_label_sizE - 1] = 0;
} else if(strcmp(argpt, "--stdio_sync")==0) {
} else if(strcmp(argv[i], "--stdio_sync")==0) {
if(i+1>=argc)
goto not_enough_args;
i++;
/* was already handled in first argument scan */;
} else if(strcmp(argpt, "--emul-toc")==0 ||
strcmp(argpt, "--no-emul-toc")==0) {
} else if(strcmp(argv[i], "--emul-toc")==0 ||
strcmp(argv[i], "--no-emul-toc")==0) {
/* was already handled in first argument scan */;
} else if(strcmp(argpt, "--old-empty")==0) {
} else if(strcmp(argv[i], "--old-empty")==0) {
xorriso->do_old_empty= 1;
} else if(strcmp(argpt, "-disallow_dir_id_ext")==0) {
} else if(strcmp(argv[i], "-disallow_dir_id_ext")==0) {
/* was already handled in first argument scan */;
} else if(strcmp(argpt, "--no_rc")==0) {
} else if(strcmp(argv[i], "--no_rc")==0) {
/* was already handled in Xorriso_prescan_args */;
} else if(argpt[0]=='-' && argpt[1]!=0) {
hargv[0]= argpt;
ret= Xorriso_genisofs_count_args(xorriso, argc - i, hargv, &count, 1);
} else if(argv[i][0]=='-' && argv[i][1]!=0) {
ret= Xorriso_genisofs_count_args(xorriso, argc - i, argv + i, &count, 1);
if(ret > 0) {
sprintf(xorriso->info_text, "-as %s: Unsupported option %s",
whom, Text_shellsafe(argv[i], sfe, 0));
@ -1763,23 +1729,19 @@ problem_handler_2:;
/* After all pathspecs are added: perform boot related options */
for(j= 0; j < delay_opt_count; j++) {
i= delay_opt_list[j] & ~(1 << 31);
if(delay_opt_list[j] & (1 << 31))
argpt= argv[i] + 1;
else
argpt= argv[i];
if(strcmp(argpt, "-no-emul-boot")==0) {
i= delay_opt_list[j];
if(strcmp(argv[i], "-no-emul-boot")==0) {
emul_boot= xorriso->boot_image_emul= 0;
} else if(strcmp(argpt, "-hard-disk-boot")==0) {
} else if(strcmp(argv[i], "-hard-disk-boot")==0) {
emul_boot= xorriso->boot_image_emul= 1;
} else if(strcmp(argpt, "-boot-info-table")==0) {
} else if(strcmp(argv[i], "-boot-info-table")==0) {
xorriso->patch_isolinux_image= 1;
} else if(strcmp(argpt, "-b") == 0 ||
strcmp(argpt, "-eltorito-boot") == 0 ||
strcmp(argpt, "--efi-boot") == 0 ||
strcmp(argpt, "-e") == 0) {
} else if(strcmp(argv[i], "-b") == 0 ||
strcmp(argv[i], "-eltorito-boot") == 0 ||
strcmp(argv[i], "--efi-boot") == 0 ||
strcmp(argv[i], "-e") == 0) {
i++;
if(strcmp(argpt, "--efi-boot") == 0) {
if(strcmp(argv[i - 1], "--efi-boot") == 0) {
if(xorriso->boot_image_bin_path[0]) {
ret= Xorriso_genisofs_add_boot(xorriso, whom,
&option_b, &emul_boot, 0);
@ -1792,7 +1754,7 @@ problem_handler_2:;
} else {
boot_path= xorriso->boot_image_bin_path;
if(strcmp(argpt, "-e") == 0)
if(strcmp(argv[i - 1], "-e") == 0)
xorriso->boot_platform_id= 0xef;
else
xorriso->boot_platform_id= 0x00;
@ -1816,8 +1778,8 @@ problem_handler_2:;
}
xorriso->keep_boot_image= 0;
with_boot_image= 1;
} else if(strcmp(argpt, "-c") == 0 ||
strcmp(argpt, "-eltorito-catalog") == 0) {
} else if(strcmp(argv[i], "-c") == 0 ||
strcmp(argv[i], "-eltorito-catalog") == 0) {
if(i+1>=argc)
goto not_enough_args;
i++;
@ -1830,56 +1792,56 @@ problem_handler_2:;
goto ex;
if(with_cat_path == 0)
with_cat_path= 1;
} else if(strcmp(argpt, "-boot-load-size") == 0) {
} else if(strcmp(argv[i], "-boot-load-size") == 0) {
if(i+1>=argc)
goto not_enough_args;
i++;
sscanf(argv[i], "%d", &ret);
xorriso->boot_image_load_size= ret * 512;
} else if(strncmp(argpt, "isolinux_mbr=", 13)==0) {
sprintf(sfe, "isohybrid=%s", argpt + 13);
} else if(strncmp(argv[i], "isolinux_mbr=", 13)==0) {
sprintf(sfe, "isohybrid=%s", argv[i] + 13);
ret= Xorriso_option_boot_image(xorriso, "isolinux", sfe, 0);
if(ret <= 0)
goto problem_handler_boot;
} else if(strcmp(argpt, "-eltorito-alt-boot")==0) {
} else if(strcmp(argv[i], "-eltorito-alt-boot")==0) {
ret= Xorriso_genisofs_add_boot(xorriso, whom,
&option_b, &emul_boot, 0);
if(ret <= 0)
goto problem_handler_boot;
} else if(strcmp(argpt, "--embedded-boot")==0 ||
strcmp(argpt, "-generic-boot")==0 ||
strcmp(argpt, "-G") == 0 ||
strcmp(argpt, "-isohybrid-mbr")==0) {
} else if(strcmp(argv[i], "--embedded-boot")==0 ||
strcmp(argv[i], "-generic-boot")==0 ||
strcmp(argv[i], "-G") == 0 ||
strcmp(argv[i], "-isohybrid-mbr")==0) {
if(i+1>=argc)
goto not_enough_args;
i++;
ret= Xorriso_set_system_area_path(xorriso, argv[i], 0);
if(ret <= 0)
goto problem_handler_boot;
if(strcmp(argpt, "-isohybrid-mbr")==0)
if(strcmp(argv[i - 1], "-isohybrid-mbr")==0)
xorriso->system_area_options= (xorriso->system_area_options & ~3) | 2;
} else if(strcmp(argpt, "--protective-msdos-label")==0) {
} else if(strcmp(argv[i], "--protective-msdos-label")==0) {
xorriso->system_area_options= (xorriso->system_area_options & ~3) | 1;
} else if(strcmp(argpt, "--boot-catalog-hide")==0) {
} else if(strcmp(argv[i], "--boot-catalog-hide")==0) {
xorriso->boot_image_cat_hidden|= 3;
} else if(strcmp(argpt, "-partition_offset") == 0 ||
strcmp(argpt, "-partition_sec_hd") == 0 ||
strcmp(argpt, "-partition_hd_cyl") == 0 ||
strcmp(argpt, "-partition_cyl_align") == 0) {
} else if(strcmp(argv[i], "-partition_offset") == 0 ||
strcmp(argv[i], "-partition_sec_hd") == 0 ||
strcmp(argv[i], "-partition_hd_cyl") == 0 ||
strcmp(argv[i], "-partition_cyl_align") == 0) {
if(i+1>=argc)
goto not_enough_args;
i++;
sprintf(sfe, "%s=%.16s", argpt + 1, argv[i]);
sprintf(sfe, "%s=%.16s", argv[i-1] + 1, argv[i]);
ret= Xorriso_option_boot_image(xorriso, "any", sfe, 0);
if(ret <= 0)
goto problem_handler_boot;
} else if(strcmp(argpt, "-mips-boot") == 0 ||
strcmp(argpt, "-mipsel-boot") == 0) {
} else if(strcmp(argv[i], "-mips-boot") == 0 ||
strcmp(argv[i], "-mipsel-boot") == 0) {
if(i + 1 >= argc)
goto not_enough_args;
i++;
if(strcmp(argpt, "-mipsel-boot") == 0)
if(strcmp(argv[i - 1], "-mipsel-boot") == 0)
strcpy(sfe, "mipsel_path=");
else
strcpy(sfe, "mips_path=");

View File

@ -166,7 +166,7 @@ int Xorriso_tree_graft_node(struct XorrisO *xorriso, IsoImage *volume,
{
int ret, stbuf_valid= 0;
struct stat stbuf;
char sfe[5*SfileadrL], *namept;
char sfe[5*SfileadrL];
off_t size= 0;
if(lstat(disk_path, &stbuf) != -1) {
@ -227,12 +227,7 @@ int Xorriso_tree_graft_node(struct XorrisO *xorriso, IsoImage *volume,
ex:;
if(ret<0) {
Xorriso_process_msg_queues(xorriso,0);
if(ret == ISO_RR_NAME_TOO_LONG || ret == ISO_RR_NAME_RESERVED ||
ret == ISO_RR_PATH_TOO_LONG)
namept= nominal_target;
else
namept= nominal_source;
Xorriso_report_iso_error(xorriso, namept, ret,
Xorriso_report_iso_error(xorriso, nominal_source, ret,
"Cannot add node to tree", 0, "FAILURE", 1|2);
return(ret);
}

View File

@ -40,7 +40,7 @@ create_gnu_xorriso="yes"
current_dir=$(pwd)
lone_dir="$current_dir"/"xorriso-standalone"
xorriso_rev=1.0.8
xorriso_rev=1.0.4
# For unstable uploads and patch level 0 of stable releases:
xorriso_pl=""
# For higher patch levels of stable releases:
@ -208,9 +208,7 @@ copy_files xorriso/xorriso_buildstamp_none.h \
"$lone_dir"/xorriso/xorriso_buildstamp_none.h
create_dir "$lone_dir"/doc
copy_files doc/partition_offset.wiki \
doc/startup_file.txt \
"$lone_dir"/doc
copy_files doc/partition_offset.wiki "$lone_dir"/doc
create_dir "$lone_dir"/test
copy_files \

View File

@ -300,25 +300,6 @@ int Xorriso_option_dvd_obs(struct XorrisO *xorriso, char *obs, int flag)
}
/* Option -early_stdio_test */
int Xorriso_option_early_stdio_test(struct XorrisO *xorriso, char *mode,
int flag)
{
if(strcmp(mode, "on") == 0)
xorriso->early_stdio_test= 2 | 4;
else if(strcmp(mode, "off") == 0)
xorriso->early_stdio_test= 0;
else if(strcmp(mode, "appendable_wo") == 0)
xorriso->early_stdio_test= 2 | 4 | 8;
else {
sprintf(xorriso->info_text, "-early_stdio_test: unknown mode '%s'", mode);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
return(0);
}
return(1);
}
/* Option -eject */
/* @param flag bit0=do not report toc of eventually remaining drives
*/
@ -1433,8 +1414,6 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" Enable production of scdbackup tag with -md5 on",
" -ban_stdio_write",
" Allow for writing only the usage of optical drives.",
" -early_stdio_test \"on\"|\"appendable_wo\"|\"off\"",
" Classify stdio drives by effective access permissions.",
" -blank \"fast\"|\"all\"|\"deformat\"|\"deformat_quickest\"",
" Blank media resp. invalidate ISO image on media.",
" -format \"as_needed\"|\"full\"|\"fast\"|\"by_index_#\"|\"by_size_#\"",
@ -1927,10 +1906,6 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" prevents reading and interpretation of startup files.",
" -print text",
" Print a text to result channel.",
" -print_info text",
" Print a text to info channel.",
" -print_mark text",
" Print a text to mark channel.",
" -prompt text",
" Wait for Enter key resp. for a line of input at stdin.",
" -errfile_log mode path|channel",

View File

@ -246,38 +246,11 @@ int Xorriso_option_preparer_id(struct XorrisO *xorriso, char *name, int flag)
}
/* Options -print , -print_info , -print_mark */
/* @param flag bit0-1= channel: 0=result, 1=info, 2=mark */
/* Option -print */
int Xorriso_option_print(struct XorrisO *xorriso, char *text, int flag)
{
int maxl, l, mode;
l= strlen(text);
mode= flag & 3;
if(mode == 1)
maxl= sizeof(xorriso->info_text);
else if(mode == 2)
maxl= sizeof(xorriso->mark_text);
else
maxl= sizeof(xorriso->result_line);
if(l >= maxl) {
sprintf(xorriso->info_text, "Output text too long for -print%s(%d > %d)",
mode == 1 ? "_info" : mode == 2 ? "_mark" : "", l, maxl);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
return(0);
}
if(mode == 1) {
sprintf(xorriso->info_text,"%s\n", text);
Xorriso_info(xorriso,0);
} else if(mode == 2) {
strcpy(xorriso->info_text, xorriso->mark_text);
strcpy(xorriso->mark_text, text);
Xorriso_mark(xorriso,0);
strcpy(xorriso->mark_text, xorriso->info_text);
} else {
sprintf(xorriso->result_line,"%s\n",text);
Xorriso_result(xorriso,1);
}
sprintf(xorriso->result_line,"%s\n",text);
Xorriso_result(xorriso,1);
return(1);
}

View File

@ -461,14 +461,14 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
"calm_drive","cd","cdi","cdx","charset","close",
"commit_eject","compliance","copyright_file",
"dev","dialog","disk_dev_ino","disk_pattern","displacement",
"dummy","dvd_obs","early_stdio_test", "eject",
"dummy","dvd_obs","eject",
"iso_rr_pattern","follow","format","fs","gid","grow_blindly","hardlinks",
"history","indev","in_charset","joliet",
"list_delimiter","list_profiles","local_charset",
"mark","md5","mount_opts","not_leaf","not_list","not_mgt",
"options_from_file","osirrox","outdev","out_charset","overwrite",
"pacifier","padding","path_list","pathspecs","pkt_output",
"preparer_id","print","print_info","print_mark","prompt",
"preparer_id","print","prompt",
"prog","prog_help","publisher","quoted_not_list","quoted_path_list",
"reassure","report_about","rom_toc_scan","scsi_log",
"session_log","speed","split_size","status","status_history_max",
@ -853,10 +853,6 @@ next_command:;
} else if(strcmp(cmd,"dux")==0 || strcmp(cmd,"dusx")==0) {
ret= Xorriso_option_lsx(xorriso, argc, argv, idx, (cmd[2]!='s')|4);
} else if(strcmp(cmd,"early_stdio_test")==0) {
(*idx)++;
ret= Xorriso_option_early_stdio_test(xorriso, arg1, 0);
} else if(strcmp(cmd,"eject")==0) {
(*idx)++;
ret= Xorriso_option_eject(xorriso, arg1, 0);
@ -1157,14 +1153,6 @@ next_command:;
(*idx)++;
ret= Xorriso_option_print(xorriso, arg1, 0);
} else if(strcmp(cmd,"print_info")==0) {
(*idx)++;
ret= Xorriso_option_print(xorriso, arg1, 1);
} else if(strcmp(cmd,"print_mark")==0) {
(*idx)++;
ret= Xorriso_option_print(xorriso, arg1, 2);
} else if(strcmp(cmd,"print_size")==0) {
Xorriso_option_print_size(xorriso, 0);

View File

@ -1242,13 +1242,6 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
Xorriso_status_result(xorriso,filter,fp,flag&2);
}
is_default= ((xorriso->early_stdio_test & 14) == 0);
sprintf(line, "-early_stdio_test %s\n",
xorriso->early_stdio_test & 6 ? xorriso->early_stdio_test & 8 ?
"appendable_wo" : "on" : "off");
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= (xorriso->allow_restore==0 && xorriso->do_concat_split==1 &&
xorriso->do_auto_chmod==0 && xorriso->drives_exclusive == 1);
mode_pt= "off";

View File

@ -767,10 +767,7 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
{ret= 0; goto ex;}
isoburn_igopt_set_sort_files(sopts, 1);
isoburn_igopt_set_over_mode(sopts, 0, 0, (mode_t) 0, (mode_t) 0);
isoburn_igopt_set_over_ugid(sopts, 2 * !!xorriso->do_global_uid,
2 * !!xorriso->do_global_gid,
(uid_t) xorriso->global_uid,
(gid_t) xorriso->global_gid);
isoburn_igopt_set_over_ugid(sopts, 0, 0, (uid_t) 0, (gid_t) 0);
isoburn_igopt_set_out_charset(sopts, out_cs);
isoburn_igopt_set_fifo_size(sopts, xorriso->fs * 2048);
Ftimetxt(time(NULL), xorriso->scdbackup_tag_time, 8);
@ -833,7 +830,7 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
fprintf(stderr, "XORRISO_DEBUG: isoburn_igopt_set_tail_blocks(%d)\n",
(int) padding);
*/
isoburn_igopt_set_tail_blocks(sopts, padding);
isoburn_igopt_set_tail_blocks(sopts, padding / 2048);
}
/* Make final abort check before starting expensive activities */
@ -928,11 +925,6 @@ fprintf(stderr, "XORRISO_DEBUG: isoburn_igopt_set_tail_blocks(%d)\n",
/* Important: do not return until burn_is_aborting() was checked */
Xorriso_set_signal_handling(xorriso, 1);
/* De-activate eventual target file truncation in dummy mode */
ret= isoburn_set_truncate(drive, (!xorriso->do_dummy) | 2 | 4);
if(ret < 0)
goto cancel_iso;
xorriso->run_state= 1; /* Indicate that burning has started */
isoburn_disc_write(burn_options, disc);
burn_write_opts_free(burn_options);
@ -982,7 +974,7 @@ fprintf(stderr, "XORRISO_DEBUG: isoburn_igopt_set_tail_blocks(%d)\n",
isoburn_sync_after_write(source_drive, drive, 0);
Xorriso_process_msg_queues(xorriso,0);
sprintf(xorriso->info_text, "Writing to %s completed successfully.\n\n",
sprintf(xorriso->info_text, "Writing to %s completed sucessfully.\n\n",
Text_shellsafe(xorriso->outdev,sfe,0));
Xorriso_info(xorriso, 0);
ret= 1;
@ -1765,29 +1757,20 @@ int Xorriso_burn_track(struct XorrisO *xorriso, off_t write_start_address,
if(isoburn_needs_emulation(drive)) {
if(flag&1) {
ret= isoburn_disc_track_lba_nwa(drive, burn_options, 0, &dummy, &nwa);
Xorriso_process_msg_queues(xorriso,0);
if(ret<=0) {
Xorriso_process_msg_queues(xorriso,0);
sprintf(xorriso->info_text,
"Cannot obtain next writeable address of emulated multi-session media\n");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
ret= 0; goto ex;
}
if(nwa == 32 && disc_state != BURN_DISC_APPENDABLE)
if(nwa==32)
nwa= 0; /* No automatic toc emulation. Formatter might not be aware. */
burn_write_opts_set_start_byte(burn_options,((off_t) nwa) * (off_t) 2048);
} else {
nwa= 0;
if (disc_state == BURN_DISC_APPENDABLE) {
ret= isoburn_disc_track_lba_nwa(drive, burn_options, 0, &dummy, &nwa);
Xorriso_process_msg_queues(xorriso,0);
if(ret<=0) {
sprintf(xorriso->info_text,
"Cannot obtain next writeable address of emulated appendable media\n");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
ret= 0; goto ex;
}
}
burn_write_opts_set_start_byte(burn_options, (off_t) 0);
}
burn_write_opts_set_start_byte(burn_options,((off_t) nwa) * (off_t) 2048);
}
if(write_start_address>=0) {
@ -1837,7 +1820,7 @@ int Xorriso_burn_track(struct XorrisO *xorriso, off_t write_start_address,
if(ret <= 0)
goto ex;
}
sprintf(xorriso->info_text, "Writing to %s completed successfully.\n\n",
sprintf(xorriso->info_text, "Writing to %s completed sucessfully.\n\n",
Text_shellsafe(xorriso->outdev,sfe,0));
Xorriso_info(xorriso, 0);
ret= 1;
@ -1964,12 +1947,6 @@ int Xorriso_relax_compliance(struct XorrisO *xorriso, char *mode,
} else if(l == 21 && strncmp(cpt, "joliet_long_paths_off", l) == 0) {
xorriso->relax_compliance&= ~isoburn_igopt_joliet_longer_paths;
} else if((l == 17 && strncmp(cpt, "joliet_long_names", l) == 0) ||
(l == 20 && strncmp(cpt, "joliet_long_names_on", l) == 0)) {
xorriso->relax_compliance|= isoburn_igopt_joliet_long_names;
} else if(l == 21 && strncmp(cpt, "joliet_long_names_off", l) == 0) {
xorriso->relax_compliance&= ~isoburn_igopt_joliet_long_names;
} else if((l == 10 && strncmp(cpt, "always_gmt", l) == 0) ||
(l == 13 && strncmp(cpt, "always_gmt_on", l) == 0)) {
xorriso->relax_compliance|= isoburn_igopt_always_gmt;
@ -2081,7 +2058,8 @@ int Xorriso_get_relax_text(struct XorrisO *xorriso, char mode[1024],
return(1);
}
strcpy(mode, "clear");
sprintf(mode + strlen(mode), ":iso_9660_level=%d", xorriso->iso_level);
if(xorriso->iso_level != 3)
sprintf(mode + strlen(mode), ":iso_9660_level=%d", xorriso->iso_level);
if(r & isoburn_igopt_allow_dir_id_ext)
strcat(mode, ":allow_dir_id_ext");
if(r & isoburn_igopt_omit_version_numbers)
@ -2104,8 +2082,6 @@ int Xorriso_get_relax_text(struct XorrisO *xorriso, char mode[1024],
strcat(mode, ":full_ascii");
if(r & isoburn_igopt_joliet_longer_paths)
strcat(mode, ":joliet_long_paths");
if(r & isoburn_igopt_joliet_long_names)
strcat(mode, ":joliet_long_names");
if(r & isoburn_igopt_always_gmt)
strcat(mode, ":always_gmt");
if(r & isoburn_igopt_dir_rec_mtime)
@ -2256,11 +2232,8 @@ int Xorriso_update_iso_lba0(struct XorrisO *xorriso, int iso_lba, int isosize,
}
if(iso_lba < 32)
return(2);
if(!(flag & 2)) {
/* head_buffer was not filled yet. Read it from output media. */
if(burn_drive_get_drive_role(drive) == 5) /* write-only */
return(2);
if(job != NULL && job->data_to_fd >= 0) {
if((flag & 8) && job->sector_map != NULL) {
ret= Sectorbitmap_bytes_are_set(job->sector_map,

View File

@ -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 XORRISO 1 "Apr 03, 2011"
.TH XORRISO 1 "Mar 09, 2011"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -873,19 +873,6 @@ Allow for writing only the usage of MMC optical drives. Disallow
to write the result into files of nearly arbitrary type.
Once set, this command cannot be revoked.
.TP
\fB\-early_stdio_test\fR "on"|"appendable_wo"|"off"
If enabled by "on" then regular files and block devices get tested for
effective access permissions. This implies to try opening those files for
writing, which otherwise will happen only later and only if actual
writing is desired.
.br
The test result is used for classifying the pseudo drives as overwriteable,
read-only, write-only, or uselessly empty. This may lead to earlier detection
of severe problems, and may avoid some less severe error events.
.br
Mode "appendable_wo" is like "on" with the additional property that
non-empty write-only files are regarded as appendable rather than blank.
.TP
.B Inserting files into ISO image:
.PP
The following commands expect file addresses of two kinds:
@ -2098,9 +2085,6 @@ fail deliberately.
for the length of file names. 0 disables this feature, -1 chooses maximum
length limit, numbers larger than 0 give the desired length limit.
.br
"joliet_long_names" allows Joliet leaf names up to 103 characters rather
than 64.
.br
"joliet_long_paths" allows Joliet paths longer than 240 characters.
.br
"always_gmt" stores timestamps in GMT representation with timezone 0.
@ -2883,9 +2867,9 @@ if the threshold of option -abort_on allows this.
.br
"failure" aborts image tree reading on first event of at least SORRY.
It issues an own FAILURE event.
This is the default.
.br
"fatal" acts like "failure" but issues the own event as FATAL.
This is the default.
.br
With occasion "file_extraction" there are three behaviors:
.br
@ -3796,12 +3780,7 @@ prevents reading and interpretation of eventual startup
files. See section FILES below.
.TP
\fB\-options_from_file\fR fileaddress
Read quoted input from fileaddress and execute it like dialog lines.
Empty lines and lines which begin by # are ignored. Normally one line
should hold one xorriso command and all its arguments. Nevertheless lines
may be concatenated by a trailing backslash.
.br
See also section "Command processing", paragraph "Quoted input".
Read quoted input from fileaddress and executes it like dialog lines.
.TP
\fB\-help\fR
.br
@ -3884,14 +3863,7 @@ restoring of hard links.
Default is 16m = 16 MiB, minimum 64k = 64 kiB, maximum 1024m = 1 GiB.
.TP
\fB\-print\fR text
Print a text line to the result channel which is by default stdout.
.TP
\fB\-print_info\fR text
Print a text line to the info channel which is by default stderr.
.TP
\fB\-print_mark\fR text
Print a text line to the mark channel which is by default directed to both,
result and info channel. An empty text will cause no output at all.
Print a text to result channel.
.TP
\fB\-prompt\fR text
Show text at beginning of output line and
@ -4522,7 +4494,7 @@ to read and execute lines from the following files:
$HOME/.xorrisorc
.br
The files are read in the sequence given above, but none of them is required
to exist. The line format is described with command -options_from_file.
to exist.
.br
If mkisofs emulation was enabled by program name "xorrisofs", "mkisofs",
"genisoimage", or "genisofs", then afterwards -read_mkisofsrc is performed,

View File

@ -61,7 +61,7 @@ struct XorrisO;
*/
#define Xorriso_header_version_majoR 1
#define Xorriso_header_version_minoR 0
#define Xorriso_header_version_micrO 8
#define Xorriso_header_version_micrO 4
/** Eventually something like ".pl01" to indicate a bug fix. Normally empty.
@ -802,11 +802,6 @@ int Xorriso_option_dummy(struct XorrisO *xorriso, char *mode, int flag);
/* Option -dvd_obs "default"|"32k"|"64k" */
int Xorriso_option_dvd_obs(struct XorrisO *xorriso, char *obs, int flag);
/* Option -early_stdio_test */
/* @since 1.0.6 */
int Xorriso_option_early_stdio_test(struct XorrisO *xorriso, char *mode,
int flag);
/* Option -eject */
/* @param flag bit0=do not report toc of eventually remaining drives
*/
@ -1048,12 +1043,7 @@ int Xorriso_option_pkt_output(struct XorrisO *xorriso, char *mode, int flag);
/* @since 0.6.2 */
int Xorriso_option_preparer_id(struct XorrisO *xorriso, char *name, int flag);
/* Options -print, -print_info , -print_mark */
/* @param flag bit0-1= output channel:
0= result channel
1= info channel @since 1.0.6
2= mark channel @since 1.0.6
*/
/* Option -print */
int Xorriso_option_print(struct XorrisO *xorriso, char *text, int flag);
/* Option -print_size

View File

@ -824,19 +824,6 @@ activate them only after image loading.
to write the result into files of nearly arbitrary type. Once
set, this command cannot be revoked.
-early_stdio_test "on"|"appendable_wo"|"off"
If enabled by "on" then regular files and block devices get tested
for effective access permissions. This implies to try opening
those files for writing, which otherwise will happen only later
and only if actual writing is desired.
The test result is used for classifying the pseudo drives as
overwriteable, read-only, write-only, or uselessly empty. This may
lead to earlier detection of severe problems, and may avoid some
less severe error events.
Mode "appendable_wo" is like "on" with the additional property that
non-empty write-only files are regarded as appendable rather than
blank.

File: xorriso.info, Node: Insert, Next: SetInsert, Prev: Loading, Up: Options
@ -1884,8 +1871,6 @@ will be written according to the setting of option -acl.
smaller limit for the length of file names. 0 disables this
feature, -1 chooses maximum length limit, numbers larger than 0
give the desired length limit.
"joliet_long_names" allows Joliet leaf names up to 103 characters
rather than 64.
"joliet_long_paths" allows Joliet paths longer than 240 characters.
"always_gmt" stores timestamps in GMT representation with timezone
0.
@ -2546,8 +2531,9 @@ failed unexpectedly.
"best_effort" goes on with reading after events with severity
below FAILURE if the threshold of option -abort_on allows this.
"failure" aborts image tree reading on first event of at least
SORRY. It issues an own FAILURE event. This is the default.
SORRY. It issues an own FAILURE event.
"fatal" acts like "failure" but issues the own event as FATAL.
This is the default.
With occasion "file_extraction" there are three behaviors:
"keep" maintains incompletely extracted files on disk. This is the
default.
@ -3362,12 +3348,8 @@ File: xorriso.info, Node: Scripting, Next: Frontend, Prev: Emulation, Up: Op
FILES below.
-options_from_file fileaddress
Read quoted input from fileaddress and execute it like dialog
lines. Empty lines and lines which begin by # are ignored.
Normally one line should hold one xorriso command and all its
arguments. Nevertheless lines may be concatenated by a trailing
backslash.
See also section "Command processing", paragraph "Quoted input".
Read quoted input from fileaddress and executes it like dialog
lines.
-help
Print helptext.
@ -3431,15 +3413,7 @@ File: xorriso.info, Node: Scripting, Next: Frontend, Prev: Emulation, Up: Op
GiB.
-print text
Print a text line to the result channel which is by default stdout.
-print_info text
Print a text line to the info channel which is by default stderr.
-print_mark text
Print a text line to the mark channel which is by default directed
to both, result and info channel. An empty text will cause no
output at all.
Print a text to result channel.
-prompt text
Show text at beginning of output line and wait for the user to hit
@ -4027,8 +4001,7 @@ startup to read and execute lines from the following files:
$HOME/.xorrisorc
The files are read in the sequence given above, but none of them is
required to exist. The line format is described with command
-options_from_file.
required to exist.
If mkisofs emulation was enabled by program name "xorrisofs", "mkisofs",
"genisoimage", or "genisofs", then afterwards -read_mkisofsrc is
performed, which reads .mkisofsrc files. See there.
@ -4106,9 +4079,9 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
[index]
* Menu:
* # starts a comment line: Scripting. (line 140)
* # starts a comment line: Scripting. (line 128)
* -abort_on controls abort on error: Exception. (line 27)
* -abstract_file sets abstract file name: SetWrite. (line 160)
* -abstract_file sets abstract file name: SetWrite. (line 158)
* -acl controls handling of ACLs: Loading. (line 142)
* -add inserts one or more paths: Insert. (line 42)
* -add_plainly inserts one or more paths: Insert. (line 61)
@ -4116,13 +4089,13 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -alter_date_r sets timestamps in ISO image: Manip. (line 166)
* -append_partition adds arbitrary file after image end: Bootable.
(line 202)
* -application_id sets application id: SetWrite. (line 119)
* -application_id sets application id: SetWrite. (line 117)
* -as emulates mkisofs or cdrecord: Emulation. (line 13)
* -assert_volid rejects undesired images: Loading. (line 84)
* -auto_charset learns character set from image: Loading. (line 99)
* -backslash_codes enables backslash conversion: Scripting. (line 49)
* -backslash_codes enables backslash conversion: Scripting. (line 45)
* -ban_stdio_write demands real drive: Loading. (line 246)
* -biblio_file sets biblio file name: SetWrite. (line 167)
* -biblio_file sets biblio file name: SetWrite. (line 165)
* -blank erases media: Writing. (line 45)
* -boot_image controls bootability: Bootable. (line 26)
* -calm_drive reduces drive activity: Loading. (line 235)
@ -4140,7 +4113,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -chown sets ownership in ISO image: Manip. (line 42)
* -chown_r sets ownership in ISO image: Manip. (line 47)
* -clone copies ISO directory tree: Insert. (line 171)
* -close controls media closing: SetWrite. (line 262)
* -close controls media closing: SetWrite. (line 260)
* -close_filter_list bans filter registration: Filter. (line 52)
* -commit writes pending ISO image: Writing. (line 13)
* -commit_eject writes and ejects: Writing. (line 40)
@ -4148,7 +4121,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -compare_l reports ISO/disk differences: Navigate. (line 157)
* -compare_r reports ISO/disk differences: Navigate. (line 152)
* -compliance controls standard compliance: SetWrite. (line 14)
* -copyright_file sets copyright file name: SetWrite. (line 154)
* -copyright_file sets copyright file name: SetWrite. (line 152)
* -cp_clone copies ISO directory tree: Insert. (line 182)
* -cp_rx copies file trees to disk: Restore. (line 104)
* -cpax copies files to disk: Restore. (line 100)
@ -4164,15 +4137,14 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
(line 35)
* -drive_class controls drive accessability: Loading. (line 54)
* -du show directory size in ISO image: Navigate. (line 88)
* -dummy controls write simulation: SetWrite. (line 251)
* -dummy controls write simulation: SetWrite. (line 249)
* -dus show directory size in ISO image: Navigate. (line 92)
* -dusx show directory size on disk: Navigate. (line 101)
* -dux show directory size on disk: Navigate. (line 96)
* -dvd_obs set write block size: SetWrite. (line 238)
* -early_stdio_test classifies stdio drives: Loading. (line 251)
* -dvd_obs set write block size: SetWrite. (line 236)
* -eject ejects drive tray: Writing. (line 36)
* -end writes pending session and ends program: Scripting. (line 134)
* -errfile_log logs problematic disk files: Scripting. (line 96)
* -end writes pending session and ends program: Scripting. (line 122)
* -errfile_log logs problematic disk files: Scripting. (line 84)
* -error_behavior controls error workarounds: Exception. (line 69)
* -external_filter registers data filter: Filter. (line 20)
* -external_filter unregisters data filter: Filter. (line 48)
@ -4186,23 +4158,23 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -follow softlinks and mount points: SetInsert. (line 76)
* -for_backup -acl,-xattr,-hardlinks,-md5: Loading. (line 184)
* -format formats media: Writing. (line 69)
* -fs sets size of fifo: SetWrite. (line 255)
* -fs sets size of fifo: SetWrite. (line 253)
* -getfacl shows ACL in ISO image: Navigate. (line 69)
* -getfacl_r shows ACL in ISO image: Navigate. (line 76)
* -getfattr shows xattr in ISO image: Navigate. (line 80)
* -getfattr_r shows xattr in ISO image: Navigate. (line 84)
* -gid sets global ownership: SetWrite. (line 195)
* -gid sets global ownership: SetWrite. (line 193)
* -grow_blindly overides next writeable address: AqDrive. (line 44)
* -hardlinks controls handling of hard links: Loading. (line 110)
* -help prints help text: Scripting. (line 20)
* -help prints help text: Scripting. (line 16)
* -hide excludes file names from directory trees: Manip. (line 170)
* -history brings text into readline history: Scripting. (line 26)
* -history brings text into readline history: Scripting. (line 22)
* -in_charset sets input character set: Loading. (line 92)
* -indev aquires a drive for input: AqDrive. (line 22)
* -iso_rr_pattern controls pattern expansion: Manip. (line 10)
* -jigdo clears JTE or or adds parameter to JTE: Jigdo. (line 33)
* -joliet enables production of Joliet tree: SetWrite. (line 10)
* -list_delimiter replaces '--': Scripting. (line 42)
* -list_delimiter replaces '--': Scripting. (line 38)
* -list_formats lists available formats: Writing. (line 107)
* -list_profiles lists supported media: Writing. (line 119)
* -load addresses a particular session as input: Loading. (line 11)
@ -4233,25 +4205,23 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -not_paths sets absolute exclusion paths: SetInsert. (line 55)
* -options_from_file reads commands from file: Scripting. (line 12)
* -osirrox enables ISO-to-disk copying: Restore. (line 18)
* -out_charset sets output character set: SetWrite. (line 185)
* -out_charset sets output character set: SetWrite. (line 183)
* -outdev aquires a drive for output: AqDrive. (line 29)
* -overwrite enables overwriting in ISO: SetInsert. (line 127)
* -pacifier controls pacifier text form: Emulation. (line 158)
* -padding sets amount or mode of image padding: SetWrite. (line 268)
* -padding sets amount or mode of image padding: SetWrite. (line 266)
* -page set terminal geometry: DialogCtl. (line 19)
* -paste_in copies file into disk file: Restore. (line 117)
* -path_list inserts paths from disk file: Insert. (line 75)
* -pathspecs sets meaning of = with -add: SetInsert. (line 118)
* -pkt_output consolidates text output: Frontend. (line 7)
* -preparer_id sets preparer id: SetWrite. (line 173)
* -print prints result text line: Scripting. (line 81)
* -print_info prints message text line: Scripting. (line 84)
* -print_mark prints synchronizing text line: Scripting. (line 87)
* -preparer_id sets preparer id: SetWrite. (line 171)
* -print prints text line: Scripting. (line 77)
* -print_size predicts image size: Inquiry. (line 69)
* -prog sets program name: Frontend. (line 30)
* -prog_help prints help text: Frontend. (line 33)
* -prompt prompts for enter key: Scripting. (line 92)
* -publisher sets publisher id: SetWrite. (line 113)
* -prompt prompts for enter key: Scripting. (line 80)
* -publisher sets publisher id: SetWrite. (line 111)
* -pvd_info shows image id strings: Inquiry. (line 82)
* -pwd tells working directory in ISO: Navigate. (line 20)
* -pwdx tells working directory on disk: Navigate. (line 23)
@ -4266,11 +4236,11 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -rm_r deletes trees from ISO image: Manip. (line 28)
* -rmdir deletes ISO directory: Manip. (line 32)
* -rollback discards pending changes: Writing. (line 9)
* -rollback_end ends program without writing: Scripting. (line 137)
* -rollback_end ends program without writing: Scripting. (line 125)
* -rom_toc_scan searches for sessions: Loading. (line 210)
* -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 168)
* -scsi_log reports SCSI commands: Scripting. (line 125)
* -session_log logs written sessions: Scripting. (line 116)
* -scsi_log reports SCSI commands: Scripting. (line 113)
* -session_log logs written sessions: Scripting. (line 104)
* -session_string composes session info line: Inquiry. (line 56)
* -set_filter applies filter to file: Filter. (line 59)
* -set_filter_r applies filter to file tree: Filter. (line 84)
@ -4282,27 +4252,27 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -setfattr_r sets xattr in ISO image: Manip. (line 123)
* -show_stream shows data source and filters: Navigate. (line 162)
* -show_stream_r shows data source and filters: Navigate. (line 177)
* -speed set write speed: SetWrite. (line 211)
* -speed set write speed: SetWrite. (line 209)
* -split_size enables large file splitting: SetInsert. (line 140)
* -status shows current settings: Scripting. (line 29)
* -status_history_max curbs -status history: Scripting. (line 38)
* -stdio_sync controls stdio buffer: SetWrite. (line 245)
* -stream_recording controls defect management: SetWrite. (line 226)
* -system_id sets system id: SetWrite. (line 128)
* -status shows current settings: Scripting. (line 25)
* -status_history_max curbs -status history: Scripting. (line 34)
* -stdio_sync controls stdio buffer: SetWrite. (line 243)
* -stream_recording controls defect management: SetWrite. (line 224)
* -system_id sets system id: SetWrite. (line 126)
* -tell_media_space reports free space: Inquiry. (line 78)
* -temp_mem_limit curbs memory consumption: Scripting. (line 74)
* -temp_mem_limit curbs memory consumption: Scripting. (line 70)
* -toc shows list of sessions: Inquiry. (line 18)
* -uid sets global ownership: SetWrite. (line 191)
* -uid sets global ownership: SetWrite. (line 189)
* -update inserts path if different: Insert. (line 99)
* -update_l inserts paths if different: Insert. (line 121)
* -update_r inserts paths if different: Insert. (line 110)
* -use_readline enables readline for dialog: DialogCtl. (line 28)
* -version prints help text: Scripting. (line 23)
* -volid sets volume id: SetWrite. (line 89)
* -volset_id sets volume set id: SetWrite. (line 108)
* -volume_date sets volume timestamp: SetWrite. (line 135)
* -version prints help text: Scripting. (line 19)
* -volid sets volume id: SetWrite. (line 87)
* -volset_id sets volume set id: SetWrite. (line 106)
* -volume_date sets volume timestamp: SetWrite. (line 133)
* -xattr controls handling of xattr (EA): Loading. (line 150)
* -zisofs controls zisofs production: SetWrite. (line 199)
* -zisofs controls zisofs production: SetWrite. (line 197)

File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
@ -4333,18 +4303,18 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Character Set, _definition: Charset. (line 6)
* Character Set, for input, -in_charset: Loading. (line 92)
* Character Set, for input/output, -charset: Charset. (line 43)
* Character Set, for output, -out_charset: SetWrite. (line 185)
* Character Set, for output, -out_charset: SetWrite. (line 183)
* Character set, learn from image, -auto_charset: Loading. (line 99)
* Character Set, of terminal, -local_charset: Charset. (line 47)
* Closed media, _definition: Media. (line 43)
* Comment, #: Scripting. (line 140)
* Comment, #: Scripting. (line 128)
* Create, new ISO image, _definiton: Methods. (line 6)
* Cylinder alignment, _definiton: Bootable. (line 169)
* Cylinder size, _definiton: Bootable. (line 158)
* Delete, from ISO image, -rm: Manip. (line 21)
* Delete, from ISO image, -rm_r: Manip. (line 28)
* Delete, ISO directory, -rmdir: Manip. (line 32)
* Dialog, bring text into history, -history: Scripting. (line 26)
* Dialog, bring text into history, -history: Scripting. (line 22)
* Dialog, confirmation question, -reassure: DialogCtl. (line 32)
* Dialog, enable dialog mode, -dialog: DialogCtl. (line 7)
* Dialog, line editing, -use_readline: DialogCtl. (line 28)
@ -4356,7 +4326,6 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* disk_path, _definition: Insert. (line 6)
* Drive, _definiton: Drives. (line 6)
* Drive, accessability, -drive_class: Loading. (line 54)
* Drive, classify stdio, -early_stdio_test: Loading. (line 251)
* Drive, demand real MMC, -ban_stdio_write: Loading. (line 246)
* Drive, eject tray, -eject: Writing. (line 36)
* Drive, for input and output, -dev: AqDrive. (line 10)
@ -4365,7 +4334,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Drive, get drive list, -devices: Inquiry. (line 7)
* Drive, list supported media, -list_profiles: Writing. (line 119)
* Drive, reduce activity, -calm_drive: Loading. (line 235)
* Drive, report SCSI commands, -scsi_log: Scripting. (line 125)
* Drive, report SCSI commands, -scsi_log: Scripting. (line 113)
* Drive, write and eject, -commit_eject: Writing. (line 40)
* El Torito, _definiton: Extras. (line 19)
* Emulation, -as: Emulation. (line 13)
@ -4382,8 +4351,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Filter, show chain, -show_stream: Navigate. (line 162)
* Filter, show chains of tree, -show_stream_r: Navigate. (line 177)
* Filter, unregister, -unregister_filter: Filter. (line 48)
* Filter, zisofs parameters, -zisofs: SetWrite. (line 199)
* Group, global in ISO image, -gid: SetWrite. (line 195)
* Filter, zisofs parameters, -zisofs: SetWrite. (line 197)
* Group, global in ISO image, -gid: SetWrite. (line 193)
* Group, in ISO image, -chgrp: Manip. (line 50)
* Group, in ISO image, -chgrp_r: Manip. (line 55)
* Growing, _definition: Methods. (line 19)
@ -4392,16 +4361,16 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Image, _definition: Model. (line 9)
* Image, demand volume id, -assert_volid: Loading. (line 84)
* Image, discard pending changes, -rollback: Writing. (line 9)
* Image, set abstract file name, -abstract_file: SetWrite. (line 160)
* Image, set application id, -application_id: SetWrite. (line 119)
* Image, set biblio file name, -biblio_file: SetWrite. (line 167)
* Image, set copyright file name, -copyright_file: SetWrite. (line 154)
* Image, set preparer id, -preparer_id: SetWrite. (line 173)
* Image, set publisher id, -publisher: SetWrite. (line 113)
* Image, set system id, -system_id: SetWrite. (line 128)
* Image, set volume id, -volid: SetWrite. (line 89)
* Image, set volume set id, -volset_id: SetWrite. (line 108)
* Image, set volume timestamp, -volume_date: SetWrite. (line 135)
* Image, set abstract file name, -abstract_file: SetWrite. (line 158)
* Image, set application id, -application_id: SetWrite. (line 117)
* Image, set biblio file name, -biblio_file: SetWrite. (line 165)
* Image, set copyright file name, -copyright_file: SetWrite. (line 152)
* Image, set preparer id, -preparer_id: SetWrite. (line 171)
* Image, set publisher id, -publisher: SetWrite. (line 111)
* Image, set system id, -system_id: SetWrite. (line 126)
* Image, set volume id, -volid: SetWrite. (line 87)
* Image, set volume set id, -volset_id: SetWrite. (line 106)
* Image, set volume timestamp, -volume_date: SetWrite. (line 133)
* Image, show id strings, -pvd_info: Inquiry. (line 82)
* Insert, enable overwriting, -overwrite: SetInsert. (line 127)
* Insert, file exclusion absolute, -not_paths: SetInsert. (line 55)
@ -4458,7 +4427,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Navigate, tell ISO working directory, -pwd: Navigate. (line 20)
* Next writeable address, -grow_blindly: AqDrive. (line 44)
* Overwriteable media, _definition: Media. (line 14)
* Ownership, global in ISO image, -uid: SetWrite. (line 191)
* Ownership, global in ISO image, -uid: SetWrite. (line 189)
* Ownership, in ISO image, -chown: Manip. (line 42)
* Ownership, in ISO image, -chown_r: Manip. (line 47)
* Partition offset, _definiton: Bootable. (line 148)
@ -4474,28 +4443,25 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Process, control exit value, -return_with: Exception. (line 39)
* Process, control verbosity, -report_about: Exception. (line 55)
* Process, disable startup files, -no_rc: Scripting. (line 7)
* Process, end program and write, -end: Scripting. (line 134)
* Process, end program, no writing, -rollback_end: Scripting. (line 137)
* Process, end program and write, -end: Scripting. (line 122)
* Process, end program, no writing, -rollback_end: Scripting. (line 125)
* Process, error workarounds, -error_behavior: Exception. (line 69)
* Process, log output channels to file, -logfile: Frontend. (line 20)
* Process, read command file, -options_from_file: Scripting. (line 12)
* Process, set synchronizing message, -mark: Frontend. (line 25)
* Program, backslash conversion, -backslash_codes: Scripting. (line 49)
* Program, curb memory, -temp_mem_limit: Scripting. (line 74)
* Program, end and write, -end: Scripting. (line 134)
* Program, end without writing, -rollback_end: Scripting. (line 137)
* Program, print help text, -help: Scripting. (line 20)
* Program, backslash conversion, -backslash_codes: Scripting. (line 45)
* Program, curb memory, -temp_mem_limit: Scripting. (line 70)
* Program, end and write, -end: Scripting. (line 122)
* Program, end without writing, -rollback_end: Scripting. (line 125)
* Program, print help text, -help: Scripting. (line 16)
* Program, print help text, -prog_help: Frontend. (line 33)
* Program, print message text line, -print_info: Scripting. (line 84)
* Program, print result text line, -print: Scripting. (line 81)
* Program, print synchronizing text line, -print_mark: Scripting.
(line 87)
* Program, print version, -version: Scripting. (line 23)
* Program, prompt for enter key, -prompt: Scripting. (line 92)
* Program, replace --, -list_delimiter: Scripting. (line 42)
* Program, print text line, -print: Scripting. (line 77)
* Program, print version, -version: Scripting. (line 19)
* Program, prompt for enter key, -prompt: Scripting. (line 80)
* Program, replace --, -list_delimiter: Scripting. (line 38)
* Program, set name, -prog: Frontend. (line 30)
* Program, show current settings, -status: Scripting. (line 29)
* Program, status history, -status_history_max: Scripting. (line 38)
* Program, show current settings, -status: Scripting. (line 25)
* Program, status history, -status_history_max: Scripting. (line 34)
* Quoted input, _definiton: Processing. (line 43)
* Recovery, retrieve blocks, -check_media: Verify. (line 21)
* Rename, in ISO image, -mv: Manip. (line 35)
@ -4513,7 +4479,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Session, altered start address, -displacement: Loading. (line 35)
* Session, info string, -session_string: Inquiry. (line 56)
* Session, issue mount command, -mount: Restore. (line 122)
* Session, log when written, -session_log: Scripting. (line 116)
* Session, log when written, -session_log: Scripting. (line 104)
* Session, mount command line, -mount_cmd: Inquiry. (line 31)
* Session, mount parameters, -mount_opts: Inquiry. (line 47)
* Session, select as input, -load: Loading. (line 11)
@ -4533,22 +4499,22 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Verify, file checksum, -check_md5: Verify. (line 146)
* Verify, file tree checksums, -check_md5_r: Verify. (line 162)
* Verify, preset -check_media, -check_media_defaults: Verify. (line 40)
* Write, block size, -dvd_obs: SetWrite. (line 238)
* Write, block size, -dvd_obs: SetWrite. (line 236)
* Write, bootability, -boot_image: Bootable. (line 26)
* Write, buffer syncing, -stdio_sync: SetWrite. (line 245)
* Write, close media, -close: SetWrite. (line 262)
* Write, buffer syncing, -stdio_sync: SetWrite. (line 243)
* Write, close media, -close: SetWrite. (line 260)
* Write, compliance to specs, -compliance: SetWrite. (line 14)
* Write, defect management, -stream_recording: SetWrite. (line 226)
* Write, defect management, -stream_recording: SetWrite. (line 224)
* Write, enable Joliet, -joliet: SetWrite. (line 10)
* Write, fifo size, -fs: SetWrite. (line 255)
* Write, fifo size, -fs: SetWrite. (line 253)
* Write, free space, -tell_media_space: Inquiry. (line 78)
* Write, log problematic disk files, -errfile_log: Scripting. (line 96)
* Write, log written sessions, -session_log: Scripting. (line 116)
* Write, padding image, -padding: SetWrite. (line 268)
* Write, log problematic disk files, -errfile_log: Scripting. (line 84)
* Write, log written sessions, -session_log: Scripting. (line 104)
* Write, padding image, -padding: SetWrite. (line 266)
* Write, pending ISO image, -commit: Writing. (line 13)
* Write, predict image size, -print_size: Inquiry. (line 69)
* Write, set speed, -speed: SetWrite. (line 211)
* Write, simulation, -dummy: SetWrite. (line 251)
* Write, set speed, -speed: SetWrite. (line 209)
* Write, simulation, -dummy: SetWrite. (line 249)
* xattr, _definiton: Extras. (line 52)
* xattr, control handling, -xattr: Loading. (line 150)
* xattr, set in ISO image, -setfattr: Manip. (line 110)
@ -4572,46 +4538,46 @@ Node: Dialog21570
Node: Options23227
Node: AqDrive24835
Node: Loading27741
Node: Insert42060
Node: SetInsert51679
Node: Manip60246
Node: CmdFind68927
Node: Filter80227
Node: Writing84576
Node: SetWrite90865
Node: Bootable104898
Node: Jigdo118216
Node: Charset122474
Node: Exception125225
Node: DialogCtl129736
Node: Inquiry132323
Node: Navigate136700
Node: Verify144640
Node: Restore153229
Node: Emulation159885
Node: Scripting169721
Node: Frontend175861
Node: Examples177156
Node: ExDevices178325
Node: ExCreate178959
Node: ExDialog180233
Node: ExGrowing181495
Node: ExModifying182297
Node: ExBootable182798
Node: ExCharset183345
Node: ExPseudo184173
Node: ExCdrecord185067
Node: ExMkisofs185382
Node: ExGrowisofs186718
Node: ExException187842
Node: ExTime188296
Node: ExIncBackup188755
Node: ExRestore192676
Node: ExRecovery193645
Node: Files194211
Node: Seealso195501
Node: Legal196081
Node: CommandIdx197003
Node: ConceptIdx211529
Node: Insert41367
Node: SetInsert50986
Node: Manip59553
Node: CmdFind68234
Node: Filter79534
Node: Writing83883
Node: SetWrite90172
Node: Bootable104113
Node: Jigdo117431
Node: Charset121689
Node: Exception124440
Node: DialogCtl128955
Node: Inquiry131542
Node: Navigate135919
Node: Verify143859
Node: Restore152448
Node: Emulation159104
Node: Scripting168940
Node: Frontend174502
Node: Examples175797
Node: ExDevices176966
Node: ExCreate177600
Node: ExDialog178874
Node: ExGrowing180136
Node: ExModifying180938
Node: ExBootable181439
Node: ExCharset181986
Node: ExPseudo182814
Node: ExCdrecord183708
Node: ExMkisofs184023
Node: ExGrowisofs185359
Node: ExException186483
Node: ExTime186937
Node: ExIncBackup187396
Node: ExRestore191317
Node: ExRecovery192286
Node: Files192852
Node: Seealso194080
Node: Legal194660
Node: CommandIdx195582
Node: ConceptIdx209889

End Tag Table

View File

@ -44,7 +44,7 @@
@c man .\" First parameter, NAME, should be all caps
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
@c man .\" other parameters are allowed: see man(7), man(1)
@c man .TH XORRISO 1 "Apr 03, 2011"
@c man .TH XORRISO 1 "Mar 09, 2011"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -1096,21 +1096,6 @@ Mode "on" causes -calm_drive to be performed automatically after each -dev,
Allow for writing only the usage of MMC optical drives. Disallow
to write the result into files of nearly arbitrary type.
Once set, this command cannot be revoked.
@c man .TP
@item -early_stdio_test "on"|"appendable_wo"|"off"
@kindex -early_stdio_test classifies stdio drives
@cindex Drive, classify stdio, -early_stdio_test
If enabled by "on" then regular files and block devices get tested for
effective access permissions. This implies to try opening those files for
writing, which otherwise will happen only later and only if actual
writing is desired.
@*
The test result is used for classifying the pseudo drives as overwriteable,
read-only, write-only, or uselessly empty. This may lead to earlier detection
of severe problems, and may avoid some less severe error events.
@*
Mode "appendable_wo" is like "on" with the additional property that
non-empty write-only files are regarded as appendable rather than blank.
@end table
@c man .TP
@c man .B Inserting files into ISO image:
@ -2512,9 +2497,6 @@ fail deliberately.
for the length of file names. 0 disables this feature, -1 chooses maximum
length limit, numbers larger than 0 give the desired length limit.
@*
"joliet_long_names" allows Joliet leaf names up to 103 characters rather
than 64.
@*
"joliet_long_paths" allows Joliet paths longer than 240 characters.
@*
"always_gmt" stores timestamps in GMT representation with timezone 0.
@ -3397,9 +3379,9 @@ if the threshold of option -abort_on allows this.
@*
"failure" aborts image tree reading on first event of at least SORRY.
It issues an own FAILURE event.
This is the default.
@*
"fatal" acts like "failure" but issues the own event as FATAL.
This is the default.
@*
With occasion "file_extraction" there are three behaviors:
@*
@ -4473,12 +4455,7 @@ files. See section FILES below.
@item -options_from_file fileaddress
@kindex -options_from_file reads commands from file
@cindex Process, read command file, -options_from_file
Read quoted input from fileaddress and execute it like dialog lines.
Empty lines and lines which begin by # are ignored. Normally one line
should hold one xorriso command and all its arguments. Nevertheless lines
may be concatenated by a trailing backslash.
@*
See also section "Command processing", paragraph "Quoted input".
Read quoted input from fileaddress and executes it like dialog lines.
@c man .TP
@item -help
@kindex -help prints help text
@ -4577,20 +4554,9 @@ restoring of hard links.
Default is 16m = 16 MiB, minimum 64k = 64 kiB, maximum 1024m = 1 GiB.
@c man .TP
@item -print text
@kindex -print prints result text line
@cindex Program, print result text line, -print
Print a text line to the result channel which is by default stdout.
@c man .TP
@item -print_info text
@kindex -print_info prints message text line
@cindex Program, print message text line, -print_info
Print a text line to the info channel which is by default stderr.
@c man .TP
@item -print_mark text
@kindex -print_mark prints synchronizing text line
@cindex Program, print synchronizing text line, -print_mark
Print a text line to the mark channel which is by default directed to both,
result and info channel. An empty text will cause no output at all.
@kindex -print prints text line
@cindex Program, print text line, -print
Print a text to result channel.
@c man .TP
@item -prompt text
@kindex -prompt prompts for enter key
@ -5410,7 +5376,7 @@ to read and execute lines from the following files:
@*
@sp 1
The files are read in the sequence given above, but none of them is required
to exist. The line format is described with command -options_from_file.
to exist.
@*
If mkisofs emulation was enabled by program name "xorrisofs", "mkisofs",
"genisoimage", or "genisofs", then afterwards -read_mkisofsrc is performed,

View File

@ -2,7 +2,7 @@
<HEAD>
<META NAME="description" CONTENT="GNU xorriso, creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions">
<META NAME="keywords" CONTENT="xorriso, libburn, libburnia, burn, CD, DVD, BD, ISO, ISO 9660, RockRidge, Rock Ridge, GNU/Linux, Linux, FreeBSD, Solaris, recording, burning, CD-R, CD-RW, DVD-R, DVD-RW, DVD+RW, DVD+R, DVD+R DL, BD-RE, BD-R, scdbackup">
<META NAME="keywords" CONTENT="xorriso, libburn, libburnia, burn, CD, DVD, ISO, ISO 9660, RockRidge, Rock Ridge, GNU/Linux, Linux, FreeBSD, Solaris, recording, burning, CD-R, CD-RW, DVD-R, DVD-RW, DVD+RW, DVD+R, DVD+R DL, BD-RE, BD-R, scdbackup">
<META NAME="robots" CONTENT="follow">
<TITLE>GNU xorriso - GNU Project - Free Software Foundation</TITLE>
<LINK rev="made" href="mailto:webmasters@gnu.org">
@ -446,21 +446,21 @@ This can bring effective read performance near to the raw media reading speed.
<P>
<DL>
<DT><H3>Download as source code (see README):</H3></DT>
<DD><A HREF="xorriso-1.0.8.tar.gz">xorriso-1.0.8.tar.gz</A>
(1895 KB).
<DD><A HREF="xorriso-1.0.4.tar.gz">xorriso-1.0.4.tar.gz</A>
(1885 KB).
</DD>
<DD>(Released 15 Apr 2011)</DD>
<DD><A HREF="xorriso-1.0.8.tar.gz.sig">xorriso-1.0.8.tar.gz.sig</A></DD>
<DD>(Released 10 Mar 2011)</DD>
<DD><A HREF="xorriso-1.0.4.tar.gz.sig">xorriso-1.0.4.tar.gz.sig</A></DD>
<DD>
(detached GPG signature for verification by
<KBD>gpg --verify xorriso-1.0.8.tar.gz.sig xorriso-1.0.8.tar.gz</KBD>
<KBD>gpg --verify xorriso-1.0.4.tar.gz.sig xorriso-1.0.4.tar.gz</KBD>
<BR>
after eventual <KBD>gpg --keyserver keys.gnupg.net --recv-keys ABC0A854</KBD>).
</DD>
<DD>
Also on <A HREF="http://www.gnu.org/prep/ftp.html">
mirrors of ftp://ftp.gnu.org/gnu/ </A>
as xorriso/xorriso-1.0.8.tar.gz
as xorriso/xorriso-1.0.4.tar.gz
</DD>
</DL>
</DD>
@ -495,9 +495,22 @@ describes the mkisofs emulation</DD>
<HR>
<P>
Bug fixes towards xorriso-1.0.6:
Bug fixes towards xorriso-1.0.2:
<UL>
<LI>mkisofs emulation could ignore options (regression in 0.1.6)</LI>
<LI>xorrisofs did not work under growisofs -M (version 1.0.0 was still ok)
</LI>
<LI>-as mkisofs -C attempted to read volume header of blank media
</LI>
<LI>-as mkisofs -old-root did not work with -graft-points
</LI>
<LI>-as mkisofs -partition_hd_cyl had no effect
</LI>
<LI>-as mkisofs did not properly unescape target part of pathspecs
</LI>
<LI>isohybrid image size was not aligned to cylinder boundary
</LI>
<LI>Compilation without zlib failed
</LI>
<!--
<LI>- none -</LI>
-->
@ -515,9 +528,20 @@ Bug fixes in .pl01 towards xorriso-:
-->
<P>
Enhancements towards previous stable version xorriso-1.0.6:
Enhancements towards previous stable version xorriso-1.0.2:
<UL>
<LI>- none -</LI>
<LI>New -padding modes "included" and "appended"
</LI>
<LI>
New bootspec partition_cyl_align=, new -as mkisofs option -partition_cyl_align
</LI>
<LI>
New -as mkisofs and -as cdrecord option --no_rc
</LI>
<LI>
Own man page and info document for xorrisofs
</LI>
<!--
<LI>- none -</LI>
-->
@ -540,23 +564,23 @@ libburnia project and the legal intentions of
<A HREF="http://www.fsf.org/"> FSF </A> match completely.
</DT>
<DD>&nbsp;</DD>
<DT>libburn-1.0.6</DT>
<DT>libburn-1.0.4</DT>
<DD>reads and writes data from and to CD, DVD, BD.</DD>
<DD>(founded by Derek Foreman and Ben Jansens,
developed and maintained since August 2006 by
Thomas Schmitt from team of libburnia-project.org)</DD>
<DT>libisofs-1.0.6</DT>
<DT>libisofs-1.0.4</DT>
<DD>operates on ISO 9660 filesystem images.</DD>
<DD>(By Vreixo Formoso, Mario Danic and Thomas Schmitt
from team of libburnia-project.org)</DD>
<DT>libisoburn-1.0.8</DT>
<DT>libisoburn-1.0.4</DT>
<DD>coordinates libburn and libisofs, emulates multi-session where needed,
and hosts the original source code of program xorriso.</DD>
<DD>It provides the complete functionality of xorriso via
a C language API.</DD>
<DD>(By Vreixo Formoso and Thomas Schmitt
from team of libburnia-project.org)</DD>
<DT>libjte-1.0.0</DT>
<DT>libjte-0.1.1</DT>
<DD>produces jigdo and template file together with the emerging ISO image.</DD>
<DD>(By Free Software Foundation, Steve McIntyre, George Danchev,
Thomas Schmitt)</DD>
@ -570,8 +594,8 @@ cdrecord and mkisofs.</DT>
<P>
<DL>
<DT><H3>Development snapshot, version 1.0.9 :</H3></DT>
<DD>Bug fixes towards xorriso-1.0.8:
<DT><H3>Development snapshot, version 1.0.5 :</H3></DT>
<DD>Bug fixes towards xorriso-1.0.4:
<UL>
<LI>- none yet -</LI>
<!--
@ -579,7 +603,7 @@ cdrecord and mkisofs.</DT>
-->
</UL>
</DD>
<DD>Enhancements towards stable version 1.0.8:
<DD>Enhancements towards stable version 1.0.4:
<UL>
<LI>- none yet -</LI>
<!--
@ -591,12 +615,12 @@ cdrecord and mkisofs.</DT>
<DD>&nbsp;</DD>
<DD><A HREF="README_xorriso_devel">README 1.0.9</A>
<DD><A HREF="xorriso_help_devel">xorriso-1.0.9 -help</A></DD>
<DD><A HREF="xorrisofs_help_devel">xorriso-1.0.9 -as mkisofs -help</A></DD>
<DD><A HREF="xorrecord_help_devel">xorriso-1.0.9 -as cdrecord -help</A></DD>
<DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 1.0.9)</A></DD>
<DD><A HREF="man_1_xorrisofs_devel.html">man xorrisofs (as of 1.0.9)</A></DD>
<DD><A HREF="README_xorriso_devel">README 1.0.5</A>
<DD><A HREF="xorriso_help_devel">xorriso-1.0.5 -help</A></DD>
<DD><A HREF="xorrisofs_help_devel">xorriso-1.0.5 -as mkisofs -help</A></DD>
<DD><A HREF="xorrecord_help_devel">xorriso-1.0.5 -as cdrecord -help</A></DD>
<DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 1.0.5)</A></DD>
<DD><A HREF="man_1_xorrisofs_devel.html">man xorrisofs (as of 1.0.5)</A></DD>
<DD>&nbsp;</DD>
<DT>If you want to distribute development versions of xorriso, then use
this tarball which produces static linking between xorriso and the
@ -606,8 +630,8 @@ libburnia libraries.
installation see README)
</DD>
<DD>
<A HREF="xorriso-1.0.9.tar.gz">xorriso-1.0.9.tar.gz</A>
(1895 KB).
<A HREF="xorriso-1.0.5.tar.gz">xorriso-1.0.5.tar.gz</A>
(1885 KB).
</DD>
<DT>A dynamically linked development version of xorriso can be obtained
from repositories of
@ -636,16 +660,16 @@ versions for dynamic linking. Only release versions are safe for that.
But after the run of <KBD>./bootstrap</KBD>, only
vanilla tools like make and gcc are needed.
</DT>
<DT>GNU xorriso contains a copy of libjte-1.0.0 from package jigit
<DT>GNU xorriso contains a copy of libjte-0.1.1
which produces jigdo and template file together with the emerging ISO image.
(By Free Software Foundation, Steve McIntyre, George Danchev,
Thomas Schmitt)
</DT>
<DD>Important: If desired, libjte has to be already installed when libisofs
and libisoburn get built.</DD>
<DD>Download: <KBD><B>wget http://www.einval.com/~steve/software/JTE/download/jigit_1.17.orig.tar.gz</B>
<DD>Download: <KBD><B>svn co http://svn.openfmi.net/dev/people/danchev/jte libjte</B>
</KBD></DD>
<DD>Install: <KBD><B>tar xzf jigit_1.17.orig.tar.gz ; cd jigit-1.17 ; make ; make install</B>
<DD>Install: <KBD><B>cd libjte ; ./bootstrap ; ./configure --prefix /usr ; make ; make install</B>
</KBD></DD>
<DD>&nbsp;</DD>

View File

@ -111,7 +111,7 @@
*/
#define Xorriso_req_majoR 1
#define Xorriso_req_minoR 0
#define Xorriso_req_micrO 8
#define Xorriso_req_micrO 4
static void yell_xorriso()
@ -229,7 +229,7 @@ int main(int argc, char **argv)
*/
ret= Xorriso_prescan_args(xorriso,argc,argv,0);
if(ret == 0)
goto end_successfully;
goto end_sucessfully;
if(ret < 0)
exit(5);
@ -246,7 +246,7 @@ int main(int argc, char **argv)
/* Interpret startup files */
ret= Xorriso_read_rc(xorriso, 0);
if(ret == 3)
goto end_successfully;
goto end_sucessfully;
if(ret <= 0)
{ret= 5; goto emergency_exit;}
@ -258,7 +258,7 @@ int main(int argc, char **argv)
i= 1;
ret= Xorriso_interpreter(xorriso, argc, argv, &i, 2);
if(ret == 3)
goto end_successfully;
goto end_sucessfully;
if(ret <= 0)
{ret= 5; goto emergency_exit;}
@ -267,7 +267,7 @@ int main(int argc, char **argv)
if(ret <= 0)
{ret= 6; goto emergency_exit;}
end_successfully:; /* normal shutdown, including eventual -commit */
end_sucessfully:; /* normal shutdown, including eventual -commit */
Xorriso_process_msg_queues(xorriso, 0);
if(Xorriso_change_is_pending(xorriso, 1))
Xorriso_option_end(xorriso, 2);

View File

@ -315,7 +315,6 @@ EXTRA_DIST = \
doc/susp_aaip_2_0.txt \
doc/susp_aaip_isofs_names.txt \
doc/zisofs_format.txt \
doc/startup_file.txt \
libisofs/aaip-os-dummy.c \
libisofs/aaip-os-linux.c \
libisofs/aaip-os-freebsd.c \

View File

@ -251,18 +251,6 @@ struct XorrisO { /* the global context of xorriso */
int drives_exclusive; /* burn_preset_device_open() param exclusive */
int early_stdio_test; /* For burn_allow_drive_role_4():
bit1= Test whether a stdio drive can be opened for
read-write resp. read-only resp. write only.
bit2= Classify files which cannot be opened at all
as role 0 : useless dummy.
bit3= Classify non-empty role 5 drives as
BURN_DISC_APPENDABLE with NWA after the
end of the file. It is nevertheless
possible to change this address by call
burn_write_opts_set_start_byte().
*/
int do_calm_drive; /* bit0= calm down drive after aquiring it */
char indev[SfileadrL];

View File

@ -1 +1 @@
#define Xorriso_timestamP "2011.04.14.073001"
#define Xorriso_timestamP "2011.03.10.110001"

View File

@ -19,7 +19,7 @@
*/
#define xorriso_libisoburn_req_major 1
#define xorriso_libisoburn_req_minor 0
#define xorriso_libisoburn_req_micro 8
#define xorriso_libisoburn_req_micro 4
struct SpotlisT; /* List of intervals with different read qualities */

View File

@ -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 XORRISOFS 1 "Apr 07, 2011"
.TH XORRISOFS 1 "Mar 09, 2011"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -92,15 +92,14 @@ confuse with the lowlevel ISO 9660 names visible if Rock Ridge gets ignored.)
A program argument is handled as a \fBpathspec\fR, if it is not
recognized as original mkisofs option or additional xorrisofs option.
A pathspec depicts an input file object by a disk_path.
If option -graft-points is not present, then the behavior depends on the
file type of disk_path. Directories get merged with the /-directory of the
ISO image. Files of other types get copied into the /-directory.
If option -graft-points is not present, then this file object gets
copied into the /-directory of the ISO image.
.br
If -graft-points is present then each pathspec gets split at the first
occurence of the =-character.
The part before the = is taken as \fBtarget\fR, i.e. the iso_rr_path for
The part before the = is taken as \fBtarget\fR, the iso_rr_path for
the file object in the ISO image. The part after the first = is taken
as \fBsource\fR, i.e. the disk_path of the input object.
as \fBsource\fR, the disk_path of the input object.
.br
It is possible to make =-characters part of the iso_rr_path by preceeding
them with a \\-character. The same must be done for \\-characters which
@ -111,11 +110,6 @@ If the source part of the pathspec leads to a directory, then all files
underneath this directory get inserted into the image, too.
It is possible to exclude particular files from being inserted
by help of option -m.
.br
In case that target already exists, the following rules apply:
Directories and other files may overwrite existing non-directories.
Directories get merged with existing directories.
Non-directories may not overwrite existing directories.
.SS
\fBRelation to program xorriso:\fR
.br
@ -545,12 +539,9 @@ with the ISO 9660 Rock Ridge tree.
Alias of -J.
.TP
\fB\-joliet-long\fR
Allow 103 characters in Joliet file names rather than 64 as is prescribed
by the specification. Allow Joliet paths longer than the prescribed limit of
240 characters.
.br
Oversized names get truncated. Without this option, oversized paths get
excluded from the Joliet tree.
Currently this option is insufficiently implemented.
It should allow 103 characters in Joliet file names but
yet only 64 are possible.
.TP
.B Settings for file hiding:
.TP

View File

@ -95,14 +95,13 @@ Ridge gets ignored.)
A program argument is handled as a *pathspec*, if it is not recognized
as original mkisofs option or additional xorrisofs option. A pathspec
depicts an input file object by a disk_path. If option -graft-points
is not present, then the behavior depends on the file type of
disk_path. Directories get merged with the /-directory of the ISO
image. Files of other types get copied into the /-directory.
is not present, then this file object gets copied into the /-directory
of the ISO image.
If -graft-points is present then each pathspec gets split at the first
occurence of the =-character. The part before the = is taken as
*target*, i.e. the iso_rr_path for the file object in the ISO image.
The part after the first = is taken as *source*, i.e. the disk_path of
the input object.
*target*, the iso_rr_path for the file object in the ISO image. The
part after the first = is taken as *source*, the disk_path of the input
object.
It is possible to make =-characters part of the iso_rr_path by
preceeding them with a \-character. The same must be done for
\-characters which shall be part of the iso_rr_path.
@ -111,10 +110,6 @@ If the source part of the pathspec leads to a directory, then all files
underneath this directory get inserted into the image, too. It is
possible to exclude particular files from being inserted by help of
option -m.
In case that target already exists, the following rules apply:
Directories and other files may overwrite existing non-directories.
Directories get merged with existing directories. Non-directories may
not overwrite existing directories.

File: xorrisofs.info, Node: Xorriso, Next: Options, Prev: Insert, Up: Top
@ -554,11 +549,9 @@ File: xorrisofs.info, Node: SetExtras, Next: SetHide, Prev: SetCompl, Up: Op
Alias of -J.
-joliet-long
Allow 103 characters in Joliet file names rather than 64 as is
prescribed by the specification. Allow Joliet paths longer than
the prescribed limit of 240 characters.
Oversized names get truncated. Without this option, oversized
paths get excluded from the Joliet tree.
Currently this option is insufficiently implemented. It should
allow 103 characters in Joliet file names but yet only 64 are
possible.

File: xorrisofs.info, Node: SetHide, Next: ImageId, Prev: SetExtras, Up: Options
@ -1785,32 +1778,32 @@ Node: Top397
Node: Overview1052
Node: Standards1488
Node: Insert3163
Node: Xorriso4932
Node: Options6068
Node: Loading6785
Node: SetInsert9079
Node: SetProduct13481
Node: SetCompl17188
Node: SetExtras19507
Node: SetHide22379
Node: ImageId23387
Node: Bootable26891
Node: SystemArea30971
Node: Charset37331
Node: Jigdo38356
Node: Miscellaneous42637
Node: Examples43810
Node: ExSimple44296
Node: ExGraft44775
Node: ExMkisofs46022
Node: ExGrowisofs47273
Node: ExIncBackup48445
Node: ExIncBckAcc51494
Node: ExBootable53169
Node: Files55268
Node: Seealso56338
Node: Legal56853
Node: CommandIdx57649
Node: ConceptIdx68982
Node: Xorriso4584
Node: Options5720
Node: Loading6437
Node: SetInsert8731
Node: SetProduct13133
Node: SetCompl16840
Node: SetExtras19159
Node: SetHide21887
Node: ImageId22895
Node: Bootable26399
Node: SystemArea30479
Node: Charset36839
Node: Jigdo37864
Node: Miscellaneous42145
Node: Examples43318
Node: ExSimple43804
Node: ExGraft44283
Node: ExMkisofs45530
Node: ExGrowisofs46781
Node: ExIncBackup47953
Node: ExIncBckAcc51002
Node: ExBootable52677
Node: Files54776
Node: Seealso55846
Node: Legal56361
Node: CommandIdx57157
Node: ConceptIdx68490

End Tag Table

View File

@ -44,7 +44,7 @@
@c man .\" First parameter, NAME, should be all caps
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
@c man .\" other parameters are allowed: see man(7), man(1)
@c man .TH XORRISOFS 1 "Apr 07, 2011"
@c man .TH XORRISOFS 1 "Mar 09, 2011"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -182,15 +182,14 @@ confuse with the lowlevel ISO 9660 names visible if Rock Ridge gets ignored.)
A program argument is handled as a @strong{pathspec}, if it is not
recognized as original mkisofs option or additional xorrisofs option.
A pathspec depicts an input file object by a disk_path.
If option -graft-points is not present, then the behavior depends on the
file type of disk_path. Directories get merged with the /-directory of the
ISO image. Files of other types get copied into the /-directory.
If option -graft-points is not present, then this file object gets
copied into the /-directory of the ISO image.
@*
If -graft-points is present then each pathspec gets split at the first
occurence of the =-character.
The part before the = is taken as @strong{target}, i.e. the iso_rr_path for
The part before the = is taken as @strong{target}, the iso_rr_path for
the file object in the ISO image. The part after the first = is taken
as @strong{source}, i.e. the disk_path of the input object.
as @strong{source}, the disk_path of the input object.
@*
It is possible to make =-characters part of the iso_rr_path by preceeding
them with a \-character. The same must be done for \-characters which
@ -202,11 +201,6 @@ If the source part of the pathspec leads to a directory, then all files
underneath this directory get inserted into the image, too.
It is possible to exclude particular files from being inserted
by help of option -m.
@*
In case that target already exists, the following rules apply:
Directories and other files may overwrite existing non-directories.
Directories get merged with existing directories.
Non-directories may not overwrite existing directories.
@c man .SS
@node Xorriso, Options, Insert, Top
@chapter Relation to program xorriso
@ -786,12 +780,9 @@ Alias of -J.
@item -joliet-long
@kindex -joliet-long allow longer Joliet names
@cindex Joliet, allows longer names, -joliet-long
Allow 103 characters in Joliet file names rather than 64 as is prescribed
by the specification. Allow Joliet paths longer than the prescribed limit of
240 characters.
@*
Oversized names get truncated. Without this option, oversized paths get
excluded from the Joliet tree.
Currently this option is insufficiently implemented.
It should allow 103 characters in Joliet file names but
yet only 64 are possible.
@end table
@c man .TP
@c man .B Settings for file hiding: