Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
2119d66078 | |||
c5dde8b6e8 | |||
19e16130b0 | |||
9e8098becd |
@ -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
|
||||
|
16
ChangeLog
16
ChangeLog
@ -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
|
||||
===============================================================================
|
||||
|
@ -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
14
README
@ -4,7 +4,7 @@
|
||||
libisoburn and xorriso. By Vreixo Formoso <metalpain2002@yahoo.es>
|
||||
and Thomas Schmitt <scdbackup@gmx.net>
|
||||
Integrated sub project of libburnia-project.org.
|
||||
http://files.libburnia-project.org/releases/libisoburn-1.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:
|
||||
|
||||
|
18
configure.ac
18
configure.ac
@ -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)
|
||||
|
||||
|
11
doc/faq.wiki
11
doc/faq.wiki
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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]
|
||||
|
@ -240,7 +240,6 @@ LIBJTE_MISCONFIGURATION_ = 0;
|
||||
sprintf(msg+strlen(msg), "Cannot initialize libburn\n");
|
||||
return(0);
|
||||
}
|
||||
|
||||
burn_version(&major, &minor, µ);
|
||||
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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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.
|
||||
*/
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
@ -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);
|
||||
|
@ -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.
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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=");
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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 \
|
||||
|
@ -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",
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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";
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|