Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
5d5e0af75f | |||
58741d9156 | |||
ed999190b2 | |||
da38bd6c0d | |||
3a2deccb66 |
@ -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
|
||||
|
54
ChangeLog
54
ChangeLog
@ -1,54 +1,6 @@
|
||||
|
||||
libisoburn-1.0.8.pl00.tar.gz Thu Apr 14 2011
|
||||
SVN trunk (to become libisoburn-1.0.2.pl00.tar.gz)
|
||||
===============================================================================
|
||||
* Bug fix: mkisofs emulation could ignore options (regression in 0.1.6)
|
||||
|
||||
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
|
||||
===============================================================================
|
||||
libisoburn novelties:
|
||||
* New isoburn_ropt_set_extensions() option isoburn_ropt_nomd5tag
|
||||
xorriso novelties:
|
||||
* Bug fix: xorrisofs did not work under growisofs -M (version 1.0.0 was ok)
|
||||
* Bug fix: -as mkisofs -C attempted to read volume header of blank media
|
||||
* Bug fix: -as mkisofs -old-root did not work with -graft-points
|
||||
* Bug fix: -as mkisofs -partition_hd_cyl had no effect
|
||||
* Bug fix: -as mkisofs did not properly unescape target part of pathspecs
|
||||
* Bug fix: isohybrid image size was not aligned to cylinder boundary
|
||||
* Bug fix: Compilation without zlib failed
|
||||
* New -padding modes "included" and "appended"
|
||||
* New bootspec partition_cyl_align=, new -as mkisofs option -partition_cyl_align
|
||||
* New -as mkisofs and -as cdrecord option --no_rc
|
||||
* Own man page and info document for xorrisofs
|
||||
|
||||
libisoburn-1.0.2.pl00.tar.gz Mon Feb 23 2011
|
||||
===============================================================================
|
||||
libisoburn novelties:
|
||||
* Removed compiler obstacles of GNU xorriso on Solaris 9
|
||||
* New isoburn_igopt_set_extensions() option isoburn_igopt_old_empty
|
||||
xorriso novelties:
|
||||
* Bug fix: Images produced with -for_backup might be unreadable and
|
||||
also fail -check_md5 verification.
|
||||
* Bug fix: mkisofs emulation options -l , -full-iso9660-filenames did not work.
|
||||
* Bug fix: Option -mkdir yielded SIGSEGV due to a NULL pointer
|
||||
* Bug fix: ECMA-119 standards violation with Volume Descriptor Set Terminator
|
||||
* New options -clone and -cp_clone
|
||||
* New -find actions update_merge, rm_merge, clear_merge
|
||||
* New -as mkisofs option -max-iso9660-filenames
|
||||
* New -as mkisofs option --old-empty
|
||||
* New -as mkisofs options -root , -old-root
|
||||
* New -as mkisofs options --old-root-no-md5, --old-root-no-ino, --old-root-dev
|
||||
- no novelties yet
|
||||
|
||||
libisoburn-1.0.0.pl00.tar.gz Mon Jan 17 2011
|
||||
===============================================================================
|
||||
@ -120,7 +72,7 @@ xorriso novelties:
|
||||
* New -as mkisofs option --boot-catalog-hide
|
||||
* New option -hide, -find action -hide, -find test -hidden
|
||||
* New -boot_image bootspec cat_hidden=on
|
||||
* New options -copyright_file , -biblio_file , -abstract_file
|
||||
* New options -copright_file , -biblio_file , -abstract_file
|
||||
* New find test -disk_name
|
||||
* Enabled use of libreadline on Solaris
|
||||
* Bug fix: -check_media patch_lba0= could install wrong image size
|
||||
|
@ -219,13 +219,9 @@ indent: $(indent_files)
|
||||
nodist_pkgconfig_DATA = \
|
||||
libisoburn-1.pc
|
||||
|
||||
man_MANS = \
|
||||
xorriso/xorriso.1 \
|
||||
xorriso/xorrisofs.1
|
||||
man_MANS = xorriso/xorriso.1
|
||||
|
||||
info_TEXINFOS = \
|
||||
xorriso/xorriso.texi \
|
||||
xorriso/xorrisofs.texi
|
||||
info_TEXINFOS = xorriso/xorriso.texi
|
||||
|
||||
EXTRA_DIST = \
|
||||
libisoburn-1.pc.in \
|
||||
@ -233,7 +229,6 @@ EXTRA_DIST = \
|
||||
doc/comments \
|
||||
doc/doxygen.conf.in \
|
||||
doc/partition_offset.wiki \
|
||||
doc/startup_file.txt \
|
||||
README \
|
||||
AUTHORS \
|
||||
CONTRIBUTORS \
|
||||
|
15
README
15
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.0.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.0 :
|
||||
- libburn.so.4 , version libburn-1.0.0 or higher
|
||||
- libisofs.so.6 , version libisofs-1.0.0 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.0.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.0.pl00.tar.gz
|
||||
cd libisoburn-1.0.0
|
||||
|
||||
Within that directory execute:
|
||||
|
||||
@ -81,7 +81,6 @@ xorriso binary depending on libburn.so, libisofs.so, libisoburn.so.
|
||||
|
||||
After installation documentation is available via
|
||||
man xorriso
|
||||
man xorrisofs
|
||||
|
||||
Several alias links point to the xorriso binary:
|
||||
xorrisofs starts xorriso with -as mkisofs emulation already enabled
|
||||
|
20
configure.ac
20
configure.ac
@ -1,4 +1,4 @@
|
||||
AC_INIT([libisoburn], [1.0.8], [http://libburnia-project.org])
|
||||
AC_INIT([libisoburn], [1.0.0], [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=0
|
||||
|
||||
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 ### This is the development version after above stable release
|
||||
dnl ts B10116
|
||||
dnl This is the release version 1.0.0 = libisoburn.so.1.57.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 = 58 - 57 = 1 . Library name = libisoburn.so.1.57.0
|
||||
LT_RELEASE=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION
|
||||
LT_CURRENT=66
|
||||
LT_AGE=65
|
||||
LT_CURRENT=58
|
||||
LT_AGE=57
|
||||
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.0
|
||||
LIBISOFS_REQUIRED=1.0.0
|
||||
PKG_CHECK_MODULES(LIBBURN, libburn-1 >= $LIBBURN_REQUIRED)
|
||||
PKG_CHECK_MODULES(LIBISOFS, libisofs-1 >= $LIBISOFS_REQUIRED)
|
||||
|
||||
|
19
doc/faq.wiki
19
doc/faq.wiki
@ -18,7 +18,7 @@ Imaging:
|
||||
|
||||
[#boot_arch For which architectures xorriso is able to create bootable images ?]
|
||||
|
||||
[#isohybrid How to enable booting from USB stick ?]
|
||||
[#isohybrid What is isohybrid MBR useful for ?]
|
||||
|
||||
[#partition_offset What is partition offset feature all about?]
|
||||
|
||||
@ -36,8 +36,6 @@ Miscellaneous:
|
||||
|
||||
[#xorriso_dialog_mode What is xorriso dialog mode useful for ?]
|
||||
|
||||
[#version_numbers Why is every second release missing ?]
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
'''Burning'''
|
||||
----------------------------------------------------------------------------
|
||||
@ -45,7 +43,7 @@ Miscellaneous:
|
||||
===== What is the difference between cdrskin and xorriso ? ===== #diff_cdrskin_xorriso
|
||||
|
||||
[wiki:Cdrskin cdrskin] is a dedicated emulator of program cdrecord, based on
|
||||
libburn. It tries to be as similar to cdrecord as is possible under that
|
||||
libburn. It tries to be as similar as cdrecord as is possible under that
|
||||
premise.
|
||||
|
||||
[wiki:Xorriso xorriso] is an integrated tool which creates, loads, manipulates,
|
||||
@ -81,9 +79,9 @@ Machines which support EFI may either boot via El Torito or use the files
|
||||
of the ISO image directly. It is possible to append to the ISO image a
|
||||
writeable FAT12 partition where files for EFI may be stored and changed.
|
||||
|
||||
===== How to enable booting from USB stick ? ===== #isohybrid
|
||||
===== What is isohybrid MBR useful for ? ===== #isohybrid
|
||||
|
||||
The ISOLINUX boot loader is normally started from CD, DVD or BD media
|
||||
The ISOLINUX boot manager system is normally started from CD, DVD or BD media
|
||||
by a PC-BIOS via an El Torito boot record. But if the ISO image resides on an
|
||||
USB stick or another hard-disk-like device, then PC-BIOS ignores El Torito
|
||||
and rather expects a Master Boot Record (MBR). Both boot record types can
|
||||
@ -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.
|
||||
|
@ -46,10 +46,6 @@ are non-zero. But to avoid any assumptions, all 32 kB get copied here.
|
||||
{{{
|
||||
dd if=RIPLinux-9.3-non-X.iso bs=1K count=32 of=RIPLinux-9.3-non-X.sysarea
|
||||
}}}
|
||||
Normally the System Area file with its MBR is provided by the Syslinux
|
||||
installation under the name isohdp[fp]x*.bin .
|
||||
E.g. /usr/lib/syslinux/isohdpfx.bin
|
||||
|
||||
The files of the image are made accessible for reading
|
||||
{{{
|
||||
mount -o loop RIPLinux-9.3-non-X.iso /mnt
|
||||
@ -82,7 +78,7 @@ and plugged into a Debian system.
|
||||
yields
|
||||
{{{
|
||||
Device Boot Start End Blocks Id System
|
||||
/dev/sdb1 * 64 120831 60384 17 Hidden HPFS/NTFS
|
||||
/dev/sdb1 * 64 119215 59576 17 Hidden HPFS/NTFS
|
||||
}}}
|
||||
|
||||
I can mount /dev/sdb and /dev/sdb1 alike:
|
||||
@ -131,7 +127,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 +138,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.
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
@ -172,19 +154,26 @@ preparations.
|
||||
- If not to be marked bootable:
|
||||
What equipment would the partition need to justify having the mark ?
|
||||
|
||||
- I am still puzzled by the cylinder-head-sector ambiguity. How does a reader
|
||||
of the partition table determine the numbers for heads/cylinder and
|
||||
sectors/head ?
|
||||
fdisk tells about my /dev/sdb
|
||||
{{{
|
||||
105 heads, 17 sectors/track, 2193 cylinders, total 3915776 sectors
|
||||
}}}
|
||||
My partiton table rather was computed with 255 heads/cylinder, 63 sectors/head
|
||||
Debian does not mind the difference. (It uses the 32 bit LBAs, i assume.)
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
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 +184,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]
|
||||
|
@ -6,7 +6,7 @@
|
||||
*/
|
||||
/* libburn wrappers for libisoburn
|
||||
|
||||
Copyright 2007 - 2011 Thomas Schmitt, <scdbackup@gmx.net>
|
||||
Copyright 2007 - 2010 Thomas Schmitt, <scdbackup@gmx.net>
|
||||
Provided under GPL version 2 or later.
|
||||
*/
|
||||
|
||||
@ -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;
|
||||
@ -1779,7 +1723,6 @@ int isoburn_set_msc1(struct burn_drive *d, int adr_mode, char *adr_value,
|
||||
static int max_mode_names= 4;
|
||||
regex_t re;
|
||||
regmatch_t match[1];
|
||||
enum burn_disc_status s;
|
||||
|
||||
ret= isoburn_find_emulator(&o, d, 0);
|
||||
if(ret<0)
|
||||
@ -1840,14 +1783,6 @@ not_found:;
|
||||
|
||||
} else if(adr_mode==3) {
|
||||
o->fabricated_msc1= adr_num;
|
||||
s= isoburn_disc_get_status(d);
|
||||
if(o->fabricated_msc1 > 0 && s != BURN_DISC_FULL
|
||||
&& s != BURN_DISC_APPENDABLE) {
|
||||
isoburn_msgs_submit(o, 0x00060000,
|
||||
"Non-zero load offset given with blank input media",
|
||||
0, "FAILURE", 0);
|
||||
ret= 0; goto ex;
|
||||
}
|
||||
if((flag & 1) && o->fabricated_msc1 >= 16) {
|
||||
/* adr_num is possibly 16 blocks too high */
|
||||
ret= isoburn_read_iso_head(d, o->fabricated_msc1, &size,volid, 1|(1<<14));
|
||||
|
@ -465,7 +465,6 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
|
||||
if(opts->hardlinks)
|
||||
iso_write_opts_set_rrip_1_10_px_ino(wopts, 1);
|
||||
iso_write_opts_set_aaip(wopts, opts->aaip);
|
||||
iso_write_opts_set_old_empty(wopts, !!opts->old_empty);
|
||||
iso_write_opts_set_untranslated_name_len(wopts, opts->untranslated_name_len);
|
||||
iso_write_opts_set_allow_dir_id_ext(wopts, opts->allow_dir_id_ext);
|
||||
iso_write_opts_set_omit_version_numbers(wopts, opts->omit_version_numbers);
|
||||
@ -477,7 +476,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);
|
||||
@ -792,7 +790,7 @@ int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext)
|
||||
o->noacl= !!(ext & 64);
|
||||
o->noea= !!(ext & 128);
|
||||
o->noino= !!(ext & 256);
|
||||
o->nomd5= (ext >> 9) & 3;
|
||||
o->nomd5= !!(ext & 512);
|
||||
return(1);
|
||||
}
|
||||
|
||||
@ -802,7 +800,7 @@ int isoburn_ropt_get_extensions(struct isoburn_read_opts *o, int *ext)
|
||||
*ext= (!!o->norock) | ((!!o->nojoliet)<<1) | ((!!o->noiso1999)<<2) |
|
||||
((!!o->preferjoliet)<<3) | ((!!o->pretend_blank)<<4) |
|
||||
((!!o->noaaip) << 5) | ((!!o->noacl) << 6) | ((!!o->noea) << 7) |
|
||||
((!!o->noino) << 8) | ((o->nomd5 & 3) << 9);
|
||||
((!!o->noino) << 8) | ((!!o->nomd5) << 9);
|
||||
return(1);
|
||||
}
|
||||
|
||||
@ -936,10 +934,6 @@ int isoburn_igopt_new(struct isoburn_imgen_opts **new_o, int flag)
|
||||
o->iso1999= 0;
|
||||
o->hardlinks= 0;
|
||||
o->aaip = 0;
|
||||
o->session_md5= 0;
|
||||
o->file_md5= 0;
|
||||
o->no_emul_toc= 0;
|
||||
o->old_empty= 0;
|
||||
o->untranslated_name_len = 0;
|
||||
o->allow_dir_id_ext = 0;
|
||||
o->omit_version_numbers= 0;
|
||||
@ -950,7 +944,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;
|
||||
@ -1027,7 +1020,6 @@ int isoburn_igopt_set_extensions(struct isoburn_imgen_opts *o, int ext)
|
||||
o->file_md5= (ext & (128 | 256)) >> 7;
|
||||
o->no_emul_toc= !!(ext & 512);
|
||||
o->will_cancel= !!(ext & 1024);
|
||||
o->old_empty= !!(ext & 2048);
|
||||
return(1);
|
||||
}
|
||||
|
||||
@ -1037,8 +1029,7 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext)
|
||||
*ext= (!!o->rockridge) | ((!!o->joliet)<<1) | ((!!o->iso1999)<<2) |
|
||||
((!!o->hardlinks) << 3) | ((!!o->aaip) << 5) |
|
||||
((!!o->session_md5) << 6) | ((o->file_md5 & 3) << 7) |
|
||||
((!!o->no_emul_toc) << 9) | ((o->will_cancel) << 10) |
|
||||
((!!o->old_empty) << 11);
|
||||
((!!o->no_emul_toc) << 9) | ((o->will_cancel) << 10);
|
||||
return(1);
|
||||
}
|
||||
|
||||
@ -1060,7 +1051,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 +1065,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);
|
||||
}
|
||||
|
||||
@ -1264,7 +1253,7 @@ int isoburn_igopt_set_system_area(struct isoburn_imgen_opts *opts,
|
||||
}
|
||||
memcpy(opts->system_area_data, data, 32768);
|
||||
}
|
||||
opts->system_area_options = options & 0x3ff;
|
||||
opts->system_area_options = options & 0xff;
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
Class struct of libisoburn.
|
||||
|
||||
Copyright 2007 - 2011 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
|
||||
Copyright 2007 - 2010 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
|
||||
and Thomas Schmitt <scdbackup@gmx.net>
|
||||
Provided under GPL version 2 or later.
|
||||
*/
|
||||
@ -12,13 +12,7 @@
|
||||
|
||||
|
||||
/* for uint8_t */
|
||||
#ifdef HAVE_STDINT_H
|
||||
#include <stdint.h>
|
||||
#else
|
||||
#ifdef HAVE_INTTYPES_H
|
||||
#include <inttypes.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* For emulated TOC of overwriteable media.
|
||||
Provides minimal info for faking a struct burn_toc_entry.
|
||||
@ -298,7 +292,7 @@ struct isoburn_read_opts {
|
||||
unsigned int noino:1; /* Discard eventual PX inode numbers */
|
||||
|
||||
/* ts A90810 */
|
||||
unsigned int nomd5:2; /* Do not read eventual MD5 array */
|
||||
unsigned int nomd5:1; /* Do not read eventual MD5 array */
|
||||
|
||||
unsigned int preferjoliet:1;
|
||||
/*< When both Joliet and RR extensions are present, the RR
|
||||
@ -376,7 +370,7 @@ struct isoburn_imgen_opts {
|
||||
unsigned int session_md5 :1;
|
||||
|
||||
/* Produce and write MD5 checksums for each single IsoFile.
|
||||
See parameter "files" of iso_write_opts_set_record_md5().
|
||||
See parameter files of iso_write_opts_set_record_md5().
|
||||
*/
|
||||
unsigned int file_md5 :2;
|
||||
|
||||
@ -385,13 +379,6 @@ struct isoburn_imgen_opts {
|
||||
*/
|
||||
unsigned int no_emul_toc :1;
|
||||
|
||||
/* For empty files, symbolic links, and devices use the old ECMA-119 block
|
||||
addresses in the range [0,31] rather than the address of the dedicated
|
||||
empty block.
|
||||
*/
|
||||
unsigned int old_empty :1;
|
||||
|
||||
|
||||
/* relaxed constraints */
|
||||
|
||||
/*
|
||||
@ -469,12 +456,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.
|
||||
*/
|
||||
@ -158,8 +158,6 @@ create_blank_image:;
|
||||
isoburn_report_iso_error(ret, "Cannot create image", 0, "FATAL", 0);
|
||||
return ret;
|
||||
}
|
||||
iso_image_set_ignore_aclea(*image,
|
||||
(!!(read_opts->noacl)) | ((!!read_opts->noea) << 1) );
|
||||
} else {
|
||||
/* Blank new image for the drive */
|
||||
iso_image_unref(o->image);
|
||||
@ -168,13 +166,13 @@ create_blank_image:;
|
||||
isoburn_report_iso_error(ret, "Cannot create image", 0, "FATAL", 0);
|
||||
return ret;
|
||||
}
|
||||
if (image != NULL) {
|
||||
if (image) {
|
||||
*image = o->image;
|
||||
iso_image_ref(*image); /*protects object from premature free*/
|
||||
}
|
||||
iso_image_set_ignore_aclea(o->image,
|
||||
(!!(read_opts->noacl)) | ((!!read_opts->noea) << 1) );
|
||||
}
|
||||
iso_image_set_ignore_aclea(*image,
|
||||
(!!(read_opts->noacl)) | ((!!read_opts->noea) << 1) );
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -228,13 +226,8 @@ displacement_rollover:;
|
||||
iso_read_opts_set_start_block(ropts, ms_block);
|
||||
iso_read_opts_set_no_rockridge(ropts, read_opts->norock);
|
||||
iso_read_opts_set_no_aaip(ropts, read_opts->noaaip);
|
||||
if(read_opts->nomd5 == 2)
|
||||
int_num= 2;
|
||||
else if(read_opts->nomd5 == 1)
|
||||
int_num= 1;
|
||||
else
|
||||
int_num= 0;
|
||||
iso_read_opts_set_no_md5(ropts, int_num);
|
||||
iso_read_opts_set_no_md5(ropts, read_opts->nomd5);
|
||||
|
||||
iso_read_opts_set_new_inos(ropts, read_opts->noino);
|
||||
|
||||
iso_read_opts_set_no_joliet(ropts, read_opts->nojoliet);
|
||||
@ -439,17 +432,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 +450,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 +457,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 +465,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 +487,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 +511,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 0
|
||||
|
||||
/** 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 0
|
||||
|
||||
/** 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 0
|
||||
/** 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
|
||||
@ -771,11 +770,6 @@ int isoburn_ropt_destroy(struct isoburn_read_opts **o, int flag);
|
||||
bit9= nomd5
|
||||
@since 0.4.2
|
||||
Do not load the eventual MD5 checksum array.
|
||||
Do not check eventual session_md5 tags.
|
||||
bit10= nomd5tag
|
||||
@since 1.0.4
|
||||
Do not check eventual session_md5 tags although bit9
|
||||
is not set.
|
||||
@return 1 success, <=0 failure
|
||||
*/
|
||||
#define isoburn_ropt_norock 1
|
||||
@ -788,7 +782,6 @@ int isoburn_ropt_destroy(struct isoburn_read_opts **o, int flag);
|
||||
#define isoburn_ropt_noea 128
|
||||
#define isoburn_ropt_noino 256
|
||||
#define isoburn_ropt_nomd5 512
|
||||
#define isoburn_ropt_nomd5tag 1024
|
||||
|
||||
int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext);
|
||||
int isoburn_ropt_get_extensions(struct isoburn_read_opts *o, int *ext);
|
||||
@ -991,8 +984,7 @@ int isoburn_igopt_get_level(struct isoburn_imgen_opts *o, int *level);
|
||||
can encode ACL and XFS-style Extended Attributes.
|
||||
bit6= session_md5
|
||||
@since 0.4.2
|
||||
Produce and write MD5 checksum tags of superblock, directory
|
||||
tree, and the whole session stream.
|
||||
Produce and write a MD5 checksum of the whole session stream.
|
||||
bit7= file_md5
|
||||
@since 0.4.2
|
||||
Produce and write MD5 checksums for each single IsoFile.
|
||||
@ -1014,15 +1006,6 @@ int isoburn_igopt_get_level(struct isoburn_imgen_opts *o, int *level);
|
||||
and that the write thread will be cancelled by
|
||||
isoburn_cancel_prepared_write() before actual image writing
|
||||
occurs. Without this, cancellation can cause a MISHAP event.
|
||||
bit11= old_empty
|
||||
@since 1.0.2
|
||||
Let symbolic links and device files point to block 0, and let
|
||||
empty data files point to the address of the Volume Descriptor
|
||||
Set Terminator. This was done by libisofs in the past.
|
||||
By default there is now a single dedicated block of zero bytes
|
||||
after the end of the directory trees, of which the address
|
||||
is used for all files without own content.
|
||||
|
||||
@return 1 success, <=0 failure
|
||||
*/
|
||||
#define isoburn_igopt_rockridge 1
|
||||
@ -1035,7 +1018,6 @@ int isoburn_igopt_get_level(struct isoburn_imgen_opts *o, int *level);
|
||||
#define isoburn_igopt_file_stability 256
|
||||
#define isoburn_igopt_no_emul_toc 512
|
||||
#define isoburn_igopt_will_cancel 1024
|
||||
#define isoburn_igopt_old_empty 2048
|
||||
int isoburn_igopt_set_extensions(struct isoburn_imgen_opts *o, int ext);
|
||||
int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext);
|
||||
|
||||
@ -1116,10 +1098,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 +1115,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);
|
||||
|
||||
@ -1349,13 +1326,6 @@ int isoburn_igopt_get_scdbackup_tag(struct isoburn_imgen_opts *o,
|
||||
numbers 2 to 8.
|
||||
This will overwrite the first 512 bytes of
|
||||
the submitted data.
|
||||
bit8-9= Only with System area type 0 = MBR
|
||||
@since 1.0.4
|
||||
Cylinder alignment mode eventually pads the image
|
||||
to make it end at a cylinder boundary.
|
||||
0 = auto (align if bit1)
|
||||
1 = always align to cylinder boundary
|
||||
2 = never align to cylinder boundary
|
||||
|
||||
@return 1 success, 0 no data to get, <0 failure
|
||||
*/
|
||||
@ -1839,21 +1809,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;
|
||||
@ -141,7 +140,6 @@ Xorriso_option_check_media_defaults;
|
||||
Xorriso_option_chgrpi;
|
||||
Xorriso_option_chmodi;
|
||||
Xorriso_option_chowni;
|
||||
Xorriso_option_clone;
|
||||
Xorriso_option_close;
|
||||
Xorriso_option_close_filter_list;
|
||||
Xorriso_option_commit;
|
||||
@ -149,7 +147,6 @@ Xorriso_option_commit_eject;
|
||||
Xorriso_option_compare;
|
||||
Xorriso_option_compliance;
|
||||
Xorriso_option_copyright_file;
|
||||
Xorriso_option_cp_clone;
|
||||
Xorriso_option_cpri;
|
||||
Xorriso_option_cpx;
|
||||
Xorriso_option_cut_out;
|
||||
@ -162,7 +159,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.0.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.0.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.0.tar.gz
|
||||
cd xorriso-1.0.0
|
||||
|
||||
Within that directory execute:
|
||||
|
||||
@ -72,15 +72,17 @@ or you may execute as superuser:
|
||||
|
||||
For general concepts, options and usage examples see
|
||||
info xorriso
|
||||
info xorrisofs
|
||||
or
|
||||
man 1 xorriso
|
||||
man 1 xorrisofs
|
||||
|
||||
The documents are part of the tarball as
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
Original source text of both is
|
||||
xorriso/xorriso.texi
|
||||
You may get a first glimpse by
|
||||
info ./xorriso/xorriso.info
|
||||
info ./xorriso/xorrisofs.info
|
||||
man ./xorriso/xorriso.1
|
||||
man ./xorriso/xorrisofs.1
|
||||
|
||||
The installation creates several alias links pointing to the xorriso binary:
|
||||
xorrisofs starts xorriso with -as mkisofs emulation already enabled
|
||||
@ -253,12 +255,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 +273,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 +291,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.0 :
|
||||
- libburn.so.4 , version libburn-1.0.0 or higher
|
||||
- libisofs.so.6 , version libisofs-1.0.0 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 +419,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
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
@ -25,14 +25,7 @@
|
||||
#include <sys/time.h>
|
||||
#include <time.h>
|
||||
#include <errno.h>
|
||||
|
||||
#ifdef HAVE_STDINT_H
|
||||
#include <stdint.h>
|
||||
#else
|
||||
#ifdef HAVE_INTTYPES_H
|
||||
#include <inttypes.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef Xorriso_standalonE
|
||||
|
||||
@ -132,7 +125,6 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
|
||||
m->do_aaip= 0;
|
||||
m->do_md5= 0;
|
||||
m->no_emul_toc= 0;
|
||||
m->do_old_empty= 0;
|
||||
m->scdbackup_tag_name[0]= 0;
|
||||
m->scdbackup_tag_time[0]= 0;
|
||||
m->scdbackup_tag_written[0]= 0;
|
||||
@ -183,7 +175,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;
|
||||
@ -209,7 +200,6 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
|
||||
m->speed= 0;
|
||||
m->fs= 4*512; /* 4 MiB */
|
||||
m->padding= 300*1024;
|
||||
m->do_padding_by_libisofs= 0;
|
||||
m->alignment= 0;
|
||||
m->do_stream_recording= 0;
|
||||
m->dvd_obs= 0;
|
||||
@ -307,7 +297,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);
|
||||
@ -365,8 +355,6 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
|
||||
|
||||
m->perm_stack= NULL;
|
||||
|
||||
m->update_flags= 0;
|
||||
|
||||
m->result_line[0]= 0;
|
||||
m->result_line_counter= 0;
|
||||
m->result_page_counter= 0;
|
||||
@ -449,10 +437,6 @@ int Xorriso_destroy(struct XorrisO **xorriso, int flag)
|
||||
m= *xorriso;
|
||||
if(m==NULL)
|
||||
return(0);
|
||||
|
||||
/* Give up drives and image to unref all connected xorriso objects */
|
||||
Xorriso_give_up_drive(m, 3);
|
||||
|
||||
if(m->in_charset!=NULL)
|
||||
free(m->in_charset);
|
||||
if(m->out_charset!=NULL)
|
||||
|
@ -9459,11 +9459,12 @@ xorriso/configure_ac.txt
|
||||
xorriso/xorriso_timestamp.h
|
||||
Version leap to libisoburn-1.0.0
|
||||
|
||||
16 Jan 2011 [3564]
|
||||
[]
|
||||
ChangeLog
|
||||
xorriso/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
|
||||
----------------------------------- release - xorriso-1.0.0 - 2011.01.16.200001
|
||||
* New API call isoburn_igopt_set_untranslated_name_len()
|
||||
* New -compliance options untranslated_names , untranslated_name_len=
|
||||
@ -9482,935 +9483,9 @@ xorriso/emulators.c
|
||||
xorriso/opts_p_z.c
|
||||
Updated copyright messages to 2011
|
||||
|
||||
2011.01.17.092111 [3565]
|
||||
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.1
|
||||
|
||||
17 Jan 2011 [3566]
|
||||
ChangeLog
|
||||
xorriso/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
17 Jan 2011 [3567]
|
||||
svn move -m Promoted branch to tag
|
||||
http://svn.libburnia-project.org/libisoburn/branches/1.0.0
|
||||
http://svn.libburnia-project.org/libisoburn/tags/1.0.0
|
||||
|
||||
------------------------------------ cycle - xorriso-1.0.1 - 2011.01.17.092111
|
||||
|
||||
|
||||
2011.01.18.154443 [3568]
|
||||
libisoburn/isoburn.h
|
||||
Avoiding <stdint.h> if not available. Trying to use <inttypes.h> in that case.
|
||||
|
||||
2011.01.18.154717 [3569]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/base_obj.c
|
||||
xorriso/lib_mgt.c
|
||||
xorriso/write_run.c
|
||||
Avoiding <stdint.h> if not available. Trying to use <inttypes.h> in that case.
|
||||
|
||||
------------------------------------ cycle - xorriso-1.0.1 - 2011.01.18.154717
|
||||
* Removed compiler obstacles of GNU xorriso on Solaris 9
|
||||
|
||||
|
||||
18 Jan 2011 [3571]
|
||||
doc/faq.wiki
|
||||
Small change in FAQ wiki text
|
||||
|
||||
19 Jan 2011 [3572]
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
Mentioned missing mkisofs -old-root functionality in man page
|
||||
|
||||
------------------------------------ cycle - xorriso-1.0.1 - 2011.01.24.141621
|
||||
* Bug fix: ECMA-119 standards violation with Volume Descriptor Set Terminator
|
||||
|
||||
|
||||
2011.01.26.132843 [3573]
|
||||
libisoburn/libisoburn.h
|
||||
libisoburn/isoburn.h
|
||||
libisoburn/isoburn.c
|
||||
New isoburn_igopt_set_extensions() option isoburn_igopt_old_empty
|
||||
|
||||
2011.01.26.133107 [3574]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/base_obj.c
|
||||
xorriso/write_run.c
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
New -compliance option old_empty
|
||||
|
||||
26 Jan 2011 [3575]
|
||||
configure.ac
|
||||
Requiring libisofs-1.0.1 now
|
||||
|
||||
------------------------------------ cycle - xorriso-1.0.1 - 2011.01.26.133107
|
||||
* New isoburn_igopt_set_extensions() option isoburn_igopt_old_empty
|
||||
|
||||
|
||||
2011.01.26.184140 [3576]
|
||||
libisoburn/isoburn.c
|
||||
Followed name change in the yet unstable part of libisofs API
|
||||
|
||||
2011.01.26.210359 [3577]
|
||||
xorriso/emulators.c
|
||||
New -as mkisofs option --old-empty
|
||||
|
||||
------------------------------------ cycle - xorriso-1.0.1 -
|
||||
* New -as mkisofs option --old-empty
|
||||
|
||||
|
||||
2011.01.31.135917 [3578]
|
||||
xorriso/iso_manip.c
|
||||
Bug fix: Option -mkdir yielded SIGSEGV due to a NULL pointer
|
||||
|
||||
2011.02.01.185830 [3579]
|
||||
xorriso/xorriso.h
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/parse_exec.c
|
||||
xorriso/opts_a_c.c
|
||||
xorriso/opts_d_h.c
|
||||
xorriso/iso_manip.c
|
||||
libisoburn/libisoburn.ver
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
xorriso/xorriso_eng.html
|
||||
ChangeLog
|
||||
New option -clone
|
||||
|
||||
2011.02.02.174154 [3580]
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/iso_manip.c
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
Disallowed -clone to overwrite existing nodes
|
||||
|
||||
2011.02.04.191922 [3581]
|
||||
xorriso/xorriso.h
|
||||
xorriso/parse_exec.c
|
||||
xorriso/opts_a_c.c
|
||||
xorriso/opts_d_h.c
|
||||
xorriso/iso_manip.c
|
||||
xorriso/sfile.c
|
||||
libisoburn/libisoburn.ver
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
New option -cp_clone
|
||||
|
||||
2011.02.07.182947 [3582]
|
||||
xorriso/cmp_update.c
|
||||
xorriso/sort_cmp.c
|
||||
Do not regard file as changed just because no ino was recorded
|
||||
|
||||
2011.02.07.184304 [3583]
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/opts_p_z.c
|
||||
xorriso/emulators.c
|
||||
xorriso/iso_tree.h
|
||||
xorriso/iso_tree.c
|
||||
xorriso/iso_manip.c
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
New -as mkisofs options -root , -old-root, --old-root-no-md5, --old-root-no-ino, --old-root-dev
|
||||
|
||||
2011.02.07.202851 [3584]
|
||||
xorriso/emulators.c
|
||||
xorriso/iso_manip.c
|
||||
xorriso/sort_cmp.c
|
||||
xorriso/iso_tree.h
|
||||
xorriso/iso_tree.c
|
||||
Some corrections of the previous commit
|
||||
|
||||
2011.02.08.133624 [3585]
|
||||
xorriso/emulators.c
|
||||
-as mkisofs: Enabled reading of xattr and md5 before image loading
|
||||
|
||||
2011.02.12.171423 [3587]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/xorrisoburn.h
|
||||
xorriso/base_obj.c
|
||||
xorriso/opts_a_c.c
|
||||
xorriso/opts_d_h.c
|
||||
xorriso/opts_p_z.c
|
||||
xorriso/emulators.c
|
||||
xorriso/cmp_update.h
|
||||
xorriso/cmp_update.c
|
||||
xorriso/disk_ops.c
|
||||
xorriso/iso_manip.h
|
||||
xorriso/iso_manip.c
|
||||
xorriso/findjob.h
|
||||
xorriso/lib_mgt.c
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
New -find actions update_merge, rm_merge, clear_merge. -cp_clone now merges.
|
||||
|
||||
2011.02.12.172930 [3588]
|
||||
xorriso/cmp_update.c
|
||||
Reacted on compiler warning about uninitialized variable
|
||||
|
||||
2011.02.14.090737 [3590]
|
||||
xorriso/base_obj.c
|
||||
xorriso/parse_exec.c
|
||||
xorriso/filters.c
|
||||
xorriso/write_run.c
|
||||
Closed memory leaks detected by valgrind
|
||||
|
||||
14 Feb 2011 [3591]
|
||||
xorriso/xorriso_eng.html
|
||||
ChangeLog
|
||||
Updated change log
|
||||
|
||||
------------------------------------ cycle - xorriso-1.0.1 - 2011.02.14.090737
|
||||
* Bug fix: Option -mkdir yielded SIGSEGV due to a NULL pointer
|
||||
* New options -clone and -cp_clone
|
||||
* New -find actions update_merge, rm_merge, clear_merge
|
||||
* New -as mkisofs options -root , -old-root
|
||||
* New -as mkisofs options --old-root-no-md5, --old-root-no-ino, --old-root-dev
|
||||
|
||||
|
||||
2011.02.19.112243 [3593]
|
||||
xorriso/emulators.c
|
||||
Small adjustments in mkisofs emulation
|
||||
Bug fix: -as mkisofs -l resp. -full-iso9660-filenames did not work
|
||||
|
||||
2011.02.19.112439 [3594]
|
||||
xorriso/filters.c
|
||||
Updated copyright
|
||||
|
||||
2011.02.19.112541 [3595]
|
||||
xorriso/xorriso.texi
|
||||
Corrections in xorriso man page
|
||||
|
||||
19 Feb 2011 [3596]
|
||||
xorriso/xorriso_eng.html
|
||||
ChangeLog
|
||||
Updated change log
|
||||
|
||||
19 Feb 2011 [3597]
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
info document and man page for recent texi corrections
|
||||
|
||||
------------------------------------ cycle - xorriso-1.0.1 - 2011.02.19.112541
|
||||
* Bug fix in libisofs:
|
||||
Images produced with -for_backup might be unreadable and
|
||||
also fail -check_md5 verification.
|
||||
* Bug fix: mkisofs emulation options -l , -full-iso9660-filenames did not work.
|
||||
|
||||
|
||||
2011.02.21.130729 [3598]
|
||||
xorriso/emulators.c
|
||||
Correction about -as mkisofs --old-root-no-ino
|
||||
|
||||
2011.02.22.073504 [3599]
|
||||
xorriso/opts_a_c.c
|
||||
xorriso/iso_manip.c
|
||||
Issueing messages with -clone and -cp_clone
|
||||
|
||||
2011.02.22.073641 [3600]
|
||||
xorriso/emulators.c
|
||||
Corrected a bug that prevented -as mkisofs option -output
|
||||
|
||||
2011.02.22.123730 [3601]
|
||||
xorriso/emulators.c
|
||||
Made -as mkisofs ignore option -disable-deep-relocation rather than failing
|
||||
|
||||
2011.02.22.143131 [3602]
|
||||
xorriso/emulators.c
|
||||
New -as mkisofs option -max-iso9660-filenames
|
||||
|
||||
22 Feb 2011 [3603]
|
||||
xorriso/xorriso_eng.html
|
||||
ChangeLog
|
||||
Updated change log
|
||||
|
||||
------------------------------------ cycle - xorriso-1.0.1 - 2011.02.22.143131
|
||||
* New -as mkisofs option -max-iso9660-filenames
|
||||
|
||||
|
||||
23 Feb 2011 [3608]
|
||||
svn copy -m Branching for libisoburn release 1.0.2
|
||||
http://svn.libburnia-project.org/libisoburn/trunk
|
||||
http://svn.libburnia-project.org/libisoburn/branches/1.0.2
|
||||
|
||||
2011.02.23.140001 [3609]
|
||||
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.2
|
||||
|
||||
23 Feb 2011 [3610]
|
||||
ChangeLog
|
||||
xorriso/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
----------------------------------- release - xorriso-1.0.2 - 2011.02.23.140001
|
||||
* Bug fix: Images produced with -for_backup might be unreadable and
|
||||
also fail -check_md5 verification.
|
||||
* Bug fix: mkisofs emulation options -l , -full-iso9660-filenames did not work.
|
||||
* Bug fix: Option -mkdir yielded SIGSEGV due to a NULL pointer
|
||||
* Bug fix: ECMA-119 standards violation with Volume Descriptor Set Terminator
|
||||
* Removed compiler obstacles of GNU xorriso on Solaris 9
|
||||
* New isoburn_igopt_set_extensions() option isoburn_igopt_old_empty
|
||||
* New options -clone and -cp_clone
|
||||
* New -find actions update_merge, rm_merge, clear_merge
|
||||
* New -as mkisofs option -max-iso9660-filenames
|
||||
* New -as mkisofs option --old-empty
|
||||
* New -as mkisofs options -root , -old-root
|
||||
* New -as mkisofs options --old-root-no-md5, --old-root-no-ino, --old-root-dev
|
||||
|
||||
|
||||
2011.02.23.202632 [3616]
|
||||
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.3
|
||||
|
||||
23 Feb 2011 [3617]
|
||||
ChangeLog
|
||||
xorriso/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
------------------------------------ cycle - xorriso-1.0.3 - 2011.02.23.202632
|
||||
|
||||
|
||||
23 Feb 2011 [3618]
|
||||
svn move -m Promoted branch to tag
|
||||
http://svn.libburnia-project.org/libisoburn/branches/1.0.2
|
||||
http://svn.libburnia-project.org/libisoburn/tags/1.0.2
|
||||
|
||||
2011.02.24.191908 [3620]
|
||||
libisoburn/isofs_wrap.c
|
||||
Corrected a flaw found by George Danchev with cpp
|
||||
|
||||
2011.02.24.192029 [3621]
|
||||
xorriso/opts_d_h.c
|
||||
xorriso/text_io.c
|
||||
xorriso/filters.c
|
||||
Corrected flaws found by George Danchev with cpp
|
||||
|
||||
2011.02.26.100158 [3622]
|
||||
xorriso/emulators.c
|
||||
Bug fix: -as mkisofs -old-root did not work with -graft-points
|
||||
|
||||
2011.02.28.190842 [3623]
|
||||
xorriso/emulators.c
|
||||
Bug fix: -as mkisofs -partition_hd_cyl had no effect
|
||||
|
||||
28 Feb 2011 [3624]
|
||||
xorriso/make_xorriso_1.c
|
||||
When producing man page from texi: substitute @minus{} within @item
|
||||
|
||||
2011.03.01.145125 [3626]
|
||||
libisoburn/burn_wrap.c
|
||||
Bug fix: -as mkisofs -C attempts to read volume header of blank media
|
||||
|
||||
2011.03.01.152159 [3627]
|
||||
libisoburn/burn_wrap.c
|
||||
Installed a test against non-zero msc1 on blank input drives
|
||||
|
||||
2011.03.02.093009 [3628]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/base_obj.c
|
||||
xorriso/emulators.c
|
||||
xorriso/write_run.c
|
||||
Counting padding as part of the image with -as mkisofs
|
||||
|
||||
2011.03.02.094049 [3629]
|
||||
xorriso/opts_d_h.c
|
||||
xorriso/opts_p_z.c
|
||||
xorriso/text_io.c
|
||||
New -padding modes "included" and "excluded"
|
||||
|
||||
02 Mar 2011 [3630]
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
Updated documentation
|
||||
|
||||
02 Mar 2011 [3631]
|
||||
xorriso/xorriso_eng.html
|
||||
ChangeLog
|
||||
Updated change log and web page
|
||||
|
||||
------------------------------------ cycle - xorriso-1.0.3 - 2011.03.02.094049
|
||||
* Bug fix: -as mkisofs -old-root did not work with -graft-points
|
||||
* Bug fix: -as mkisofs -partition_hd_cyl had no effect
|
||||
* Bug fix: -as mkisofs -C attempted to read volume header of blank media
|
||||
* Bug fix: isohybrid image size was not aligned to cylinder boundary
|
||||
* New -padding modes "included" and "appended"
|
||||
|
||||
|
||||
2011.03.03.181601 [3632]
|
||||
libisoburn/libisoburn.h
|
||||
libisoburn/isoburn.c
|
||||
New bits 8 and 9 with options of isoburn_igopt_set_system_area()
|
||||
|
||||
2011.03.03.181850 [3633]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/opts_a_c.c
|
||||
xorriso/emulators.c
|
||||
xorriso/text_io.c
|
||||
New bootspec partition_cyl_align=, new -as mkisofs option -partition_cyl_align
|
||||
|
||||
03 Mar 2011 [3634]
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
Updated documentation
|
||||
|
||||
04 Mar 2011 [3635]
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
Clarifications about cylinder size and alignment
|
||||
|
||||
04 Mar 2011 [3626]
|
||||
xorriso/xorriso_eng.html
|
||||
ChangeLog
|
||||
Updated change log and web page
|
||||
|
||||
------------------------------------ cycle - xorriso-1.0.3 - 2011.03.03.181850
|
||||
* New bootspec partition_cyl_align=, new -as mkisofs option -partition_cyl_align
|
||||
|
||||
|
||||
2011.03.05.090434 [3637]
|
||||
xorriso/parse_exec.c
|
||||
xorriso/emulators.c
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
New -as mkisofs and -as cdrecord option --no_rc
|
||||
|
||||
2011.03.05.141534 [3638]
|
||||
+ xorriso/xorrisofs.texi
|
||||
+ xorriso/xorrisofs.info
|
||||
+ xorriso/xorrisofs.1
|
||||
Makefile.am
|
||||
xorriso/make_xorriso_standalone.sh
|
||||
xorriso/xorriso_makefile_am.txt
|
||||
xorriso/make_docs.sh
|
||||
Own man page and info document for xorrisofs
|
||||
|
||||
05 Mar 2011 [3639]
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
Mentioned man xorrisofs in man xorriso
|
||||
|
||||
2011.03.06.153741 [3640]
|
||||
xorriso/emulators.c
|
||||
Helptext of -as mkisofs now points to man xorrisofs
|
||||
|
||||
06 Mar 2011 [3641]
|
||||
xorriso/xorrisofs.texi
|
||||
xorriso/xorrisofs.info
|
||||
xorriso/xorrisofs.1
|
||||
Polished xorrisofs documentation
|
||||
|
||||
2011.03.07.101547 [3642]
|
||||
xorriso/opts_a_c.c
|
||||
xorriso/emulators.c
|
||||
Bug fix: -as mkisofs did not properly unescape target part of pathspecs
|
||||
|
||||
07 Mar 2011 [3643]
|
||||
xorriso/xorriso_eng.html
|
||||
ChangeLog
|
||||
Updated change log and web page
|
||||
|
||||
------------------------------------ cycle - xorriso-1.0.3 - 2011.03.07.101547
|
||||
* New -as mkisofs and -as cdrecord option --no_rc
|
||||
* Own man page and info document for xorrisofs
|
||||
* Bug fix: -as mkisofs did not properly unescape target part of pathspecs
|
||||
|
||||
|
||||
2011.03.09.071325 [3644]
|
||||
libisoburn/libisoburn.h
|
||||
libisoburn/isoburn.h
|
||||
libisoburn/isoburn.c
|
||||
libisoburn/isofs_wrap.c
|
||||
New isoburn_ropt_set_extensions() option isoburn_ropt_nomd5tag
|
||||
|
||||
2011.03.09.071502 [3645]
|
||||
xorriso/xorriso_private.h
|
||||
xorriso/opts_i_o.c
|
||||
xorriso/emulators.c
|
||||
xorriso/text_io.c
|
||||
xorriso/drive_mgt.c
|
||||
New -md5 modes load_check_off and load_check_on
|
||||
|
||||
08 Mar 2011 [3646]
|
||||
doc/partition_offset.wiki
|
||||
Updated partition offset wiki
|
||||
|
||||
2011.03.09.123847 [3647]
|
||||
xorriso/xorriso.h
|
||||
Marked options introduced since 0.5.8 by the promised @since tags
|
||||
|
||||
09 Mar 2011 [3648]
|
||||
xorriso/xorriso.texi
|
||||
xorriso/xorriso.info
|
||||
xorriso/xorriso.1
|
||||
xorriso/xorrisofs.texi
|
||||
xorriso/xorrisofs.info
|
||||
xorriso/xorrisofs.1
|
||||
Corrections and updates of documentation
|
||||
|
||||
10 Mar 2011 [3649]
|
||||
xorriso/README_gnu_xorriso
|
||||
xorriso/make_xorriso_standalone.sh
|
||||
xorriso/convert_man_to_html.sh
|
||||
+ xorriso/man_xorrisofs_to_html.sh
|
||||
+ xorriso/man_xorriso_to_html.sh
|
||||
xorriso/xorrisofs.texi
|
||||
xorriso/xorrisofs.info
|
||||
xorriso/xorrisofs.1
|
||||
xorriso/xorriso_eng.html
|
||||
HTML version of man xorrisofs
|
||||
|
||||
10 Mar 2011 [3654]
|
||||
svn copy -m Branching for libisoburn release 1.0.4
|
||||
http://svn.libburnia-project.org/libisoburn/trunk
|
||||
http://svn.libburnia-project.org/libisoburn/branches/1.0.4
|
||||
|
||||
2011.03.10.110001 [3655]
|
||||
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.4
|
||||
|
||||
10 Mar 2011 [3656]
|
||||
ChangeLog
|
||||
xorriso/changelog.txt
|
||||
Documented changes and release timestamp
|
||||
|
||||
----------------------------------- release - xorriso-1.0.4 - 2011.03.10.110001
|
||||
* New isoburn_ropt_set_extensions() option isoburn_ropt_nomd5tag
|
||||
* Bug fix: xorrisofs did not work under growisofs -M (version 1.0.0 was ok)
|
||||
* Bug fix: -as mkisofs -C attempted to read volume header of blank media
|
||||
* Bug fix: -as mkisofs -old-root did not work with -graft-points
|
||||
* Bug fix: -as mkisofs -partition_hd_cyl had no effect
|
||||
* Bug fix: -as mkisofs did not properly unescape target part of pathspecs
|
||||
* Bug fix: isohybrid image size was not aligned to cylinder boundary
|
||||
* Bug fix: Compilation without zlib failed
|
||||
* New -padding modes "included" and "appended"
|
||||
* New bootspec partition_cyl_align=, new -as mkisofs option -partition_cyl_align
|
||||
* New -as mkisofs and -as cdrecord option --no_rc
|
||||
* 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 -
|
||||
xorriso/xorriso_eng.html
|
||||
ChangeLog
|
||||
Updated change log and web page
|
||||
------------------------------------ cycle - xorriso-1.0.9 -
|
||||
------------------------------------ cycle - xorriso-1.0.1 -
|
||||
|
||||
|
||||
**********************************************************************
|
||||
@ -10422,29 +9497,6 @@ 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
|
||||
|
||||
- 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()
|
||||
|
||||
- Zhang Weiwu:
|
||||
>>> ask for test of -old-root
|
||||
|
||||
- xorrecord.texi , man_1_xorrecord.html
|
||||
|
||||
|
||||
------------------------------------------------- For Debian:
|
||||
|
||||
@ -10531,6 +9583,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.
|
||||
|
@ -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.
|
||||
|
||||
@ -284,7 +284,6 @@ ex:;
|
||||
bit1= compare ctime
|
||||
bit2= check only existence of both file objects
|
||||
count one or both missing as "difference"
|
||||
bit26= do not issue message about missing disk file
|
||||
bit27= for Xorriso_path_is_excluded(): bit0
|
||||
bit28= examine eventual disk_path link target rather than link
|
||||
bit29= do not issue pacifier messages
|
||||
@ -321,7 +320,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
||||
sprintf(respt , "? %s (DISK) : exluded by %s\n",
|
||||
Text_shellsafe(disk_adr, sfe, 0),
|
||||
(ret==1 ? "-not_paths" : "-not_leaf"));
|
||||
if(! (flag & ((1 << 31) | (1 << 26))))
|
||||
if(!(flag&(1<<31)))
|
||||
Xorriso_result(xorriso,0);
|
||||
missing= 1;
|
||||
(*result)|= 1;
|
||||
@ -335,7 +334,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr,
|
||||
if(ret==-1) {
|
||||
sprintf(respt , "? %s (DISK) : cannot lstat() : %s\n",
|
||||
Text_shellsafe(disk_adr, sfe, 0), strerror(errno));
|
||||
if(! (flag & ((1 << 31) | (1 << 26))))
|
||||
if(!(flag&(1<<31)))
|
||||
Xorriso_result(xorriso,0);
|
||||
missing= 1;
|
||||
(*result)|= 1;
|
||||
@ -682,11 +681,10 @@ int Xorriso_pfx_disk_path(struct XorrisO *xorriso, char *iso_path,
|
||||
Set to NULL if calling this function from outside ISO world
|
||||
@param flag bit0= update rather than compare
|
||||
bit1= find[ix] is in recursion
|
||||
bit2= update_merge : do not delete but mark visited and found
|
||||
@return <=0 error, 1= ok , 2= iso_path was deleted
|
||||
3=ok, do not dive into directory (e.g. because it is a split file)
|
||||
*/
|
||||
int Xorriso_find_compare(struct XorrisO *xorriso, void *boss_iter, void *node,
|
||||
int Xorriso_find_compare(struct XorrisO *xorriso, void *boss_iter,
|
||||
char *iso_path, char *iso_prefix, char *disk_prefix,
|
||||
int flag)
|
||||
{
|
||||
@ -711,24 +709,22 @@ int Xorriso_find_compare(struct XorrisO *xorriso, void *boss_iter, void *node,
|
||||
follow_links= (xorriso->do_follow_links ||
|
||||
(xorriso->do_follow_param && !(flag&2))) <<28;
|
||||
ret= Xorriso_compare_2_files(xorriso, disk_path, iso_path, "", &result,
|
||||
2 | follow_links | ((!!(flag & 4)) << 26)
|
||||
| ((!(flag&2))<<27) | ((flag&1)<<31));
|
||||
2 | follow_links | ((!(flag&2))<<27) | ((flag&1)<<31));
|
||||
/* was once: | ((!(flag&1))<<29) */
|
||||
if(ret<xorriso->find_compare_result)
|
||||
xorriso->find_compare_result= ret;
|
||||
if(flag&1) {
|
||||
if(ret<0)
|
||||
if(Xorriso_eval_problem_status(xorriso, ret, 1|2)<0)
|
||||
return(ret);
|
||||
if(ret > 0)
|
||||
result= 0;
|
||||
uret= Xorriso_update_interpreter(xorriso, boss_iter, node, result,
|
||||
disk_path, iso_path,
|
||||
((flag & 2) << 1) | ((flag & 4) >> 1));
|
||||
if(uret<=0)
|
||||
ret= 0;
|
||||
if(uret==2)
|
||||
deleted= 1;
|
||||
if(ret<=0) {
|
||||
if(ret<0)
|
||||
if(Xorriso_eval_problem_status(xorriso, ret, 1|2)<0)
|
||||
return(ret);
|
||||
uret= Xorriso_update_interpreter(xorriso, boss_iter, result,
|
||||
disk_path, iso_path, (flag&2)<<1);
|
||||
if(uret<=0)
|
||||
ret= 0;
|
||||
if(uret==2)
|
||||
deleted= 1;
|
||||
}
|
||||
}
|
||||
if(ret<0)
|
||||
return(ret);
|
||||
@ -746,19 +742,15 @@ int Xorriso_find_compare(struct XorrisO *xorriso, void *boss_iter, void *node,
|
||||
Do not call Xorriso_hardlink_update()
|
||||
Overwrite exactly if normal mode would not,
|
||||
else do nothing
|
||||
bit1= do not delete files which are not found under
|
||||
disk_path, but rather mark visited files and mark
|
||||
files which were found.
|
||||
bit2= -follow: this is not a command parameter
|
||||
@return <=0 error, 1= ok , 2= iso_rr_path node object has been deleted ,
|
||||
3= no action taken
|
||||
*/
|
||||
int Xorriso_update_interpreter(struct XorrisO *xorriso,
|
||||
void *boss_iter, void *node,
|
||||
int Xorriso_update_interpreter(struct XorrisO *xorriso, void *boss_iter,
|
||||
int compare_result, char *disk_path,
|
||||
char *iso_rr_path, int flag)
|
||||
{
|
||||
int ret= 1, deleted= 0, is_split= 0, i, loop_count, late_hardlink_update= 0;
|
||||
int ret, deleted= 0, is_split= 0, i, loop_count, late_hardlink_update= 0;
|
||||
char sfe[5*SfileadrL];
|
||||
struct stat stbuf;
|
||||
struct SplitparT *split_parts= NULL;
|
||||
@ -775,15 +767,6 @@ int Xorriso_update_interpreter(struct XorrisO *xorriso,
|
||||
ret= 3; goto ex;
|
||||
}
|
||||
|
||||
if((flag & 2) && !(compare_result & 2)) {
|
||||
ret= Xorriso_mark_update_merge(xorriso, iso_rr_path, node,
|
||||
!(compare_result & 1));
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
}
|
||||
if(compare_result == 0)
|
||||
{ret= 1; goto ex;}
|
||||
|
||||
if(compare_result&((1<<11)|(1<<13))) {
|
||||
if(flag & 1)
|
||||
{ret= 3; goto ex;}
|
||||
@ -805,8 +788,7 @@ int Xorriso_update_interpreter(struct XorrisO *xorriso,
|
||||
} else {
|
||||
/* Hard link relation has changed resp. was not recorded. */
|
||||
ret= Xorriso_hardlink_update(xorriso, &compare_result,
|
||||
disk_path, iso_rr_path,
|
||||
(flag & 4) | ((compare_result >> 21) & 2));
|
||||
disk_path, iso_rr_path, flag & 4);
|
||||
if(ret < 0)
|
||||
goto ex;
|
||||
if(ret == 2)
|
||||
@ -823,24 +805,15 @@ int Xorriso_update_interpreter(struct XorrisO *xorriso,
|
||||
deleted= 1;
|
||||
ret= Xorriso_graft_in(xorriso, boss_iter, disk_path, iso_rr_path,
|
||||
(off_t) 0, (off_t) 0, 2|(flag&4));
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
if(flag & 2) {
|
||||
ret= Xorriso_mark_update_merge(xorriso, iso_rr_path, NULL, 1);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
}
|
||||
}
|
||||
sprintf(xorriso->info_text, "Deleted and re-added ");
|
||||
|
||||
} else if(compare_result&(1)) {
|
||||
delete:;
|
||||
/* disk_adr not existing */
|
||||
if(!(flag & 2)) {
|
||||
ret= Xorriso_rmi(xorriso, boss_iter, (off_t) 0, iso_rr_path, 1);
|
||||
deleted= 1;
|
||||
sprintf(xorriso->info_text, "Deleted ");
|
||||
}
|
||||
ret= Xorriso_rmi(xorriso, boss_iter, (off_t) 0, iso_rr_path, 1);
|
||||
deleted= 1;
|
||||
sprintf(xorriso->info_text, "Deleted ");
|
||||
|
||||
} else if(compare_result&(2|128|(1<<12)|(1<<14)|(1<<15))) {
|
||||
/* iso_adr not existing, size, cannot open iso file, early eof of iso file
|
||||
@ -921,11 +894,6 @@ overwrite:;
|
||||
if(ret < 0)
|
||||
goto ex;
|
||||
}
|
||||
if(flag & 2) {
|
||||
ret= Xorriso_mark_update_merge(xorriso, iso_rr_path, NULL, 1);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
}
|
||||
if(flag & 1)
|
||||
sprintf(xorriso->info_text, "Widened hard link ");
|
||||
else
|
||||
|
@ -23,21 +23,16 @@ int Xorriso_pfx_disk_path(struct XorrisO *xorriso, char *iso_path,
|
||||
|
||||
/* @param boss_iter Opaque handle to be forwarded to actions in ISO image
|
||||
Set to NULL if calling this function from outside ISO world
|
||||
@param node Opaque handle to be forwarded to actions in ISO image
|
||||
Set to NULL if calling this function from outside ISO world
|
||||
@param flag bit0= update rather than compare
|
||||
*/
|
||||
int Xorriso_find_compare(struct XorrisO *xorriso, void *boss_iter, void *node,
|
||||
int Xorriso_find_compare(struct XorrisO *xorriso, void *boss_iter,
|
||||
char *iso_path, char *iso_prefix, char *disk_prefix,
|
||||
int flag);
|
||||
|
||||
/* @param boss_iter Opaque handle to be forwarded to actions in ISO image
|
||||
Set to NULL if calling this function from outside ISO world
|
||||
@param @node Opaque handle to be forwarded to actions in ISO image
|
||||
Set to NULL if calling this function from outside ISO world
|
||||
*/
|
||||
int Xorriso_update_interpreter(struct XorrisO *xorriso,
|
||||
void *boss_iter, void *node,
|
||||
int Xorriso_update_interpreter(struct XorrisO *xorriso, void *boss_iter,
|
||||
int compare_result, char *disk_path,
|
||||
char *iso_rr_path, int flag);
|
||||
|
||||
|
@ -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.0], [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=1
|
||||
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=1
|
||||
AC_SUBST(LIBISOFS_MAJOR_VERSION)
|
||||
AC_SUBST(LIBISOFS_MINOR_VERSION)
|
||||
AC_SUBST(LIBISOFS_MICRO_VERSION)
|
||||
|
@ -1,13 +1,118 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# convert_man_to_html.sh - ts B10309
|
||||
# convert_man_to_html.sh - ts A80118
|
||||
#
|
||||
# Generates a HTML version of man pages xorriso.1 , xorrisofs.1
|
||||
# Generates a HTML version of man page xorriso.1
|
||||
#
|
||||
# To be executed in the libisoburn toplevel directory (eg. ./libisoburn-1.0.4)
|
||||
# To be executed in the libisoburn toplevel directory (eg. ./libisoburn-0.1.0)
|
||||
#
|
||||
|
||||
xorriso/man_xorriso_to_html.sh
|
||||
xorriso/man_xorrisofs_to_html.sh
|
||||
# set -x
|
||||
|
||||
man_dir=$(pwd)"/xorriso"
|
||||
export MANPATH="$man_dir"
|
||||
manpage="xorriso"
|
||||
raw_html=$(pwd)/"xorriso/raw_man_1_xorriso.html"
|
||||
htmlpage=$(pwd)/"xorriso/man_1_xorriso.html"
|
||||
|
||||
if test -r "$man_dir"/"$manpage".1
|
||||
then
|
||||
dummy=dummy
|
||||
else
|
||||
echo "Cannot find readable man page source $1" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -e "$man_dir"/man1
|
||||
then
|
||||
dummy=dummy
|
||||
else
|
||||
ln -s . "$man_dir"/man1
|
||||
fi
|
||||
|
||||
if test "$1" = "-work_as_filter"
|
||||
then
|
||||
|
||||
# set -x
|
||||
|
||||
sed \
|
||||
-e 's/<meta name="generator" content="groff -Thtml, see www.gnu.org">/<meta name="generator" content="groff -Thtml, via man -H, via xorriso\/convert_man_to_html.sh">/' \
|
||||
-e 's/<meta name="Content-Style" content="text\/css">/<meta name="Content-Style" content="text\/css"><META NAME="description" CONTENT="man page of xorriso"><META NAME="keywords" CONTENT="man xorriso, manual, xorriso, CD, CD-RW, CD-R, burning, cdrecord, compatible"><META NAME="robots" CONTENT="follow">/' \
|
||||
-e 's/<title>XORRISO<\/title>/<title>man 1 xorriso<\/title>/' \
|
||||
-e 's/<h1 align=center>XORRISO<\/h1>/<h1 align=center>man 1 xorriso<\/h1>/' \
|
||||
-e 's/<body>/<body BGCOLOR="#F5DEB3" TEXT=#000000 LINK=#0000A0 VLINK=#800000>/' \
|
||||
-e 's/<b>Overview of features:<\/b>/\ <BR><b>Overview of features:<\/b>/' \
|
||||
-e 's/<b>General information paragraphs:<\/b>/\ <BR><b>General information paragraphs:<\/b>/' \
|
||||
-e 's/have a look at section EXAMPLES/have a look at section <A HREF="#EXAMPLES">EXAMPLES<\/A>/' \
|
||||
-e 's/<b>Session model:<\/b>/\ <BR><b>Session model:<\/b>/' \
|
||||
-e 's/<b>Media types and states:<\/b>/\ <BR><b>Media types and states:<\/b>/' \
|
||||
-e 's/<b>Creating, Growing, Modifying, Blind/\ <BR><b>Creating, Growing, Modifying, Blind/' \
|
||||
-e 's/<b>Libburn drives:<\/b>/\ <BR><b>Libburn drives:<\/b>/' \
|
||||
-e 's/^-dev /\ \ -dev /' \
|
||||
-e 's/^-devices /\ \ -devices /' \
|
||||
-e 's/<b>Rock Ridge, POSIX, X\/Open, El Torito, ACL,/\ <BR><b>Rock Ridge, POSIX, X\/Open, El Torito, ACL,/' \
|
||||
-e 's/<b>Command processing:<\/b>/\ <BR><b>Command processing:<\/b>/' \
|
||||
-e 's/<b>Dialog, Readline, Result pager:<\/b>/\ <BR><b>Dialog, Readline, Result pager:<\/b>/' \
|
||||
-e 's/<b>Aquiring source and target drive:<\/b>/\ <BR><b>Aquiring source and target drive:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Influencing the behavior of image/\ <BR><b>Influencing the behavior of image/' \
|
||||
-e 's/<b>Inserting files into ISO image:<\/b>/\ <BR><b>Inserting files into ISO image:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>File manipulations:<\/b>/\ <BR><b>File manipulations:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Tree traversal command -find:<\/b>/\ <BR><b>Tree traversal command -find:<\/b><BR>\ <BR>/' \
|
||||
-e 's/^<p><b>−iso_rr_pattern/<p>\ <BR><b>\−iso_rr_pattern/' \
|
||||
-e 's/EXAMPLES):<br>/<A HREF="#EXAMPLES">EXAMPLES<\/A>):<br>/' \
|
||||
-e 's/<b>Filters for data file content:<\/b>/\ <BR><b>Filters for data file content:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Writing the result, drive control:<\/b>/\ <BR><b>Writing the result, drive control:<\/b><BR>\ <BR>/' \
|
||||
-e 's/^-find \/ /\ \ -find \/ /' \
|
||||
-e 's/<b>Settings for file insertion:<\/b>/\ <BR><b>Settings for file insertion:<\/b><BR>\ <BR>/' \
|
||||
-e 's/^$<\/b> ln -s/\ \ $<\/b> ln -s/' \
|
||||
-e 's/<b>Settings for result writing:<\/b>/\ <BR><b>Settings for result writing:<\/b><BR>\ <BR>/' \
|
||||
-e 's/^706k = 706kB/\ \ 706k = 706kB/' \
|
||||
-e 's/^5540k = 5540kB/\ \ 5540k = 5540kB/' \
|
||||
-e 's/<b>Character sets:<\/b>/\ <BR><b>Character sets:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Exception processing:<\/b>/\ <BR><b>Exception processing:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>El Torito bootable ISO images:<\/b>/\ <BR><b>El Torito bootable ISO images:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Jigdo Template Extraction:<\/b>/\ <BR><b>Jigdo Template Extraction:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Dialog mode control:<\/b>/\ <BR><b>Dialog mode control:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Drive and media related inquiry actions:<\/b>/\ <BR><b>Drive and media related inquiry actions:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Navigation in ISO image/\ <BR><b>Navigation in ISO image/' \
|
||||
-e 's/^filesystem:<\/b>/filesystem:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Evaluation of readability and recovery:<\/b>/\ <BR><b>Evaluation of readability and recovery:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>osirrox ISO-to-disk restore options:<\/b>/\ <BR><b>osirrox ISO-to-disk restore options:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Command compatibility emulations:<\/b>/\ <BR><b>Command compatibility emulations:<\/b><BR>\ <BR>/' \
|
||||
-e 's/^<p><b>−as</<p>\ <BR><b>\−as</' \
|
||||
-e 's/<b>Scripting, dialog and/\ <BR><b>Scripting, dialog and/' \
|
||||
-e 's/^features:<\/b>/features:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Support for frontend/\ <BR><b>Support for frontend/' \
|
||||
-e 's/^listening at stdout:<\/b>/listening at stdout:<\/b><BR>\ <BR>/' \
|
||||
-e 's/xorriso -outdev \/dev\/sr2 \\ -blank fast \\ -pathspecs on/xorriso -outdev \/dev\/sr2 -blank fast -pathspecs on/' \
|
||||
-e 's/\\ -add \\ \/sounds=\/home\/me\/sounds \\ \/pictures \\ -- \\ -rm_r \\/ -add \/sounds=\/home\/me\/sounds \/pictures -- -rm_r /' \
|
||||
-e 's/\/sounds\/indecent \\ \’\/pictures\/\*private\*\’ \\/\/sounds\/indecent \’\/pictures\/*private*\’ /' \
|
||||
-e 's/\/pictures\/confidential \\ -- \\ -add \\/\/pictures\/confidential -- -add/' \
|
||||
-e 's/xorriso -dev \/dev\/sr2 \\ -rm_r \/sounds -- \\ -mv \\/xorriso -dev \/dev\/sr2 -rm_r \/sounds -- -mv /' \
|
||||
-e 's/\/pictures\/confidential \\ \/pictures\/restricted \\ -- \\ -chmod/\/pictures\/confidential \/pictures\/restricted -- -chmod/' \
|
||||
-e 's/go-rwx \/pictures\/restricted -- \\ -pathsspecs on \\ -add \\/go-rwx \/pictures\/restricted -- -pathsspecs on -add /' \
|
||||
-e 's/\/sounds=\/home\/me\/prepared_for_dvd\/sounds_dummy /\/sounds=\/home\/me\/prepared_for_dvd\/sounds_dummy/' \
|
||||
-e 's/\/movies=\/home\/me\/prepared_for_dvd\/movies \\ -- \\ -commit/\/movies=\/home\/me\/prepared_for_dvd\/movies -- -commit/' \
|
||||
-e 's/xorriso -indev \/dev\/sr2 \\ -rm_r \/sounds -- \\/xorriso -indev \/dev\/sr2 -rm_r \/sounds -- /' \
|
||||
-e 's/-outdev \/dev\/sr0 -blank fast \\ -commit -eject all/-outdev \/dev\/sr0 -blank fast -commit -eject all/' \
|
||||
-e 's/See section FILES/See section <A HREF="#FILES">FILES<\/A>/' \
|
||||
-e 's/See section EXAMPLES/See section <A HREF="#EXAMPLES">EXAMPLES<\/A>/' \
|
||||
-e 's/<\/body>/<BR><HR><FONT SIZE=-1><CENTER>(HTML generated from '"$manpage"'.1 on '"$(date)"' by '$(basename "$0")' )<\/CENTER><\/FONT><\/body>/' \
|
||||
<"$2" >"$htmlpage"
|
||||
|
||||
set +x
|
||||
|
||||
chmod u+rw,go+r,go-w "$htmlpage"
|
||||
echo "Emerged file:"
|
||||
ls -lL "$htmlpage"
|
||||
|
||||
else
|
||||
|
||||
export BROWSER='cp "%s" '"$raw_html"
|
||||
man -H "$manpage"
|
||||
"$0" -work_as_filter "$raw_html"
|
||||
rm "$raw_html"
|
||||
rm "$man_dir"/man1
|
||||
|
||||
fi
|
||||
|
@ -1132,8 +1132,8 @@ int Xorriso_findx_action(struct XorrisO *xorriso, struct FindjoB *job,
|
||||
if(ret<xorriso->find_compare_result)
|
||||
xorriso->find_compare_result= ret;
|
||||
if(ret==0) {
|
||||
uret= Xorriso_update_interpreter(xorriso, NULL, NULL, compare_result,
|
||||
abs_path, iso_path, ((flag&1)<<2) | 2);
|
||||
uret= Xorriso_update_interpreter(xorriso, NULL, compare_result,
|
||||
abs_path, iso_path, (flag&1)<<2);
|
||||
if(uret<=0)
|
||||
ret= 0;
|
||||
}
|
||||
|
@ -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);
|
||||
@ -369,10 +368,11 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, int flag)
|
||||
ext|= isoburn_ropt_noea;
|
||||
if(xorriso->ino_behavior & 1)
|
||||
ext|= isoburn_ropt_noino;
|
||||
|
||||
#ifdef isoburn_ropt_nomd5
|
||||
if(!(xorriso->do_md5 & 1))
|
||||
ext|= isoburn_ropt_nomd5;
|
||||
if(xorriso->do_md5 & 32)
|
||||
ext|= isoburn_ropt_nomd5tag;
|
||||
#endif
|
||||
|
||||
isoburn_ropt_set_extensions(ropts, ext);
|
||||
|
||||
@ -422,11 +422,8 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, int flag)
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, sev, 0);
|
||||
if(read_ret == ISO_SB_TREE_CORRUPTED && (xorriso->do_md5 & 1)) {
|
||||
Xorriso_msgs_submit(xorriso, 0,
|
||||
"This might be false MD5 alarm if an add-on session was written by growisofs.",
|
||||
0, "HINT", 0);
|
||||
Xorriso_msgs_submit(xorriso, 0,
|
||||
"In this case you get an ISO image tree by option -md5 'load_check_off'",
|
||||
0, "HINT", 0);
|
||||
"You might get a questionable ISO image tree by option -md5 'off'.",
|
||||
0, "HINT", 0);
|
||||
} else if(xorriso->img_read_error_mode!=0) {
|
||||
Xorriso_msgs_submit(xorriso, 0, "You might get a partial or altered ISO image tree by option -error_behavior 'image_loading' 'best_effort' if -abort_on is set to be tolerant enough.",
|
||||
0, "HINT", 0);
|
||||
@ -503,16 +500,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 +830,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 +896,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 +919,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 +1021,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 +1291,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
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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.
|
||||
|
||||
@ -118,8 +118,6 @@ int Xorriso_extf_destroy(struct XorrisO *xorriso, struct Xorriso_extF **filter,
|
||||
if(cmd != NULL) {
|
||||
if(cmd->refcount > 0)
|
||||
return(0);
|
||||
if(cmd->path != NULL)
|
||||
free(cmd->path);
|
||||
if(cmd->suffix != NULL)
|
||||
free(cmd->suffix);
|
||||
if(cmd->argv != NULL) {
|
||||
@ -130,7 +128,6 @@ int Xorriso_extf_destroy(struct XorrisO *xorriso, struct Xorriso_extF **filter,
|
||||
}
|
||||
if(cmd->name != NULL)
|
||||
free(cmd->name);
|
||||
free((char *) cmd);
|
||||
}
|
||||
free((char *) *filter);
|
||||
*filter= NULL;
|
||||
@ -398,7 +395,7 @@ int Xorriso_set_filter(struct XorrisO *xorriso, void *in_node,
|
||||
sprintf(xorriso->info_text,
|
||||
"-set_filter: UID and EUID differ. Will not run external programs.");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FATAL", 0);
|
||||
ret= 0; goto ex;
|
||||
return(0);
|
||||
}
|
||||
#endif /* ! Xorriso_allow_extf_suiD */
|
||||
|
||||
|
@ -155,9 +155,6 @@ struct FindjoB {
|
||||
38= sort_weight number
|
||||
39= hide on|iso_rr|joliet|off
|
||||
40= estimate_size
|
||||
41= update_merge disk_equiv
|
||||
42= rm_merge
|
||||
43= clear_merge
|
||||
*/
|
||||
int action;
|
||||
int prune;
|
||||
|
@ -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.
|
||||
|
||||
@ -126,11 +126,6 @@ int Xorriso_graft_split(struct XorrisO *xorriso, IsoImage *volume,
|
||||
if(ret<0)
|
||||
return(ret);
|
||||
*node= (IsoNode *) new_dir;
|
||||
if(xorriso->update_flags & 1) {
|
||||
ret= Xorriso_mark_update_merge(xorriso, img_name, node, 1);
|
||||
if(ret <= 0)
|
||||
return(0);
|
||||
}
|
||||
total_parts= size / xorriso->split_size;
|
||||
if(size % xorriso->split_size)
|
||||
total_parts++;
|
||||
@ -166,7 +161,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) {
|
||||
@ -218,21 +213,11 @@ int Xorriso_tree_graft_node(struct XorrisO *xorriso, IsoImage *volume,
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
}
|
||||
if(xorriso->update_flags & 1) {
|
||||
ret= Xorriso_mark_update_merge(xorriso, img_name, *node, 1);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
@ -626,30 +611,20 @@ int Xorriso_graft_in(struct XorrisO *xorriso, void *boss_iter,
|
||||
int target_is_split, hide_attrs;
|
||||
struct stat stbuf;
|
||||
|
||||
ret= Xorriso_path_is_excluded(xorriso, disk_path, !(flag&4));
|
||||
if(ret<0)
|
||||
return(ret);
|
||||
if(ret>0)
|
||||
return(3*!!(flag&16));
|
||||
|
||||
/* Check for mkisofs-style hidings */
|
||||
hide_attrs= (flag >> 8) & 3;
|
||||
if (disk_path == NULL && !(flag & 1)) {
|
||||
Xorriso_msgs_submit(xorriso, 0,
|
||||
"Program error: Xorriso_graft_in(): disk_path == NULL && !(flag & 1)",
|
||||
0, "ABORT", 0);
|
||||
return(-1);
|
||||
}
|
||||
if (disk_path == NULL) {
|
||||
disk_path= "";
|
||||
} else {
|
||||
ret= Xorriso_path_is_excluded(xorriso, disk_path, !(flag&4));
|
||||
if(hide_attrs != 3) {
|
||||
ret= Xorriso_path_is_hidden(xorriso, disk_path, 0);
|
||||
if(ret<0)
|
||||
return(ret);
|
||||
if(ret>0)
|
||||
return(3*!!(flag&16));
|
||||
|
||||
/* Check for mkisofs-style hidings */
|
||||
if(hide_attrs != 3) {
|
||||
ret= Xorriso_path_is_hidden(xorriso, disk_path, 0);
|
||||
if(ret<0)
|
||||
return(ret);
|
||||
if(ret>=0)
|
||||
hide_attrs|= ret;
|
||||
}
|
||||
if(ret>=0)
|
||||
hide_attrs|= ret;
|
||||
}
|
||||
|
||||
for(cpt= img_path; 1; cpt++) {
|
||||
@ -663,14 +638,10 @@ int Xorriso_graft_in(struct XorrisO *xorriso, void *boss_iter,
|
||||
break;
|
||||
}
|
||||
if(cpt!=NULL) {
|
||||
if(disk_path[0])
|
||||
Xorriso_msgs_submit(xorriso, 0, disk_path, 0, "ERRFILE", 0);
|
||||
Xorriso_msgs_submit(xorriso, 0, disk_path, 0, "ERRFILE", 0);
|
||||
sprintf(xorriso->info_text,
|
||||
"Unsupported relative addressing in iso_rr_path %s",
|
||||
Text_shellsafe(img_path, sfe, 0));
|
||||
if(disk_path[0])
|
||||
sprintf(xorriso->info_text + strlen(xorriso->info_text),
|
||||
" (disk: %s)", Text_shellsafe(disk_path, sfe, 0));
|
||||
"Unsupported relative addressing in iso_rr_path %s (disk: %s)",
|
||||
Text_shellsafe(img_path, sfe, 0), Text_shellsafe(disk_path, sfe2, 0));
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
@ -769,8 +740,7 @@ int Xorriso_graft_in(struct XorrisO *xorriso, void *boss_iter,
|
||||
return(ret);
|
||||
if(ret==3) {
|
||||
sprintf(xorriso->info_text, "User revoked adding of: %s",
|
||||
disk_path[0] ? Text_shellsafe(disk_path, sfe, 0)
|
||||
: Text_shellsafe(img_path, sfe, 0));
|
||||
Text_shellsafe(disk_path, sfe, 0));
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
|
||||
return(3*!!(flag&16));
|
||||
}
|
||||
@ -778,8 +748,7 @@ int Xorriso_graft_in(struct XorrisO *xorriso, void *boss_iter,
|
||||
goto handle_path_node;
|
||||
}
|
||||
|
||||
if (disk_path[0])
|
||||
Xorriso_msgs_submit(xorriso, 0, disk_path, 0, "ERRFILE", 0);
|
||||
Xorriso_msgs_submit(xorriso, 0, disk_path, 0, "ERRFILE", 0);
|
||||
sprintf(xorriso->info_text,
|
||||
"While grafting '%s' : '%s' exists and may not be overwritten",
|
||||
img_path, path);
|
||||
@ -794,8 +763,7 @@ handle_path_node:;
|
||||
ret= iso_tree_add_new_dir(dir, apt, &hdir);
|
||||
if(ret<0) {
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
if(disk_path[0])
|
||||
Xorriso_msgs_submit(xorriso, 0, disk_path, 0, "ERRFILE", 0);
|
||||
Xorriso_msgs_submit(xorriso, 0, disk_path, 0, "ERRFILE", 0);
|
||||
Xorriso_report_iso_error(xorriso, img_path, ret,
|
||||
"Cannot create directory", 0, "FAILURE", 1);
|
||||
sprintf(xorriso->info_text,
|
||||
@ -803,19 +771,13 @@ handle_path_node:;
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
if(xorriso->update_flags & 1) {
|
||||
ret= Xorriso_mark_update_merge(xorriso, path, (IsoNode *) hdir, 1);
|
||||
if(ret <= 0)
|
||||
return(0);
|
||||
}
|
||||
|
||||
dir= hdir;
|
||||
Xorriso_set_change_pending(xorriso, 0);
|
||||
iso_node_set_ctime((IsoNode *) dir, time(NULL));
|
||||
iso_node_set_uid((IsoNode *) dir, geteuid());
|
||||
iso_node_set_gid((IsoNode *) dir, getegid());
|
||||
|
||||
if(disk_path[0] && !done)
|
||||
if(disk_path!=NULL && !done)
|
||||
/* This not only copies disk directory properties
|
||||
but also sets eventual hide_attrs */
|
||||
Xorriso_copy_implicit_properties(xorriso, dir, img_path, path, disk_path,
|
||||
@ -937,7 +899,6 @@ unsupported_type:;
|
||||
|
||||
|
||||
/* @param flag bit0= do not produce info message on success
|
||||
bit1= do not raise protest if directory already exists
|
||||
@return 1=success,
|
||||
0=was already directory, -1=was other type, -2=other error
|
||||
*/
|
||||
@ -950,10 +911,8 @@ int Xorriso_mkdir(struct XorrisO *xorriso, char *path, int flag)
|
||||
if(ret<0)
|
||||
return(-2);
|
||||
if(ret>0) {
|
||||
if(ret == 2 && (flag & 2))
|
||||
return(0);
|
||||
sprintf(xorriso->info_text,"-mkdir: Address already existing %s",
|
||||
Text_shellsafe(eff_path, sfe, 0));
|
||||
Text_shellsafe(eff_path, sfe, 0));
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0,
|
||||
(ret==2 ? "WARNING" : "FAILURE"), 0);
|
||||
return(-1+(ret==2));
|
||||
@ -1228,38 +1187,6 @@ ex:;
|
||||
}
|
||||
|
||||
|
||||
int Xorriso_overwrite_dest(struct XorrisO *xorriso, void *boss_iter,
|
||||
char *eff_dest, int dest_ret, char *activity,
|
||||
int flag)
|
||||
{
|
||||
int ret;
|
||||
char sfe[5*SfileadrL];
|
||||
|
||||
if(dest_ret==2 && xorriso->do_overwrite!=1) {
|
||||
sprintf(xorriso->info_text, "%s: May not overwrite directory: %s",
|
||||
activity, Text_shellsafe(eff_dest, sfe, 0));
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
} else if (dest_ret==1 && !xorriso->do_overwrite) {
|
||||
sprintf(xorriso->info_text, "%s: May not overwite: %s",
|
||||
activity, Text_shellsafe(eff_dest, sfe, 0));
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
} else if(dest_ret>0) {
|
||||
ret= Xorriso_rmi(xorriso, boss_iter, (off_t) 0, eff_dest, 1|8);
|
||||
if(ret<=0)
|
||||
return(0);
|
||||
if(ret==3) {
|
||||
sprintf(xorriso->info_text, "%s: User revoked removal of: %s",
|
||||
activity, Text_shellsafe(eff_dest, sfe, 0));
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
|
||||
return(0);
|
||||
}
|
||||
}
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
/* @param boss_iter Opaque handle to be forwarded to actions in ISO image
|
||||
Set to NULL if calling this function from outside ISO world
|
||||
*/
|
||||
@ -1322,10 +1249,27 @@ int Xorriso_rename(struct XorrisO *xorriso, void *boss_iter,
|
||||
}
|
||||
|
||||
/* Check whether destination exists and may be not overwriteable */
|
||||
ret= Xorriso_overwrite_dest(xorriso, boss_iter,
|
||||
eff_dest, dest_ret, "Renaming", 0);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
if(dest_ret==2 && xorriso->do_overwrite!=1) {
|
||||
sprintf(xorriso->info_text, "Renaming may not overwrite directory: %s",
|
||||
Text_shellsafe(eff_dest, sfe, 0));
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
} else if (dest_ret==1 && !xorriso->do_overwrite) {
|
||||
sprintf(xorriso->info_text, "Renaming may not overwite: %s",
|
||||
Text_shellsafe(eff_dest, sfe, 0));
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
} else if(dest_ret>0) {
|
||||
ret= Xorriso_rmi(xorriso, boss_iter, (off_t) 0, eff_dest, 1|8);
|
||||
if(ret<=0)
|
||||
return(0);
|
||||
if(ret==3) {
|
||||
sprintf(xorriso->info_text, "User revoked renaming of: %s",
|
||||
Text_shellsafe(eff_origin, sfe, 0));
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
|
||||
return(0);
|
||||
}
|
||||
}
|
||||
|
||||
/* Ensure existence of destination directory */
|
||||
strcpy(dir_adr, eff_dest);
|
||||
@ -1401,175 +1345,6 @@ int Xorriso_rename(struct XorrisO *xorriso, void *boss_iter,
|
||||
}
|
||||
|
||||
|
||||
int Xorriso_cannot_clone(struct XorrisO *xorriso, char *eff_origin,
|
||||
char *eff_dest, int iso_error, int flag)
|
||||
{
|
||||
Xorriso_report_iso_error(xorriso, eff_dest, iso_error, "Cannot clone",
|
||||
0, "FAILURE", 1);
|
||||
sprintf(xorriso->info_text, "Failed to clone ");
|
||||
Text_shellsafe(eff_origin, xorriso->info_text, 1);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
|
||||
/* @param flag bit0= for iso_tree_clone() : merge directories
|
||||
bit1= do not issue NOTE message
|
||||
*/
|
||||
int Xorriso_clone_tree(struct XorrisO *xorriso, void *boss_iter,
|
||||
char *origin, char *dest, int flag)
|
||||
{
|
||||
int ret, dest_ret, l;
|
||||
char eff_dest[SfileadrL], eff_origin[SfileadrL], dir_adr[SfileadrL];
|
||||
char *leafname;
|
||||
IsoImage *volume;
|
||||
IsoDir *new_parent;
|
||||
IsoNode *origin_node, *dir_node, *new_node;
|
||||
|
||||
ret= Xorriso_get_volume(xorriso, &volume, 0);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
|
||||
ret= Xorriso_normalize_img_path(xorriso, xorriso->wdi, origin, eff_origin, 0);
|
||||
if(ret<=0)
|
||||
return(ret);
|
||||
ret= Xorriso_node_from_path(xorriso, volume, eff_origin, &origin_node, 0);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
|
||||
dest_ret= Xorriso_normalize_img_path(xorriso, xorriso->wdi, dest, eff_dest,1);
|
||||
if(dest_ret<0)
|
||||
return(dest_ret);
|
||||
if(dest_ret > 0) {
|
||||
if(eff_dest[0] == 0)
|
||||
strcpy(eff_dest, "/");
|
||||
sprintf(xorriso->info_text,
|
||||
"Cloning: Copy address already exists: ");
|
||||
Text_shellsafe(eff_dest, xorriso->info_text, 1);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
} else {
|
||||
/* obtain eff_dest address despite it does not exist */
|
||||
ret= Xorriso_normalize_img_path(xorriso, xorriso->wdi, dest, eff_dest, 2);
|
||||
if(ret<=0)
|
||||
return(ret);
|
||||
}
|
||||
|
||||
/* Obtain parent path and leaf name */
|
||||
strcpy(dir_adr, eff_dest);
|
||||
for(l= strlen(dir_adr); l > 0; ) {
|
||||
if(dir_adr[l - 1] == '/')
|
||||
dir_adr[--l]= 0;
|
||||
else
|
||||
break;
|
||||
}
|
||||
leafname= strrchr(dir_adr, '/');
|
||||
if(leafname == NULL) {
|
||||
leafname= dir_adr;
|
||||
if (leafname[0] == 0) {
|
||||
Xorriso_msgs_submit(xorriso, 0, "Empty file name as clone destination",
|
||||
0, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
} else {
|
||||
*leafname= 0;
|
||||
leafname++;
|
||||
if(dir_adr[0] != 0) {
|
||||
/* Ensure existence of destination directory */
|
||||
ret= Xorriso_graft_in(xorriso, boss_iter, NULL, dir_adr,
|
||||
(off_t) 0, (off_t) 0, 1);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
}
|
||||
}
|
||||
|
||||
ret= Xorriso_node_from_path(xorriso, volume, dir_adr, &dir_node, 0);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
new_parent= (IsoDir *) dir_node;
|
||||
|
||||
ret = iso_tree_clone(origin_node, new_parent, leafname, &new_node, flag & 1);
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
if(ret < 0) {
|
||||
Xorriso_cannot_clone(xorriso, eff_origin, eff_dest, ret, 0);
|
||||
return(0);
|
||||
}
|
||||
Xorriso_set_change_pending(xorriso, 0);
|
||||
if(!(flag & 2)) {
|
||||
strcpy(xorriso->info_text, "Cloned in ISO image: ");
|
||||
Text_shellsafe(eff_origin, xorriso->info_text, 1);
|
||||
strcat(xorriso->info_text, " to ");
|
||||
Text_shellsafe(eff_dest, xorriso->info_text, 1);
|
||||
strcat(xorriso->info_text, "\n");
|
||||
Xorriso_info(xorriso, 0);
|
||||
}
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
int Xorriso_clone_under(struct XorrisO *xorriso, char *origin, char *dest,
|
||||
int flag)
|
||||
{
|
||||
int ret, pass;
|
||||
char eff_dest[SfileadrL], eff_origin[SfileadrL], *namept;
|
||||
IsoDir *origin_dir, *dest_dir;
|
||||
IsoDirIter *iter= NULL;
|
||||
IsoNode *origin_node, *new_node;
|
||||
IsoImage *volume;
|
||||
|
||||
ret= Xorriso_get_volume(xorriso, &volume, 0);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
ret= Xorriso_dir_from_path(xorriso, "Copy source", origin, &origin_dir, 0);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
ret= Xorriso_dir_from_path(xorriso, "Copy destination", dest, &dest_dir, 0);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
|
||||
for(pass= 0; pass < 2; pass++) {
|
||||
ret= iso_dir_get_children(origin_dir, &iter);
|
||||
if(ret < 0) {
|
||||
Xorriso_cannot_create_iter(xorriso, ret, 0);
|
||||
{ret= -1; goto ex;}
|
||||
}
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
|
||||
while(iso_dir_iter_next(iter, &origin_node) == 1) {
|
||||
namept= (char *) iso_node_get_name(origin_node);
|
||||
sprintf(eff_origin, "%s/%s", origin, namept);
|
||||
sprintf(eff_dest, "%s/%s", dest, namept);
|
||||
if(pass == 0) {
|
||||
ret= Xorriso_node_from_path(xorriso, volume, eff_dest, &new_node, 1);
|
||||
if(ret < 0)
|
||||
goto ex;
|
||||
if(ret > 0) {
|
||||
sprintf(xorriso->info_text, "Cloning: Copy address already exists: ");
|
||||
Text_shellsafe(eff_dest, xorriso->info_text, 1);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
ret= 0; goto ex;
|
||||
}
|
||||
} else {
|
||||
ret = iso_tree_clone(origin_node, dest_dir, namept, &new_node, 1);
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
if(ret < 0) {
|
||||
Xorriso_cannot_clone(xorriso, eff_origin, eff_dest, ret, 0);
|
||||
ret= 0; goto ex;
|
||||
}
|
||||
}
|
||||
}
|
||||
iso_dir_iter_free(iter);
|
||||
iter= NULL;
|
||||
}
|
||||
Xorriso_set_change_pending(xorriso, 0);
|
||||
ret= 1;
|
||||
ex:;
|
||||
if(iter != NULL)
|
||||
iso_dir_iter_free(iter);
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
|
||||
int Xorriso_set_st_mode(struct XorrisO *xorriso, char *in_path,
|
||||
mode_t mode_and, mode_t mode_or, int flag)
|
||||
{
|
||||
@ -1881,8 +1656,8 @@ int Xorriso_widen_hardlink(struct XorrisO *xorriso, void * boss_iter,
|
||||
|
||||
/* >>> compare_result bit17 = is_split */;
|
||||
|
||||
ret= Xorriso_update_interpreter(xorriso, boss_iter, NULL,
|
||||
compare_result, disk_path, abs_path, 1);
|
||||
ret= Xorriso_update_interpreter(xorriso, boss_iter, compare_result, disk_path,
|
||||
abs_path, 1);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
return(ret);
|
||||
@ -2111,13 +1886,10 @@ int Xorriso_findi_action(struct XorrisO *xorriso, struct FindjoB *job,
|
||||
Findjob_set_start_path(subjob, abs_path, 0);
|
||||
ret= Xorriso_findi(xorriso, subjob, boss_iter, boss_mem, NULL,
|
||||
abs_path, &dir_stbuf, depth, 1);
|
||||
} else if(action==14 || action==17 || action == 41) {
|
||||
/* compare , update , update_merge */
|
||||
} else if(action==14 || action==17) { /* compare , update */
|
||||
Findjob_get_start_path(job, &iso_prefix, 0);
|
||||
ret= Xorriso_find_compare(xorriso, (void *) boss_iter, (void *) node,
|
||||
abs_path, iso_prefix, target,
|
||||
(action == 17 || action == 41)
|
||||
| ((flag&1)<<1) | ((action == 41) << 2));
|
||||
ret= Xorriso_find_compare(xorriso, (void *) boss_iter, abs_path,
|
||||
iso_prefix, target, (action==17)|((flag&1)<<1));
|
||||
if(ret==2)
|
||||
deleted= 1;
|
||||
if(ret==3)
|
||||
@ -2198,17 +1970,6 @@ int Xorriso_findi_action(struct XorrisO *xorriso, struct FindjoB *job,
|
||||
if(ret > 0)
|
||||
ret= Xorriso_estimate_file_size(xorriso, job, basename, stbuf.st_mode,
|
||||
stbuf.st_size, 0);
|
||||
} else if(action == 42) { /* rm_merge */
|
||||
ret= Xorriso_mark_update_merge(xorriso, show_path, node, 2 | 4);
|
||||
if(ret == 2) {
|
||||
ret= Xorriso_rmi(xorriso, boss_iter, boss_mem, abs_path, 1|hflag);
|
||||
sprintf(xorriso->info_text, "Deleted ");
|
||||
Text_shellsafe(show_path, xorriso->info_text, 1);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "UPDATE", 0);
|
||||
deleted= 1;
|
||||
}
|
||||
} else if(action == 43) { /* clear_merge */
|
||||
ret= Xorriso_mark_update_merge(xorriso, show_path, node, 2 | 4);
|
||||
} else { /* includes : 15 in_iso */
|
||||
sprintf(xorriso->result_line, "%s\n", Text_shellsafe(show_path, sfe, 0));
|
||||
Xorriso_result(xorriso, 0);
|
||||
@ -2611,10 +2372,9 @@ int Xorriso_findi(struct XorrisO *xorriso, struct FindjoB *job,
|
||||
mem= boss_mem;
|
||||
hflag= 1;
|
||||
if(action==1 || action==2 || action==3 || action==17 || action == 28 ||
|
||||
action == 32 || action == 41 || action == 42)
|
||||
action == 32)
|
||||
hflag|= 2; /* need freedom to manipulate image */
|
||||
if(action==14 || action==17 || action == 28 || action == 35 || action == 36 ||
|
||||
action == 41)
|
||||
if(action==14 || action==17 || action == 28 || action == 35 || action == 36)
|
||||
hflag|= 4; /* need LBA sorted iteration for good data reading performance */
|
||||
ret= Xorriso_findi_iter(xorriso, dir_node, &mem,
|
||||
&iter, &node_array, &node_count, &node_idx,
|
||||
@ -3026,92 +2786,3 @@ ex:;
|
||||
return(ret);
|
||||
}
|
||||
|
||||
|
||||
int Xorriso__mark_update_xinfo(void *data, int flag)
|
||||
{
|
||||
/* data is an int disguised as pointer. It does not point to memory. */
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
int Xorriso__mark_update_cloner(void *old_data, void **new_data, int flag)
|
||||
{
|
||||
*new_data= NULL;
|
||||
if(flag)
|
||||
return(ISO_XINFO_NO_CLONE);
|
||||
if(old_data == NULL)
|
||||
return(0);
|
||||
/* data is an int disguised as pointer. It does not point to memory. */
|
||||
*new_data= old_data;
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
||||
/* @param flag bit0= found on disk
|
||||
bit1= inquire visit-found status:
|
||||
1=not visited, 2=not found, 3=found
|
||||
bit2= with bit1: delete xinfo before returning status
|
||||
*/
|
||||
int Xorriso_mark_update_merge(struct XorrisO *xorriso, char *path,
|
||||
void *in_node, int flag)
|
||||
{
|
||||
int ret;
|
||||
void *xipt= NULL;
|
||||
IsoNode *node;
|
||||
|
||||
if(in_node == NULL) {
|
||||
ret= Xorriso_node_from_path(xorriso, NULL, path, &node, 0);
|
||||
if(ret <= 0)
|
||||
return(ret);
|
||||
} else
|
||||
node= (IsoNode *) in_node;
|
||||
ret= iso_node_get_xinfo(node, Xorriso__mark_update_xinfo, &xipt);
|
||||
if(ret < 0) {
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
Xorriso_report_iso_error(xorriso, "", ret,
|
||||
"Error when looking for update_merge xinfo",
|
||||
0, "FAILURE", 1);
|
||||
return(0);
|
||||
}
|
||||
if(flag & 2) { /* Inquire status and optionally delete xinfo */
|
||||
if(ret == 0)
|
||||
return(1);
|
||||
if(flag & 4) {
|
||||
ret= iso_node_remove_xinfo(node, Xorriso__mark_update_xinfo);
|
||||
if(ret < 0) {
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
Xorriso_report_iso_error(xorriso, "", ret,
|
||||
"Error when removing update_merge xinfo",
|
||||
0, "FAILURE", 1);
|
||||
return(0);
|
||||
}
|
||||
}
|
||||
if(((char *) &xipt)[0])
|
||||
return(3);
|
||||
return(2);
|
||||
}
|
||||
/* xipt is a byte value disguised as void pointer */
|
||||
if(ret == 1) {
|
||||
if(((char *) &xipt)[0])
|
||||
return(1);
|
||||
if(!(flag & 1))
|
||||
return(1);
|
||||
} else
|
||||
((char *) &xipt)[0]= 0;
|
||||
if(flag & 1)
|
||||
((char *) &xipt)[0]= 1;
|
||||
ret= iso_node_remove_xinfo(node, Xorriso__mark_update_xinfo);
|
||||
if(ret < 0)
|
||||
goto set_error;
|
||||
ret= iso_node_add_xinfo(node, Xorriso__mark_update_xinfo, xipt);
|
||||
if(ret <= 0) {
|
||||
set_error:;
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
Xorriso_report_iso_error(xorriso, "", ret,
|
||||
"Error when trying to set update_merge xinfo",
|
||||
0, "FAILURE", 1);
|
||||
return(0);
|
||||
}
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
@ -67,8 +67,6 @@ int Xorriso_all_node_array(struct XorrisO *xorriso, int addon_nodes, int flag);
|
||||
|
||||
int Xorriso__file_start_lba(IsoNode *node, int *lba, int flag);
|
||||
|
||||
int Xorriso__mark_update_xinfo(void *data, int flag);
|
||||
int Xorriso__mark_update_cloner(void *old_data, void **new_data, int flag);
|
||||
|
||||
#endif /* ! Xorriso_pvt_iso_manip_includeD */
|
||||
|
||||
|
@ -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.
|
||||
|
||||
@ -1472,19 +1472,36 @@ int Xorriso_ls_filev(struct XorrisO *xorriso, char *wd,
|
||||
*/
|
||||
int Xorriso_ls(struct XorrisO *xorriso, int flag)
|
||||
{
|
||||
int ret, i, filec= 0, failed_at, no_sort= 0;
|
||||
int ret, is_dir= 0, i, filec= 0, failed_at, no_sort= 0;
|
||||
IsoNode *node, **node_array= NULL;
|
||||
IsoDir *dir_node;
|
||||
IsoImage *volume;
|
||||
IsoDirIter *iter= NULL;
|
||||
char sfe[5*SfileadrL], sfe2[5*SfileadrL], link_target[SfileadrL], *npt, *rpt;
|
||||
struct stat stbuf;
|
||||
|
||||
rpt= xorriso->result_line;
|
||||
|
||||
ret= Xorriso_dir_from_path(xorriso, "Working directory", xorriso->wdi,
|
||||
&dir_node, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
ret= Xorriso_get_volume(xorriso, &volume, 0);
|
||||
if(ret<=0)
|
||||
return(ret);
|
||||
|
||||
ret= Xorriso_node_from_path(xorriso, volume, xorriso->wdi, &node, 0);
|
||||
if(ret<=0)
|
||||
goto wdi_is_not_a_dir;
|
||||
if(LIBISO_ISDIR(node))
|
||||
is_dir= 1;
|
||||
if(!is_dir) {
|
||||
wdi_is_not_a_dir:;
|
||||
sprintf(xorriso->info_text,
|
||||
"Working directory path does not lead to a directory in ISO image");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
ret= 0; goto ex;
|
||||
}
|
||||
if(flag&2)
|
||||
{ret= 1; goto ex;}
|
||||
|
||||
dir_node= (IsoDir *) node;
|
||||
ret= iso_dir_get_children(dir_node, &iter);
|
||||
if(ret<0) {
|
||||
cannot_create_iter:;
|
||||
@ -2136,34 +2153,6 @@ int Xorriso_node_from_path(struct XorrisO *xorriso, IsoImage *volume,
|
||||
}
|
||||
|
||||
|
||||
int Xorriso_dir_from_path(struct XorrisO *xorriso, char *purpose,
|
||||
char *path, IsoDir **dir_node, int flag)
|
||||
{
|
||||
IsoImage *volume;
|
||||
IsoNode *node;
|
||||
int ret, is_dir= 0;
|
||||
|
||||
ret= Xorriso_get_volume(xorriso, &volume, 0);
|
||||
if(ret<=0)
|
||||
return(ret);
|
||||
|
||||
ret= Xorriso_node_from_path(xorriso, volume, path, &node, 0);
|
||||
if(ret<=0)
|
||||
goto wdi_is_not_a_dir;
|
||||
if(LIBISO_ISDIR(node))
|
||||
is_dir= 1;
|
||||
if(!is_dir) {
|
||||
wdi_is_not_a_dir:;
|
||||
sprintf(xorriso->info_text,
|
||||
"%s path does not lead to a directory in ISO image", purpose);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
*dir_node= (IsoDir *) node;
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
@param flag bit0= do not remove leading slash
|
||||
bit1= append flatly to result_line and put out
|
||||
|
@ -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.
|
||||
|
||||
@ -35,9 +35,6 @@ int Xorriso_get_node_by_path(struct XorrisO *xorriso,
|
||||
char *in_path, char *eff_path,
|
||||
IsoNode **node, int flag);
|
||||
|
||||
int Xorriso_dir_from_path(struct XorrisO *xorriso, char *purpose,
|
||||
char *path, IsoDir **dir_node, int flag);
|
||||
|
||||
int Xorriso_node_get_dev(struct XorrisO *xorriso, IsoNode *node,
|
||||
char *path, dev_t *dev, int flag);
|
||||
|
||||
|
@ -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.
|
||||
|
||||
@ -23,14 +23,7 @@
|
||||
#include <sys/time.h>
|
||||
#include <time.h>
|
||||
#include <errno.h>
|
||||
|
||||
#ifdef HAVE_STDINT_H
|
||||
#include <stdint.h>
|
||||
#else
|
||||
#ifdef HAVE_INTTYPES_H
|
||||
#include <inttypes.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* for -charset */
|
||||
#include <iconv.h>
|
||||
@ -55,7 +48,6 @@
|
||||
#include "xorrisoburn.h"
|
||||
|
||||
#include "lib_mgt.h"
|
||||
#include "iso_manip.h"
|
||||
|
||||
|
||||
int Xorriso_abort(struct XorrisO *xorriso, int flag)
|
||||
@ -204,9 +196,6 @@ LIBISOBURN_MISCONFIGURATION_ = 0;
|
||||
zisofs_ctrl.compression_level;
|
||||
}
|
||||
|
||||
iso_node_xinfo_make_clonable(Xorriso__mark_update_xinfo,
|
||||
Xorriso__mark_update_cloner, 0);
|
||||
|
||||
/* Second initialization. This time with libs. */
|
||||
Xorriso_preparer_string(xorriso, xorriso->preparer_id, 0);
|
||||
|
||||
|
@ -1,13 +1,10 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Produce man page xorriso/xorriso.1 and info file xorriso/xorriso.info
|
||||
# from base file xorriso/xorriso.texi.
|
||||
# Same for xorriso/xorrisofs.texi.
|
||||
# from base file xorris/xorriso.texi.
|
||||
|
||||
( cd xorriso ; makeinfo ./xorriso.texi )
|
||||
( cd xorriso ; makeinfo ./xorrisofs.texi )
|
||||
|
||||
xorriso/make_xorriso_1 -auto
|
||||
xorriso/make_xorriso_1 -auto -xorrisofs
|
||||
|
||||
|
||||
|
@ -3,12 +3,11 @@
|
||||
( cd xorriso ; cc -g -Wall -o make_xorriso_1 make_xorriso_1.c )
|
||||
*/
|
||||
/*
|
||||
Specialized converter from xorriso/xorriso.texi to xorriso/xorriso.1
|
||||
resp. from xorriso/xorrisofs.texi to xorriso/xorrisofs.1
|
||||
Specialized converter from xorriso/xorriso.texi to xorriso/xorriso.1.
|
||||
|
||||
The conversion rules are described at the beginning of xorriso/xorriso.texi
|
||||
|
||||
Copyright 2010 - 2011 Thomas Schmitt, <scdbackup@gmx.net>
|
||||
Copyright 2010 Thomas Schmitt, <scdbackup@gmx.net>
|
||||
|
||||
Provided under GPL version 2 or later.
|
||||
*/
|
||||
@ -229,20 +228,10 @@ int Mx1_convert(struct Mx1 *m, char line_in[256], char line_out[256], int flag)
|
||||
}
|
||||
strcat(buf, "\\");
|
||||
}
|
||||
|
||||
/* Substitute option text */
|
||||
raw= strlen(buf);
|
||||
strcat(buf, word);
|
||||
ret= Mx1_substitute(m, buf, line_out, raw, 0);
|
||||
if(ret <= 0)
|
||||
return(-1);
|
||||
strcpy(buf, line_out);
|
||||
|
||||
strcat(buf, "\\fR");
|
||||
raw= strlen(buf);
|
||||
strcat(buf, remainder);
|
||||
|
||||
/* Substitute arguments text */
|
||||
ret= Mx1_substitute(m, buf, line_out, raw, 0);
|
||||
if(ret <= 0)
|
||||
return(-1);
|
||||
@ -282,8 +271,8 @@ int main(int argc, char **argv)
|
||||
{
|
||||
int ret, l, as_filter= 0, i;
|
||||
char line_in[256], line_out[256], *got;
|
||||
static char name_in[1024]= {"xorriso/xorriso.texi"};
|
||||
static char name_out[1024]= {"xorriso/xorriso.1"};
|
||||
static char name_in[]= {"xorriso/xorriso.texi"};
|
||||
static char name_out[]= {"xorriso/xorriso.1"};
|
||||
struct Mx1 m;
|
||||
FILE *fp_in= stdin, *fp_out= stdout;
|
||||
|
||||
@ -291,10 +280,9 @@ int main(int argc, char **argv)
|
||||
|
||||
if(argc < 2) {
|
||||
usage:;
|
||||
fprintf(stderr, "usage: %s -auto|-filter|[-xorrisofs]\n", argv[0]);
|
||||
fprintf(stderr, " -auto xorriso/xorriso.texi -> xorriso/xorriso.1\n");
|
||||
fprintf(stderr, " -filter stdin -> stdout\n");
|
||||
fprintf(stderr, " -xorrisofs process xorriso/xorrisofs.texi\n");
|
||||
fprintf(stderr, "usage: %s -auto|-filter\n", argv[0]);
|
||||
fprintf(stderr, " -auto xorriso/xorriso.texi -> xorriso/xorriso.1\n");
|
||||
fprintf(stderr, " -filter stdin -> stdout\n");
|
||||
exit(2);
|
||||
}
|
||||
for(i= 1; i < argc; i++) {
|
||||
@ -302,10 +290,7 @@ usage:;
|
||||
as_filter= 1;
|
||||
else if(strcmp(argv[i], "-auto") == 0)
|
||||
as_filter= 0;
|
||||
else if(strcmp(argv[i], "-xorrisofs") == 0) {
|
||||
strcpy(name_in, "xorriso/xorrisofs.texi");
|
||||
strcpy(name_out, "xorriso/xorrisofs.1");
|
||||
} else {
|
||||
else {
|
||||
fprintf(stderr, "%s : unknown option %s\n", argv[0], argv[i]);
|
||||
goto usage;
|
||||
}
|
||||
|
@ -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.0
|
||||
# For unstable uploads and patch level 0 of stable releases:
|
||||
xorriso_pl=""
|
||||
# For higher patch levels of stable releases:
|
||||
@ -189,16 +189,11 @@ copy_files \
|
||||
\
|
||||
xorriso/changelog.txt \
|
||||
xorriso/xorriso_eng.html \
|
||||
xorriso/make_docs.sh \
|
||||
xorriso/xorriso.texi \
|
||||
xorriso/xorriso.info \
|
||||
xorriso/xorrisofs.texi \
|
||||
xorriso/xorrisofs.info \
|
||||
xorriso/make_xorriso_1.c \
|
||||
xorriso/xorriso.1 \
|
||||
xorriso/xorrisofs.1 \
|
||||
xorriso/man_1_xorriso.html \
|
||||
xorriso/man_1_xorrisofs.html \
|
||||
"$lone_dir"/xorriso
|
||||
copy_files COPYRIGHT "$lone_dir"/xorriso
|
||||
|
||||
@ -208,9 +203,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 \
|
||||
|
@ -1,118 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# man_xorriso_to_html.sh - ts A80118 , B10309
|
||||
#
|
||||
# Generates a HTML version of man page xorriso.1
|
||||
#
|
||||
# To be executed in the libisoburn toplevel directory (eg. ./libisoburn-0.1.0)
|
||||
#
|
||||
|
||||
# set -x
|
||||
|
||||
man_dir=$(pwd)"/xorriso"
|
||||
export MANPATH="$man_dir"
|
||||
manpage="xorriso"
|
||||
raw_html=$(pwd)/"xorriso/raw_man_1_xorriso.html"
|
||||
htmlpage=$(pwd)/"xorriso/man_1_xorriso.html"
|
||||
|
||||
if test -r "$man_dir"/"$manpage".1
|
||||
then
|
||||
dummy=dummy
|
||||
else
|
||||
echo "Cannot find readable man page source $1" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -e "$man_dir"/man1
|
||||
then
|
||||
dummy=dummy
|
||||
else
|
||||
ln -s . "$man_dir"/man1
|
||||
fi
|
||||
|
||||
if test "$1" = "-work_as_filter"
|
||||
then
|
||||
|
||||
# set -x
|
||||
|
||||
sed \
|
||||
-e 's/<meta name="generator" content="groff -Thtml, see www.gnu.org">/<meta name="generator" content="groff -Thtml, via man -H, via xorriso\/convert_man_to_html.sh">/' \
|
||||
-e 's/<meta name="Content-Style" content="text\/css">/<meta name="Content-Style" content="text\/css"><META NAME="description" CONTENT="man page of xorriso"><META NAME="keywords" CONTENT="man xorriso, manual, xorriso, CD, CD-RW, CD-R, burning, cdrecord, compatible"><META NAME="robots" CONTENT="follow">/' \
|
||||
-e 's/<title>XORRISO<\/title>/<title>man 1 xorriso<\/title>/' \
|
||||
-e 's/<h1 align=center>XORRISO<\/h1>/<h1 align=center>man 1 xorriso<\/h1>/' \
|
||||
-e 's/<body>/<body BGCOLOR="#F5DEB3" TEXT=#000000 LINK=#0000A0 VLINK=#800000>/' \
|
||||
-e 's/<b>Overview of features:<\/b>/\ <BR><b>Overview of features:<\/b>/' \
|
||||
-e 's/<b>General information paragraphs:<\/b>/\ <BR><b>General information paragraphs:<\/b>/' \
|
||||
-e 's/have a look at section EXAMPLES/have a look at section <A HREF="#EXAMPLES">EXAMPLES<\/A>/' \
|
||||
-e 's/<b>Session model:<\/b>/\ <BR><b>Session model:<\/b>/' \
|
||||
-e 's/<b>Media types and states:<\/b>/\ <BR><b>Media types and states:<\/b>/' \
|
||||
-e 's/<b>Creating, Growing, Modifying, Blind/\ <BR><b>Creating, Growing, Modifying, Blind/' \
|
||||
-e 's/<b>Libburn drives:<\/b>/\ <BR><b>Libburn drives:<\/b>/' \
|
||||
-e 's/^-dev /\ \ -dev /' \
|
||||
-e 's/^-devices /\ \ -devices /' \
|
||||
-e 's/<b>Rock Ridge, POSIX, X\/Open, El Torito, ACL,/\ <BR><b>Rock Ridge, POSIX, X\/Open, El Torito, ACL,/' \
|
||||
-e 's/<b>Command processing:<\/b>/\ <BR><b>Command processing:<\/b>/' \
|
||||
-e 's/<b>Dialog, Readline, Result pager:<\/b>/\ <BR><b>Dialog, Readline, Result pager:<\/b>/' \
|
||||
-e 's/<b>Aquiring source and target drive:<\/b>/\ <BR><b>Aquiring source and target drive:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Influencing the behavior of image/\ <BR><b>Influencing the behavior of image/' \
|
||||
-e 's/<b>Inserting files into ISO image:<\/b>/\ <BR><b>Inserting files into ISO image:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>File manipulations:<\/b>/\ <BR><b>File manipulations:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Tree traversal command -find:<\/b>/\ <BR><b>Tree traversal command -find:<\/b><BR>\ <BR>/' \
|
||||
-e 's/^<p><b>−iso_rr_pattern/<p>\ <BR><b>\−iso_rr_pattern/' \
|
||||
-e 's/EXAMPLES):<br>/<A HREF="#EXAMPLES">EXAMPLES<\/A>):<br>/' \
|
||||
-e 's/<b>Filters for data file content:<\/b>/\ <BR><b>Filters for data file content:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Writing the result, drive control:<\/b>/\ <BR><b>Writing the result, drive control:<\/b><BR>\ <BR>/' \
|
||||
-e 's/^-find \/ /\ \ -find \/ /' \
|
||||
-e 's/<b>Settings for file insertion:<\/b>/\ <BR><b>Settings for file insertion:<\/b><BR>\ <BR>/' \
|
||||
-e 's/^$<\/b> ln -s/\ \ $<\/b> ln -s/' \
|
||||
-e 's/<b>Settings for result writing:<\/b>/\ <BR><b>Settings for result writing:<\/b><BR>\ <BR>/' \
|
||||
-e 's/^706k = 706kB/\ \ 706k = 706kB/' \
|
||||
-e 's/^5540k = 5540kB/\ \ 5540k = 5540kB/' \
|
||||
-e 's/<b>Character sets:<\/b>/\ <BR><b>Character sets:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Exception processing:<\/b>/\ <BR><b>Exception processing:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>El Torito bootable ISO images:<\/b>/\ <BR><b>El Torito bootable ISO images:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Jigdo Template Extraction:<\/b>/\ <BR><b>Jigdo Template Extraction:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Dialog mode control:<\/b>/\ <BR><b>Dialog mode control:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Drive and media related inquiry actions:<\/b>/\ <BR><b>Drive and media related inquiry actions:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Navigation in ISO image/\ <BR><b>Navigation in ISO image/' \
|
||||
-e 's/^filesystem:<\/b>/filesystem:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Evaluation of readability and recovery:<\/b>/\ <BR><b>Evaluation of readability and recovery:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>osirrox ISO-to-disk restore options:<\/b>/\ <BR><b>osirrox ISO-to-disk restore options:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Command compatibility emulations:<\/b>/\ <BR><b>Command compatibility emulations:<\/b><BR>\ <BR>/' \
|
||||
-e 's/^<p><b>−as</<p>\ <BR><b>\−as</' \
|
||||
-e 's/<b>Scripting, dialog and/\ <BR><b>Scripting, dialog and/' \
|
||||
-e 's/^features:<\/b>/features:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Support for frontend/\ <BR><b>Support for frontend/' \
|
||||
-e 's/^listening at stdout:<\/b>/listening at stdout:<\/b><BR>\ <BR>/' \
|
||||
-e 's/xorriso -outdev \/dev\/sr2 \\ -blank fast \\ -pathspecs on/xorriso -outdev \/dev\/sr2 -blank fast -pathspecs on/' \
|
||||
-e 's/\\ -add \\ \/sounds=\/home\/me\/sounds \\ \/pictures \\ -- \\ -rm_r \\/ -add \/sounds=\/home\/me\/sounds \/pictures -- -rm_r /' \
|
||||
-e 's/\/sounds\/indecent \\ \’\/pictures\/\*private\*\’ \\/\/sounds\/indecent \’\/pictures\/*private*\’ /' \
|
||||
-e 's/\/pictures\/confidential \\ -- \\ -add \\/\/pictures\/confidential -- -add/' \
|
||||
-e 's/xorriso -dev \/dev\/sr2 \\ -rm_r \/sounds -- \\ -mv \\/xorriso -dev \/dev\/sr2 -rm_r \/sounds -- -mv /' \
|
||||
-e 's/\/pictures\/confidential \\ \/pictures\/restricted \\ -- \\ -chmod/\/pictures\/confidential \/pictures\/restricted -- -chmod/' \
|
||||
-e 's/go-rwx \/pictures\/restricted -- \\ -pathsspecs on \\ -add \\/go-rwx \/pictures\/restricted -- -pathsspecs on -add /' \
|
||||
-e 's/\/sounds=\/home\/me\/prepared_for_dvd\/sounds_dummy /\/sounds=\/home\/me\/prepared_for_dvd\/sounds_dummy/' \
|
||||
-e 's/\/movies=\/home\/me\/prepared_for_dvd\/movies \\ -- \\ -commit/\/movies=\/home\/me\/prepared_for_dvd\/movies -- -commit/' \
|
||||
-e 's/xorriso -indev \/dev\/sr2 \\ -rm_r \/sounds -- \\/xorriso -indev \/dev\/sr2 -rm_r \/sounds -- /' \
|
||||
-e 's/-outdev \/dev\/sr0 -blank fast \\ -commit -eject all/-outdev \/dev\/sr0 -blank fast -commit -eject all/' \
|
||||
-e 's/See section FILES/See section <A HREF="#FILES">FILES<\/A>/' \
|
||||
-e 's/See section EXAMPLES/See section <A HREF="#EXAMPLES">EXAMPLES<\/A>/' \
|
||||
-e 's/<\/body>/<BR><HR><FONT SIZE=-1><CENTER>(HTML generated from '"$manpage"'.1 on '"$(date)"' by '$(basename "$0")' )<\/CENTER><\/FONT><\/body>/' \
|
||||
<"$2" >"$htmlpage"
|
||||
|
||||
set +x
|
||||
|
||||
chmod u+rw,go+r,go-w "$htmlpage"
|
||||
echo "Emerged file:"
|
||||
ls -lL "$htmlpage"
|
||||
|
||||
else
|
||||
|
||||
export BROWSER='cp "%s" '"$raw_html"
|
||||
man -H "$manpage"
|
||||
"$0" -work_as_filter "$raw_html"
|
||||
rm "$raw_html"
|
||||
rm "$man_dir"/man1
|
||||
|
||||
fi
|
@ -1,79 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# man_xorrisofs_to_html.sh - ts A80118 , B10309
|
||||
#
|
||||
# Generates a HTML version of man page xorrisofs.1
|
||||
#
|
||||
# To be executed in the libisoburn toplevel directory (eg. ./libisoburn-0.1.0)
|
||||
#
|
||||
|
||||
# set -x
|
||||
|
||||
man_dir=$(pwd)"/xorriso"
|
||||
export MANPATH="$man_dir"
|
||||
manpage="xorrisofs"
|
||||
raw_html=$(pwd)/"xorriso/raw_man_1_xorrisofs.html"
|
||||
htmlpage=$(pwd)/"xorriso/man_1_xorrisofs.html"
|
||||
|
||||
if test -r "$man_dir"/"$manpage".1
|
||||
then
|
||||
dummy=dummy
|
||||
else
|
||||
echo "Cannot find readable man page source $1" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -e "$man_dir"/man1
|
||||
then
|
||||
dummy=dummy
|
||||
else
|
||||
ln -s . "$man_dir"/man1
|
||||
fi
|
||||
|
||||
if test "$1" = "-work_as_filter"
|
||||
then
|
||||
|
||||
# set -x
|
||||
|
||||
sed \
|
||||
-e 's/<meta name="generator" content="groff -Thtml, see www.gnu.org">/<meta name="generator" content="groff -Thtml, via man -H, via xorriso\/convert_man_to_html.sh">/' \
|
||||
-e 's/<meta name="Content-Style" content="text\/css">/<meta name="Content-Style" content="text\/css"><META NAME="description" CONTENT="man page of xorriso"><META NAME="keywords" CONTENT="man xorrisofs, manual, xorrisofs, ISO 9660, mkisofs, compatible"><META NAME="robots" CONTENT="follow">/' \
|
||||
-e 's/<title>XORRISOFS<\/title>/<title>man 1 xorrisofs<\/title>/' \
|
||||
-e 's/<h1 align=center>XORRISOFS<\/h1>/<h1 align=center>man 1 xorrisofs<\/h1>/' \
|
||||
-e 's/<body>/<body BGCOLOR="#F5DEB3" TEXT=#000000 LINK=#0000A0 VLINK=#800000>/' \
|
||||
-e 's/<b>ISO 9660, Rock Ridge, Joliet:<\/b>/\ <BR><b>ISO 9660, Rock Ridge, Joliet:<\/b>/' \
|
||||
-e 's/<b>Inserting files into the ISO image:<\/b>/\ <BR><b>Inserting files into the ISO image:<\/b>/' \
|
||||
-e 's/<b>Relation to program xorriso:<\/b>/\ <BR><b>Relation to program xorriso:<\/b>/' \
|
||||
-e 's/EXAMPLES):<br>/<A HREF="#EXAMPLES">EXAMPLES<\/A>):<br>/' \
|
||||
-e 's/<b>Image loading:<\/b>/\ <BR><b>Image loading:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Settings for file insertion:<\/b>/\ <BR><b>Settings for file insertion:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Settings for image production:<\/b>/\ <BR><b>Settings for image production:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Settings for standards compliance:<\/b>/\ <BR><b>Settings for standards compliance:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Settings for standards extensions:<\/b>/\ <BR><b>Settings for standards extensions:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Settings for file hiding:<\/b>/\ <BR><b>Settings for file hiding:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>ISO image ID strings:<\/b>/\ <BR><b>ISO image ID strings:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>El Torito Bootable ISO images:<\/b>/\ <BR><b>El Torito Bootable ISO images:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>System Area, MBR, other boot blocks:<\/b>/\ <BR><b>System Area, MBR, other boot blocks:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Character sets:<\/b>/\ <BR><b>Character sets:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Jigdo Template Extraction:<\/b>/\ <BR><b>Jigdo Template Extraction:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Miscellaneous options:<\/b>/\ <BR><b>Miscellaneous options:<\/b><BR>\ <BR>/' \
|
||||
\
|
||||
-e 's/<\/body>/<BR><HR><FONT SIZE=-1><CENTER>(HTML generated from '"$manpage"'.1 on '"$(date)"' by '$(basename "$0")' )<\/CENTER><\/FONT><\/body>/' \
|
||||
<"$2" >"$htmlpage"
|
||||
|
||||
set +x
|
||||
|
||||
chmod u+rw,go+r,go-w "$htmlpage"
|
||||
echo "Emerged file:"
|
||||
ls -lL "$htmlpage"
|
||||
|
||||
else
|
||||
|
||||
export BROWSER='cp "%s" '"$raw_html"
|
||||
man -H "$manpage"
|
||||
"$0" -work_as_filter "$raw_html"
|
||||
rm "$raw_html"
|
||||
rm "$man_dir"/man1
|
||||
|
||||
fi
|
@ -94,8 +94,6 @@ int Xorriso_option_acl(struct XorrisO *xorriso, char *mode, int flag)
|
||||
/* Option -add */
|
||||
/* @param flag bit0=do not report the added item
|
||||
bit1=do not reset pacifier, no final pacifier message
|
||||
bit2= prepend ISO working directory in any case
|
||||
bit3= unescape \\
|
||||
*/
|
||||
int Xorriso_option_add(struct XorrisO *xorriso, int argc, char **argv,
|
||||
int *idx, int flag)
|
||||
@ -129,26 +127,19 @@ int Xorriso_option_add(struct XorrisO *xorriso, int argc, char **argv,
|
||||
else
|
||||
rpt= wpt= source;
|
||||
for(; *rpt!=0; rpt++) {
|
||||
if(*rpt=='\\') {
|
||||
if(*rpt=='\\')
|
||||
if(*(rpt+1)=='=')
|
||||
continue;
|
||||
if((flag & 8) && *(rpt + 1) == '\\')
|
||||
rpt++;
|
||||
}
|
||||
*(wpt++)= *rpt;
|
||||
}
|
||||
*wpt= 0;
|
||||
}
|
||||
if(split==0)
|
||||
if(split==0) {
|
||||
strcpy(target, source);
|
||||
if(flag & 4) {
|
||||
} else if(target[0]!='/') {
|
||||
ret= Sfile_prepend_path(xorriso->wdi, target, 0);
|
||||
if(ret<=0) {
|
||||
sprintf(xorriso->info_text, "Effective path gets much too long (%d)",
|
||||
(int) (strlen(xorriso->wdi)+strlen(target)+1));
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
if(ret<=0)
|
||||
goto problem_handler;
|
||||
}
|
||||
}
|
||||
|
||||
ret= Xorriso_normalize_img_path(xorriso, xorriso->wdi, target, eff_path, 2);
|
||||
@ -936,23 +927,6 @@ treatment_patch:;
|
||||
}
|
||||
xorriso->partition_secs_per_head= u;
|
||||
|
||||
} else if(strncmp(treatpt, "partition_cyl_align=", 20)==0) {
|
||||
if(strcmp(treatpt + 20, "auto") == 0)
|
||||
xorriso->system_area_options= (xorriso->system_area_options & ~0x300);
|
||||
else if(strcmp(treatpt + 20, "on") == 0)
|
||||
xorriso->system_area_options=
|
||||
(xorriso->system_area_options & ~0x300) | 0x100;
|
||||
else if(strcmp(treatpt + 20, "off") == 0)
|
||||
xorriso->system_area_options=
|
||||
(xorriso->system_area_options & ~0x300) | 0x200;
|
||||
else {
|
||||
sprintf(xorriso->info_text,
|
||||
"-boot_image %s partition_cyl_align: unknown mode : %s",
|
||||
formpt, treatpt + 20);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
|
||||
return(0);
|
||||
}
|
||||
|
||||
} else if(strncmp(treatpt, "platform_id=", 12)==0) {
|
||||
if(strncmp(treatpt + 12, "0x", 2) == 0)
|
||||
sscanf(treatpt + 14, "%x", &u);
|
||||
@ -1698,17 +1672,6 @@ ex:;
|
||||
}
|
||||
|
||||
|
||||
/* Option -clone */
|
||||
int Xorriso_option_clone(struct XorrisO *xorriso, char *origin, char *dest,
|
||||
int flag)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret= Xorriso_clone_tree(xorriso, NULL, origin, dest, 0);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
|
||||
/* Option -close "on"|"off" */
|
||||
int Xorriso_option_close(struct XorrisO *xorriso, char *mode, int flag)
|
||||
{
|
||||
@ -1913,102 +1876,6 @@ int Xorriso_option_copyright_file(struct XorrisO *xorriso, char *name, int flag)
|
||||
}
|
||||
|
||||
|
||||
/* Option -cp_clone */
|
||||
int Xorriso_option_cp_clone(struct XorrisO *xorriso, int argc, char **argv,
|
||||
int *idx, int flag)
|
||||
{
|
||||
int i, end_idx_dummy, ret, is_dir= 0, was_failure= 0, fret, pass;
|
||||
char eff_origin[SfileadrL], eff_dest[SfileadrL], dest_dir[SfileadrL];
|
||||
char leafname[SfileadrL];
|
||||
int optc= 0;
|
||||
char **optv= NULL;
|
||||
struct stat stbuf;
|
||||
|
||||
ret= Xorriso_cpmv_args(xorriso, "-cp_clone", argc, argv, idx,
|
||||
&optc, &optv, eff_dest, 1);
|
||||
if(ret<=0)
|
||||
goto ex;
|
||||
if(ret == 1 && optc > 1) {
|
||||
nondir_exists:;
|
||||
sprintf(xorriso->info_text,
|
||||
"-cp_clone: Copy address already exists and is not a directory: ");
|
||||
Text_shellsafe(eff_dest, xorriso->info_text, 1);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
{ret= 0; goto ex;}
|
||||
}
|
||||
strcpy(dest_dir, eff_dest);
|
||||
if(optc == 1) {
|
||||
ret= Xorriso_iso_lstat(xorriso, eff_dest, &stbuf, 0);
|
||||
if(ret >= 0) {
|
||||
if(S_ISDIR(stbuf.st_mode))/* target directory exists */
|
||||
is_dir= 1;
|
||||
else
|
||||
goto nondir_exists;
|
||||
}
|
||||
} else {
|
||||
is_dir= 1;
|
||||
ret= Xorriso_mkdir(xorriso, dest_dir, 1 | 2);
|
||||
if(ret < 0)
|
||||
{ret= -(ret != -1); goto ex;}
|
||||
}
|
||||
|
||||
/* Pass 0 checks whether the way is clear, pass 1 does the cloning */
|
||||
for(pass= 0; pass < 2; pass++) {
|
||||
for(i= 0; i<optc; i++) {
|
||||
ret= Xorriso_normalize_img_path(xorriso, xorriso->wdi,
|
||||
optv[i], eff_origin, !!pass);
|
||||
if(ret<=0 || xorriso->request_to_abort)
|
||||
goto problem_handler;
|
||||
if(is_dir) {
|
||||
ret= Sfile_leafname(eff_origin, leafname, 0);
|
||||
if(ret<=0)
|
||||
goto problem_handler;
|
||||
strcpy(eff_dest, dest_dir);
|
||||
ret= Sfile_add_to_path(eff_dest, leafname, 0);
|
||||
if(ret<=0) {
|
||||
sprintf(xorriso->info_text, "Effective path gets much too long (%d)",
|
||||
(int) (strlen(eff_dest)+strlen(leafname)+1));
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
goto problem_handler;
|
||||
}
|
||||
}
|
||||
ret= Xorriso_iso_lstat(xorriso, eff_dest, &stbuf, 0);
|
||||
if(pass == 0) {
|
||||
/* It is ok if both are directories */;
|
||||
if(ret >= 0 && S_ISDIR(stbuf.st_mode)) {
|
||||
ret= Xorriso_iso_lstat(xorriso, eff_origin, &stbuf, 0);
|
||||
if (ret >= 0 && S_ISDIR(stbuf.st_mode))
|
||||
ret= -1;
|
||||
}
|
||||
if(ret >= 0) {
|
||||
sprintf(xorriso->info_text, "Cloning: May not overwrite: ");
|
||||
Text_shellsafe(eff_dest, xorriso->info_text, 1);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
goto problem_handler;
|
||||
}
|
||||
} else {
|
||||
ret= Xorriso_clone_tree(xorriso, NULL, eff_origin, eff_dest, 1);
|
||||
if(ret <= 0)
|
||||
goto problem_handler;
|
||||
}
|
||||
|
||||
continue; /* regular bottom of loop */
|
||||
problem_handler:;
|
||||
was_failure= 1;
|
||||
fret= Xorriso_eval_problem_status(xorriso, ret, 1|2);
|
||||
if(fret>=0)
|
||||
continue;
|
||||
goto ex;
|
||||
}
|
||||
}
|
||||
ret= !was_failure;
|
||||
ex:;
|
||||
Xorriso_opt_args(xorriso, "-cp_clone",
|
||||
argc, argv, *idx, &end_idx_dummy, &optc, &optv, 256);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
|
||||
/* Option -cpr alias -cpri */
|
||||
int Xorriso_option_cpri(struct XorrisO *xorriso, int argc, char **argv,
|
||||
int *idx, int flag)
|
||||
|
@ -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.
|
||||
|
||||
@ -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
|
||||
*/
|
||||
@ -418,8 +399,6 @@ int Xorriso_option_errfile_log(struct XorrisO *xorriso,
|
||||
sprintf(xorriso->info_text, "-errfile_log: Unknown mode %s",
|
||||
Text_shellsafe(mode, sfe, 0));
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
if(fp != NULL)
|
||||
fclose(fp);
|
||||
return(0);
|
||||
}
|
||||
|
||||
@ -896,22 +875,15 @@ not_enough_exec_arguments:;
|
||||
job= new_job;
|
||||
|
||||
} else if(strcmp(cpt, "compare")==0 || strcmp(cpt, "update")==0 ||
|
||||
strcmp(cpt, "widen_hardlinks")==0 ||
|
||||
strcmp(cpt, "update_merge")==0) {
|
||||
strcmp(cpt, "widen_hardlinks")==0) {
|
||||
if(i+1>=end_idx)
|
||||
goto not_enough_exec_arguments;
|
||||
i++;
|
||||
action= 14;
|
||||
if(strcmp(cpt, "update")==0)
|
||||
action= 17;
|
||||
else if(strcmp(cpt, "widen_hardlinks")==0)
|
||||
if(strcmp(cpt, "widen_hardlinks")==0)
|
||||
action= 32;
|
||||
else if(strcmp(cpt, "update_merge") == 0) {
|
||||
action= 41;
|
||||
/* Enter update_merge mode for node adding */
|
||||
xorriso->update_flags|= 1;
|
||||
}
|
||||
|
||||
ret= Xorriso_make_abs_adr(xorriso, xorriso->wdx, argv[i],
|
||||
other_path_start, 1|2|4|8);
|
||||
if(ret<=0)
|
||||
@ -1037,12 +1009,6 @@ not_enough_exec_arguments:;
|
||||
Findjob_set_action_type(job, 39, type, 0);
|
||||
} else if(strcmp(cpt, "estimate_size")==0) {
|
||||
Findjob_set_action_target(job, 40, NULL, 0);
|
||||
} else if(strcmp(cpt, "rm_merge")==0) {
|
||||
Findjob_set_action_target(job, 42, NULL, 0);
|
||||
xorriso->update_flags&= ~1; /* End update_merge mode for node adding */
|
||||
} else if(strcmp(cpt, "clear_merge")==0) {
|
||||
Findjob_set_action_target(job, 43, NULL, 0);
|
||||
xorriso->update_flags&= ~1; /* End update_merge mode for node adding */
|
||||
} else {
|
||||
sprintf(xorriso->info_text, "-find -exec: unknown action %s",
|
||||
Text_shellsafe(argv[i], sfe, 0));
|
||||
@ -1433,8 +1399,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_#\"",
|
||||
@ -1635,11 +1599,6 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
|
||||
" Create empty directories if they do not exist yet.",
|
||||
" -rmdir iso_rr_path [***]",
|
||||
" Delete empty directories.",
|
||||
" -clone iso_rr_path_original iso_rr_path_copy",
|
||||
" Create an ISO copy of an ISO file or ISO directory tree.",
|
||||
" -cp_clone iso_rr_path_original [***] iso_rr_path_dest",
|
||||
" Create ISO to ISO copies according to the rules of cp -r.",
|
||||
"",
|
||||
" -- Default list delimiter marking the end of action argument",
|
||||
" list. It may be changed by option -list_delimiter.",
|
||||
"",
|
||||
@ -1711,7 +1670,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
|
||||
" Give up any unejected drive afterwards.",
|
||||
" -close \"on\"|\"off\"",
|
||||
" If \"on\" then mark the written media as not appendable.",
|
||||
" -padding number[\"k\"|\"m\"]|\"included\"|\"appended\"",
|
||||
" -padding number[\"k\"|\"m\"]",
|
||||
" Append extra bytes to image stream. (Default is 300k)",
|
||||
" -dummy \"on\"|\"off\"",
|
||||
" If \"on\" simulate burning. Refuse if media cannot simulate.",
|
||||
@ -1927,10 +1886,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",
|
||||
|
@ -641,10 +641,6 @@ int Xorriso_option_md5(struct XorrisO *xorriso, char *mode, int flag)
|
||||
xorriso->do_md5|= 8;
|
||||
else if(l == 19 && strncmp(cpt, "stability_check_off", l) == 0)
|
||||
xorriso->do_md5&= ~8;
|
||||
else if(l == 13 && strncmp(cpt, "load_check_on", l) == 0)
|
||||
xorriso->do_md5&= ~32;
|
||||
else if(l == 14 && strncmp(cpt, "load_check_off", l) == 0)
|
||||
xorriso->do_md5|= 32;
|
||||
else {
|
||||
sprintf(xorriso->info_text, "-md5: unknown mode ");
|
||||
Text_shellsafe(cpt, xorriso->info_text, 1);
|
||||
|
@ -54,19 +54,7 @@ int Xorriso_option_pacifier(struct XorrisO *xorriso, char *style, int flag)
|
||||
int Xorriso_option_padding(struct XorrisO *xorriso, char *size, int flag)
|
||||
{
|
||||
double num;
|
||||
|
||||
if(strcmp(size, "included") == 0) {
|
||||
xorriso->do_padding_by_libisofs= 1;
|
||||
return(1);
|
||||
} else if(strcmp(size, "excluded") == 0 || strcmp(size, "appended") == 0) {
|
||||
xorriso->do_padding_by_libisofs= 0;
|
||||
return(1);
|
||||
} else if(size[0] < '0' || size[0] > '9') {
|
||||
sprintf(xorriso->info_text, "-padding: unrecognized non-numerical mode ");
|
||||
Text_shellsafe(size, xorriso->info_text, 1);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
|
||||
return(0);
|
||||
}
|
||||
|
||||
num= Scanf_io_size(size, 0);
|
||||
if(num < 0 || num > 1024.0 * 1024.0 * 1024.0) {
|
||||
sprintf(xorriso->info_text, "-padding: wrong size %.f (allowed: %.f - %.f)",
|
||||
@ -246,38 +234,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);
|
||||
}
|
||||
|
||||
@ -1400,9 +1361,6 @@ int Xorriso_option_uid(struct XorrisO *xorriso, char *uid, int flag)
|
||||
bit2= do not issue pacifier messages at all
|
||||
bit3= recursive: -update_r
|
||||
bit4= do not establish and dispose xorriso->di_array
|
||||
bit5= do not delete files which are not found under
|
||||
disk_path, but rather mark visited files and mark
|
||||
files which were found.
|
||||
*/
|
||||
int Xorriso_option_update(struct XorrisO *xorriso, char *disk_path,
|
||||
char *iso_path, int flag)
|
||||
@ -1489,10 +1447,7 @@ int Xorriso_option_update(struct XorrisO *xorriso, char *disk_path,
|
||||
if(ret >= 0) {
|
||||
argv[0]= eff_dest;
|
||||
argv[1]= "-exec";
|
||||
if(flag & 32)
|
||||
argv[2]= "update_merge";
|
||||
else
|
||||
argv[2]= "update";
|
||||
argv[2]= "update";
|
||||
argv[3]= eff_origin;
|
||||
zero= 0;
|
||||
ret= Xorriso_option_find(xorriso, 4, argv, &zero,
|
||||
@ -1513,18 +1468,7 @@ int Xorriso_option_update(struct XorrisO *xorriso, char *disk_path,
|
||||
argv[3]= eff_dest;
|
||||
zero= 0;
|
||||
ret= Xorriso_option_find(xorriso, 4, argv, &zero, 1|2); /* -findx */
|
||||
if(ret>0 && (!xorriso->do_follow_mount) && !(flag & 32)) {
|
||||
|
||||
/* >>> ??? what about mount points with (flag & 32) ?
|
||||
empty_iso_dir shall delete those which already existed
|
||||
and are freshly excluded. (E.g. by mounting at a non-empty
|
||||
directory, or by new follow rules.)
|
||||
This deletion does not match the idea of merging.
|
||||
For determining the foreign files in a directory which is
|
||||
target of a mount point, one would have to enter that mount
|
||||
point directory. Somewhat contrary to do-not-follow.
|
||||
*/
|
||||
|
||||
if(ret>0 && !xorriso->do_follow_mount) {
|
||||
argv[0]= eff_origin;
|
||||
argv[1]= "-type";
|
||||
argv[2]= "m";
|
||||
@ -1551,17 +1495,13 @@ int Xorriso_option_update(struct XorrisO *xorriso, char *disk_path,
|
||||
ret= -1;
|
||||
}
|
||||
} else {
|
||||
if(flag & 32)
|
||||
xorriso->update_flags|= 1; /* Enter update_merge mode for node adding */
|
||||
/* compare ctime too, no filename reporting, eventually silent */
|
||||
follow_links= (xorriso->do_follow_links || xorriso->do_follow_param) <<28;
|
||||
ret= Xorriso_compare_2_files(xorriso, eff_origin, eff_dest, "", &result,
|
||||
2 | follow_links | ((flag&4)<<27) | (3<<30));
|
||||
if(ret == 0 || (ret > 0 && (flag & 32))) {
|
||||
if(ret > 0)
|
||||
result= 0;
|
||||
uret= Xorriso_update_interpreter(xorriso, NULL, NULL, result, eff_origin,
|
||||
eff_dest, (!!(flag & 32)) << 1);
|
||||
if(ret==0) {
|
||||
uret= Xorriso_update_interpreter(xorriso, NULL, result, eff_origin,
|
||||
eff_dest, 0);
|
||||
if(uret<=0)
|
||||
ret= -1;
|
||||
if(uret==3)
|
||||
@ -1569,7 +1509,7 @@ int Xorriso_option_update(struct XorrisO *xorriso, char *disk_path,
|
||||
}
|
||||
}
|
||||
xorriso->pacifier_interval= mem_pci;
|
||||
if(mem_lut!=xorriso->last_update_time && !(flag & (2 | 4)))
|
||||
if(mem_lut!=xorriso->last_update_time && !(flag&2))
|
||||
Xorriso_pacifier_callback(xorriso, "content bytes read",
|
||||
xorriso->pacifier_count, 0, "", 1);
|
||||
report_outcome:;
|
||||
|
@ -181,9 +181,9 @@ no_memory:;
|
||||
|
||||
ret= 1;
|
||||
ex:;
|
||||
if(patterns!=NULL)
|
||||
free((char *) patterns);
|
||||
if(ret<=0) {
|
||||
if(patterns!=NULL)
|
||||
free((char *) patterns);
|
||||
Sfile_destroy_argv(&filec, &filev, 0);
|
||||
} else {
|
||||
*optc= filec;
|
||||
@ -314,9 +314,8 @@ int Xorriso_cpmv_args(struct XorrisO *xorriso, char *cmd,
|
||||
if(ret==2 || ((flag&1) && *optc > 1 && ret==0)) {
|
||||
is_dir= 1;
|
||||
} else if(*optc > 1) {
|
||||
if(flag & 2)
|
||||
for(i= 0; i<*optc; i++)
|
||||
Xorriso_msgs_submit(xorriso, 0, (*optv)[i], 0, "ERRFILE", 0);
|
||||
for(i= 0; i<*optc; i++)
|
||||
Xorriso_msgs_submit(xorriso, 0, (*optv)[i], 0, "ERRFILE", 0);
|
||||
sprintf(xorriso->info_text,
|
||||
"%s: more than one origin given, destination is a non-directory: %s",
|
||||
cmd, Text_shellsafe(destv[0], sfe, 0));
|
||||
@ -461,14 +460,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",
|
||||
@ -478,7 +477,7 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
|
||||
""
|
||||
};
|
||||
static char arg2_commands[][40]= {
|
||||
"assert_volid","boot_image","clone","compare","compare_r","drive_class",
|
||||
"assert_volid","boot_image","compare","compare_r","drive_class",
|
||||
"errfile_log","error_behavior","extract","extract_single",
|
||||
"jigdo","load","logfile",
|
||||
"map","map_single","page","return_with",
|
||||
@ -498,7 +497,7 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
|
||||
"check_md5","check_md5_r","check_media","check_media_defaults",
|
||||
"chgrp","chgrpi","chgrp_r","chgrp_ri","chmod","chmodi",
|
||||
"chmod_r","chmod_ri","chown","chowni","chown_r","chown_ri",
|
||||
"compare_l","cp_clone","cp_rax","cp_rx","cpr","cpri", "cpax","cpx",
|
||||
"compare_l","cpr","cpri","cp_rax","cp_rx","cpax","cpx",
|
||||
"du","dui","dus","dusi","dux","dusx","external_filter","extract_l",
|
||||
"file_size_limit","find","findi","finds","findx",
|
||||
"getfacl","getfacli","getfacl_r","getfacl_ri",
|
||||
@ -749,10 +748,6 @@ next_command:;
|
||||
(*idx)+= 1;
|
||||
ret= Xorriso_option_chowni(xorriso, arg1, argc, argv, idx, 0);
|
||||
|
||||
} else if(strcmp(cmd,"clone")==0) {
|
||||
(*idx)+= 2;
|
||||
ret= Xorriso_option_clone(xorriso, arg1, arg2, 1);
|
||||
|
||||
} else if(strcmp(cmd,"close")==0) {
|
||||
(*idx)++;
|
||||
ret= Xorriso_option_close(xorriso, arg1, 0);
|
||||
@ -786,16 +781,13 @@ next_command:;
|
||||
(*idx)++;
|
||||
Xorriso_option_copyright_file(xorriso, arg1, 0);
|
||||
|
||||
} else if(strcmp(cmd,"cp_clone") == 0) {
|
||||
ret= Xorriso_option_cp_clone(xorriso, argc, argv, idx, 0);
|
||||
} else if(strcmp(cmd,"cpr")==0 || strcmp(cmd,"cpri")==0) {
|
||||
ret= Xorriso_option_cpri(xorriso, argc, argv, idx, 0);
|
||||
|
||||
} else if(strcmp(cmd,"cp_rx")==0 || strcmp(cmd,"cp_rax")==0) {
|
||||
ret= Xorriso_option_cpx(xorriso, argc, argv, idx,
|
||||
1|((strcmp(cmd,"cp_rax")==0)<<1));
|
||||
|
||||
} else if(strcmp(cmd,"cpr")==0 || strcmp(cmd,"cpri")==0) {
|
||||
ret= Xorriso_option_cpri(xorriso, argc, argv, idx, 0);
|
||||
|
||||
} else if(strcmp(cmd,"cpx")==0 || strcmp(cmd,"cpax")==0) {
|
||||
ret= Xorriso_option_cpx(xorriso, argc, argv, idx,
|
||||
(strcmp(cmd,"cpax")==0)<<1);
|
||||
@ -853,10 +845,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 +1145,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);
|
||||
|
||||
@ -1332,6 +1312,7 @@ next_command:;
|
||||
ret= Xorriso_option_temp_mem_limit(xorriso, arg1, 0);
|
||||
|
||||
} else if(strcmp(cmd,"test")==0) { /* This option does not exist. */
|
||||
|
||||
/* install temporary test code here */;
|
||||
|
||||
} else if(strcmp(cmd,"toc")==0) {
|
||||
@ -1588,9 +1569,7 @@ int Xorriso_prescan_args(struct XorrisO *xorriso, int argc, char **argv,
|
||||
ret= Xorriso_option_no_rc(xorriso, 0);
|
||||
if(ret<=0)
|
||||
goto ex;
|
||||
} else if(xorriso->argument_emulation >= 1 &&
|
||||
xorriso->argument_emulation <= 2) {
|
||||
{ret= 1; goto ex;}
|
||||
|
||||
} else if((strcmp(cmd,"dev")==0 || strcmp(cmd,"outdev")==0 ||
|
||||
strcmp(cmd,"indev")==0) &&
|
||||
(strcmp(arg1,"stdio:/dev/fd/1")==0 || strcmp(arg1,"-")==0) &&
|
||||
|
@ -148,24 +148,9 @@ int Sfile_add_to_path(char path[SfileadrL], char *addon, int flag)
|
||||
|
||||
int Sfile_prepend_path(char *prefix, char path[SfileadrL], int flag)
|
||||
{
|
||||
int l, i, slashes, prefix_len, path_len;
|
||||
int l, i;
|
||||
|
||||
l= strlen(prefix);
|
||||
if(l == 0)
|
||||
return(1);
|
||||
|
||||
/* Do not copy slashes between both parts */
|
||||
for(prefix_len= l; prefix_len > 0; prefix_len--)
|
||||
if(prefix[prefix_len - 1] != '/')
|
||||
break;
|
||||
if(prefix_len == 0)
|
||||
prefix_len= strlen(prefix) - 1;
|
||||
path_len= strlen(path);
|
||||
for(slashes= 0; slashes < path_len; slashes++)
|
||||
if(path[slashes] != '/')
|
||||
break;
|
||||
|
||||
l= (strlen(path) - slashes) + prefix_len + 1;
|
||||
l= strlen(path)+strlen(prefix)+1;
|
||||
if(l>=SfileadrL) {
|
||||
|
||||
#ifdef Not_yeT
|
||||
@ -179,16 +164,10 @@ int Sfile_prepend_path(char *prefix, char path[SfileadrL], int flag)
|
||||
return(-1);
|
||||
}
|
||||
l-= strlen(path);
|
||||
if(l < 0) {
|
||||
for(i= slashes; i <= path_len + 1; i++)
|
||||
path[i+l]= path[i];
|
||||
} else if(l > 0) {
|
||||
for(i= path_len + 1; i >= slashes; i--)
|
||||
path[i+l]= path[i];
|
||||
}
|
||||
if(prefix_len > 0)
|
||||
memcpy(path, prefix, prefix_len);
|
||||
path[l - 1 + slashes]= '/';
|
||||
for(i= strlen(path)+1; i>=0; i--)
|
||||
path[i+l]= path[i];
|
||||
strcpy(path,prefix);
|
||||
path[l-1]= '/';
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
@ -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.
|
||||
|
||||
@ -548,7 +548,6 @@ ex:;
|
||||
|
||||
/*
|
||||
@param flag bit0= iso_rr_path is freshly added and up to date
|
||||
bit1= do not mark as changed content (implied by bit0 too)
|
||||
bit2= -follow: this is not a command parameter
|
||||
@return -1= severe error
|
||||
0= not applicable for hard links
|
||||
@ -583,7 +582,7 @@ int Xorriso_hardlink_update(struct XorrisO *xorriso, int *compare_result,
|
||||
it must be updated now, even if it has currently no siblings
|
||||
which it leaves or which it joins.
|
||||
*/
|
||||
if(!(flag & (1 | 2)))
|
||||
if(!(flag & 1))
|
||||
do_overwrite= 1;
|
||||
|
||||
Xorriso__get_di(node, &old_dev, &old_ino, 0);
|
||||
|
@ -106,7 +106,7 @@ get_single:;
|
||||
l= strlen(cpt);
|
||||
if(l >= linesize - base_length - 1) {
|
||||
strncpy(linept, cpt, linesize - 1);
|
||||
line[linesize - 1]= 0;
|
||||
line[sizeof(line)-1]= 0;
|
||||
sprintf(xorriso->info_text,"Input line too long !");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
|
||||
goto new_empty;
|
||||
@ -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";
|
||||
@ -1302,13 +1295,6 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
|
||||
ret= (xorriso->system_area_options & 0x300) >> 8;
|
||||
is_default= (ret == 0);
|
||||
sprintf(line,"-boot_image any partition_cyl_align=%s\n",
|
||||
ret == 0 ? "auto" : ret == 1 ? "on" : "off");
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
|
||||
if((xorriso->system_area_disk_path[0] || !part_table_implicit) &&
|
||||
(xorriso->partition_offset == 0 || (xorriso->system_area_options & 2))) {
|
||||
is_default= ((xorriso->system_area_options & 3) == 0);
|
||||
@ -1630,11 +1616,6 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
|
||||
sprintf(line,"-padding %dk\n", xorriso->padding/1024);
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
is_default= (xorriso->do_padding_by_libisofs == 0);
|
||||
sprintf(line,"-padding %s\n",
|
||||
xorriso->do_padding_by_libisofs ? "included" : "appended");
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
|
||||
is_default= (strcmp(xorriso->report_about_text,"UPDATE")==0);
|
||||
sprintf(line,"-report_about %s\n",xorriso->report_about_text);
|
||||
@ -1810,16 +1791,14 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
|
||||
is_default= ((xorriso->do_md5 & 31) == 0);
|
||||
sprintf(line, "-md5 ");
|
||||
if(xorriso->do_md5 & 1) {
|
||||
if((xorriso->do_md5 & 8) == 8) {
|
||||
strcat(line, "all");
|
||||
if((xorriso->do_md5 & (8)) == (8)) {
|
||||
strcat(line, "all\n");
|
||||
} else {
|
||||
strcat(line, "on");
|
||||
if(xorriso->do_md5 & 8)
|
||||
strcat(line, ":stability_check_on");
|
||||
strcat(line, "\n");
|
||||
}
|
||||
if(xorriso->do_md5 & 32)
|
||||
strcat(line, ":load_check_off");
|
||||
strcat(line, "\n");
|
||||
} else
|
||||
strcat(line, "off\n");
|
||||
if(!(is_default && no_defaults))
|
||||
|
@ -2,7 +2,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.
|
||||
|
||||
@ -25,14 +25,7 @@
|
||||
#include <errno.h>
|
||||
|
||||
#include <fcntl.h>
|
||||
|
||||
#ifdef HAVE_STDINT_H
|
||||
#include <stdint.h>
|
||||
#else
|
||||
#ifdef HAVE_INTTYPES_H
|
||||
#include <inttypes.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef Xorriso_standalonE
|
||||
|
||||
@ -98,7 +91,7 @@ int Xorriso_make_write_options(
|
||||
|
||||
|
||||
/* @param flag bit0= do not write but only prepare and return size in sectors
|
||||
bit1= do not use isoburn wrappers, do not assume libisofs
|
||||
bit1= do not use isoburn wrappers
|
||||
*/
|
||||
int Xorriso_sanitize_image_size(struct XorrisO *xorriso,
|
||||
struct burn_drive *drive, struct burn_disc *disc,
|
||||
@ -148,6 +141,7 @@ no_track:;
|
||||
sessions survive and confuse -rom_toc_scan.
|
||||
*/
|
||||
xorriso->alignment= 32;
|
||||
|
||||
s= isoburn_disc_get_status(drive);
|
||||
if(s == BURN_DISC_BLANK) {
|
||||
/* Count blocks before nwa as part of the image */;
|
||||
@ -158,19 +152,6 @@ no_track:;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!(flag & 2)) {
|
||||
|
||||
#ifdef Xorriso_with_libjtE
|
||||
/* JTE : no multi-session, no_emul_toc, padding in libisofs */
|
||||
if(xorriso->libjte_handle != NULL)
|
||||
padding= 0;
|
||||
#endif /* ! Xorriso_with_libjtE */
|
||||
|
||||
if(xorriso->do_padding_by_libisofs)
|
||||
padding= 0;
|
||||
}
|
||||
|
||||
if(xorriso->alignment > 0) {
|
||||
if(img_sectors > 0) {
|
||||
ret= isoburn_disc_track_lba_nwa(drive, burn_options, 0, &lba, &nwa);
|
||||
@ -179,9 +160,15 @@ no_track:;
|
||||
lba= (nwa + img_sectors + padding) % xorriso->alignment;
|
||||
if(lba > 0)
|
||||
padding+= xorriso->alignment - lba;
|
||||
}
|
||||
} else if(padding < xorriso->alignment)
|
||||
padding= xorriso->alignment;
|
||||
}
|
||||
|
||||
#ifdef Xorriso_with_libjtE
|
||||
if(xorriso->libjte_handle != NULL)
|
||||
padding= 0; /* JTE : no multi-session, no_emul_toc, padding in libisofs */
|
||||
#endif /* ! Xorriso_with_libjtE */
|
||||
|
||||
burn_track_define_data(tracks[0], 0, padding * 2048, 0, BURN_MODE1);
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
|
||||
@ -554,7 +541,7 @@ ex:;
|
||||
int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
||||
{
|
||||
int ret, relax= 0, i, pacifier_speed= 0, data_lba, ext, is_bootable= 0;
|
||||
int freshly_bootable= 0, hide_attr, pad_by_libisofs= 0;
|
||||
int freshly_bootable= 0, hide_attr;
|
||||
char xorriso_id[256], *img_id, sfe[5*SfileadrL], *out_cs, *part_image;
|
||||
struct isoburn_imgen_opts *sopts= NULL;
|
||||
struct burn_drive_info *dinfo, *source_dinfo;
|
||||
@ -571,7 +558,6 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
||||
int profile_number;
|
||||
char profile_name[80];
|
||||
IsoBoot *bootcat_node;
|
||||
uint32_t padding;
|
||||
|
||||
ret= Xorriso_finish_hl_update(xorriso, 0);
|
||||
if(ret <= 0)
|
||||
@ -755,7 +741,6 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
||||
((!!(xorriso->do_md5 & 2)) * isoburn_igopt_session_md5) |
|
||||
((!!(xorriso->do_md5 & 4)) * isoburn_igopt_file_md5) |
|
||||
((!!(xorriso->do_md5 & 8)) * isoburn_igopt_file_stability) |
|
||||
((!!xorriso->do_old_empty) * isoburn_igopt_old_empty) |
|
||||
((flag & 1) * isoburn_igopt_will_cancel);
|
||||
if(xorriso->no_emul_toc & 1)
|
||||
ext|= isoburn_igopt_no_emul_toc;
|
||||
@ -767,10 +752,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);
|
||||
@ -819,22 +801,12 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
isoburn_igopt_attach_jte(sopts, xorriso->libjte_handle);
|
||||
pad_by_libisofs= 1;
|
||||
|
||||
/* Padding to be done by libisofs, not by libburn */
|
||||
isoburn_igopt_set_tail_blocks(sopts, (uint32_t) (xorriso->padding / 2048));
|
||||
}
|
||||
#endif /* Xorriso_with_libjtE */
|
||||
|
||||
if(xorriso->do_padding_by_libisofs || pad_by_libisofs) {
|
||||
/* Padding to be done by libisofs, not by libburn.
|
||||
*/
|
||||
padding= xorriso->padding / 2048;
|
||||
if(xorriso->padding > padding * 2048)
|
||||
padding++;
|
||||
/*
|
||||
fprintf(stderr, "XORRISO_DEBUG: isoburn_igopt_set_tail_blocks(%d)\n",
|
||||
(int) padding);
|
||||
*/
|
||||
isoburn_igopt_set_tail_blocks(sopts, padding);
|
||||
}
|
||||
|
||||
/* Make final abort check before starting expensive activities */
|
||||
ret= Xorriso_eval_problem_status(xorriso, 1, 0);
|
||||
@ -928,11 +900,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 +949,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;
|
||||
@ -1240,7 +1207,6 @@ int Xorriso_pacifier_loop(struct XorrisO *xorriso, struct burn_drive *drive,
|
||||
break;
|
||||
}
|
||||
}
|
||||
iso_image_unref(image);
|
||||
return(1);
|
||||
}
|
||||
|
||||
@ -1765,29 +1731,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 +1794,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 +1921,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;
|
||||
@ -2047,12 +1998,6 @@ int Xorriso_relax_compliance(struct XorrisO *xorriso, char *mode,
|
||||
xorriso->relax_compliance= was;
|
||||
return(0);
|
||||
|
||||
} else if((l == 9 && strncmp(cpt, "old_empty", l) == 0) ||
|
||||
(l == 12 && strncmp(cpt, "old_empty_on", l) == 0)) {
|
||||
xorriso->do_old_empty= 1;
|
||||
} else if(l == 13 && strncmp(cpt, "old_empty_off", l) == 0) {
|
||||
xorriso->do_old_empty= 0;
|
||||
|
||||
} else {
|
||||
if(l<SfileadrL)
|
||||
sprintf(xorriso->info_text, "-compliance: unknown rule '%s'",
|
||||
@ -2081,7 +2026,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 +2050,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)
|
||||
@ -2126,8 +2070,6 @@ int Xorriso_get_relax_text(struct XorrisO *xorriso, char mode[1024],
|
||||
xorriso->untranslated_name_len);
|
||||
if(xorriso->do_iso1999)
|
||||
sprintf(mode + strlen(mode), ":iso_9660_1999");
|
||||
if(xorriso->do_old_empty)
|
||||
sprintf(mode + strlen(mode), ":old_empty");
|
||||
return(1 +
|
||||
(r == Xorriso_relax_compliance_defaulT && !(xorriso->no_emul_toc & 1)
|
||||
&& xorriso->untranslated_name_len == 0 && !xorriso->do_iso1999 &&
|
||||
@ -2200,6 +2142,7 @@ int Xorriso_set_isolinux_options(struct XorrisO *xorriso,
|
||||
if(make_isohybrid_mbr) {
|
||||
sprintf(xorriso->info_text, "Will write isohybrid MBR.");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
|
||||
xorriso->alignment= 512;
|
||||
}
|
||||
ret= el_torito_set_isolinux_options(bootimg,
|
||||
patch_table | (make_isohybrid_mbr << 1),0);
|
||||
@ -2256,11 +2199,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 "Jan 06, 2011"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
@ -757,7 +757,6 @@ are both in effect. This restricts hard linking to other files restored by
|
||||
the same single extract command. -hardlinks "normal_extract" re-enables
|
||||
wide and expensive hardlink accumulation.
|
||||
.br
|
||||
.TP
|
||||
\fB\-acl\fR "on"|"off"
|
||||
Enable or disable processing of ACLs.
|
||||
If enabled, then xorriso will obtain ACLs from disk file objects,
|
||||
@ -771,7 +770,7 @@ Enable or disable processing of xattr attributes in user namespace.
|
||||
If enabled, then xorriso will handle xattr similar to ACL.
|
||||
See also options -getfattr, -setfattr and above paragraph about xattr.
|
||||
.TP
|
||||
\fB\-md5\fR "on"|"all"|"off"|"load_check_off"
|
||||
\fB\-md5\fR "on"|"all"|"off"
|
||||
Enable or disable processing of MD5 checksums for the overall session and for
|
||||
each single data file. If enabled then images get loaded only if eventual
|
||||
checksums tags of superblock and directory tree match properly. The MD5
|
||||
@ -792,15 +791,6 @@ Mode "all" will additionally check during image generation whether the checksum
|
||||
of a data file changed between the time when its reading began and the time
|
||||
when it ended. This implies reading every file twice.
|
||||
.br
|
||||
Mode "load_check_off" together with "on" or "all" will load recorded MD5 sums
|
||||
but not test the recorded checksum tags of superblock and directory tree.
|
||||
This is necessary if growisofs was used as burn program, because it does
|
||||
not overwrite the superblock checksum tag of the first session.
|
||||
Therefore load_check_off is in effect when xorriso -as mkisofs option -M
|
||||
is performed.
|
||||
.br
|
||||
The test can be re-enabled by mode "load_check_on".
|
||||
.br
|
||||
Checksums can be exploited via options -check_md5, -check_md5_r, via find
|
||||
actions get_md5, check_md5, and via -check_media.
|
||||
.TP
|
||||
@ -873,19 +863,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:
|
||||
@ -1073,31 +1050,6 @@ Create empty directories if they do not exist yet.
|
||||
Existence as directory generates a WARNING event, existence as
|
||||
other file causes a FAILURE event.
|
||||
.TP
|
||||
\fB\-clone\fR iso_rr_path_original iso_rr_path_copy
|
||||
Create a copy of the ISO file object iso_rr_path_original with the new
|
||||
address iso_rr_path_copy. If the original is a directory then copy all
|
||||
files and directories underneath. An eventual boot catalog file gets
|
||||
not copied but is silently ignored.
|
||||
.br
|
||||
The copied ISO file objects have the same attributes. Copied data files
|
||||
refer to the same content source as their originals.
|
||||
The copies may then be manipulated independendly of their originals.
|
||||
.br
|
||||
This command will refuse execution if the address iso_rr_path_copy
|
||||
already exists in the ISO tree.
|
||||
.TP
|
||||
\fB\-cp_clone\fR iso_rr_path_original [***] iso_rr_path_dest
|
||||
Create copies of one or more ISO file objects as with command -clone.
|
||||
Eventually merge directories with existing ones, but do not overwrite
|
||||
existing ISO file objects.
|
||||
.br
|
||||
The rules for generating the copy addresses are the same as with
|
||||
command -cpr (see above) resp. shell command cp -r. Other than with -cpr,
|
||||
relative iso_rr_path_original will get prepended the -cd path and not
|
||||
the -cdx path. Consider to -mkdir iso_rr_path_dest before -cp_clone
|
||||
so the copy address does not depend on the number of iso_rr_path_original
|
||||
arguments.
|
||||
.TP
|
||||
.B Settings for file insertion:
|
||||
.TP
|
||||
\fB\-file_size_limit\fR value [value [...]] --
|
||||
@ -1673,16 +1625,6 @@ performs command -update with the found file address as
|
||||
iso_rr_path. The corresponding file address is determined like with above
|
||||
action "compare".
|
||||
.br
|
||||
\fBupdate_merge\fR
|
||||
is like update but does not delete the found file if it is missing on disk.
|
||||
It may be run several times and records with all visited files whether their
|
||||
counterpart on disk has already been seen by one of the update_merge runs.
|
||||
Finally, a -find run with action "rm_merge" may remove all files that
|
||||
saw no counterpart on disk.
|
||||
.br
|
||||
Up to the next "rm_merge" or "clear_merge" all newly inserted files will
|
||||
get marked as having a disk counterpart.
|
||||
.br
|
||||
\fBrm\fR
|
||||
removes the found iso_rr_path from the image if it is not a directory
|
||||
with files in it. I.e. this "rm" includes "rmdir".
|
||||
@ -1691,14 +1633,6 @@ with files in it. I.e. this "rm" includes "rmdir".
|
||||
removes the found iso_rr_path from the image, including whole
|
||||
directory trees.
|
||||
.br
|
||||
\fBrm_merge\fR
|
||||
removes the found iso_rr_path if it was visited by one or more previous actions
|
||||
"update_merge" and saw no counterpart on disk in any of them. The marking from
|
||||
the update actions is removed in any case.
|
||||
.br
|
||||
\fBclear_merge\fR
|
||||
removes an eventual marking from action "update_merge".
|
||||
.br
|
||||
\fBreport_damage\fR
|
||||
classifies files whether they hit a data block that is
|
||||
marked as damaged. The result is printed together with the eventual address
|
||||
@ -2098,9 +2032,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.
|
||||
@ -2125,10 +2056,6 @@ but makes the image incapable of displaying its session history.
|
||||
compliant to ISO 9660:1999. It can record long filenames for readers which
|
||||
do not understand Rock Ridge.
|
||||
.br
|
||||
"old_empty" uses the old way of of giving block addresses in the range
|
||||
of [0,31] to files with no own data content. The new way is to have
|
||||
a dedicated block to which all such files will point.
|
||||
.br
|
||||
Default setting is
|
||||
.br
|
||||
"clear:only_iso_version:deep_paths:long_paths:no_j_force_dots:
|
||||
@ -2339,7 +2266,7 @@ any more (if possible at all with the given type of target media).
|
||||
This is the contrary of cdrecord, wodim, cdrskin option -multi,
|
||||
and is one aspect of growisofs option -dvd-compat.
|
||||
.TP
|
||||
\fB\-padding\fR number["k"|"m"]|"included"|"appended"
|
||||
\fB\-padding\fR number["k"|"m"]
|
||||
Append the given number of extra bytes to the image stream.
|
||||
This is a traditional remedy for a traditional bug in block
|
||||
device read drivers. Needed only for CD recordings in TAO mode.
|
||||
@ -2347,13 +2274,6 @@ Since one can hardly predict on what media an image might end up,
|
||||
xorriso adds the traditional 300k of padding by default to all images.
|
||||
.br
|
||||
For images which will never get to a CD it is safe to use -padding 0 .
|
||||
.br
|
||||
Normally padding is not written as part of the ISO image but appended
|
||||
after the image end. This is -padding mode "appended".
|
||||
.br
|
||||
Emulation command -as "mkisofs" and command -jigdo cause padding to be
|
||||
written as part of the image.
|
||||
The same effect is achieved by -padding mode "included".
|
||||
.TP
|
||||
.B Bootable ISO images:
|
||||
.PP
|
||||
@ -2546,29 +2466,11 @@ absolute start as well as from the partition start.
|
||||
The offset value of an ISO image gets preserved when a new session is added.
|
||||
So the value defined here is only in effect if a new ISO image gets written.
|
||||
.br
|
||||
\fBpartition_hd_cyl=\fRnumber gives the number of heads per cylinder for
|
||||
the partition table. 0 chooses a default value. Maximum is 255.
|
||||
.br
|
||||
\fBpartition_sec_hd=\fRnumber gives the number of sectors per head for
|
||||
the partition table. 0 chooses a default value. Maximum is 63.
|
||||
partition offset. 0 chooses a default value.
|
||||
.br
|
||||
The product partition_sec_hd * partition_hd_cyl * 512 is the cylinder size.
|
||||
It should be divisible by 2048 in order to allow exact alignment.
|
||||
If it is too small to describe the image size by at most 1024 cylinders,
|
||||
then appropriate values of partition_hd_cyl are chosen with
|
||||
partition_sec_hd 32 or 63. If the image is larger than 8,422,686,720 bytes,
|
||||
then the cylinder size constraints cannot be fulfilled.
|
||||
.br
|
||||
\fBpartition_cyl_align=\fRmode controls image size alignment to an integer
|
||||
number of cylinders. It is prescribed by isohybrid specs and it seems to
|
||||
please program fdisk. Cylinder size must be divisible by 2048.
|
||||
Images larger than 8,323,596,288 bytes cannot be aligned.
|
||||
.br
|
||||
Mode "auto" is default. Alignment by padding happens only with
|
||||
"isolinux" "partition_table=on".
|
||||
.br
|
||||
Mode "on" causes alignment by padding with "partition_table=on" for any type.
|
||||
Mode "off" disables alignment for any type.
|
||||
\fBpartition_hd_cyl=\fRnumber gives the number of heads per cylinder for
|
||||
partition offset. 0 chooses a default value.
|
||||
.br
|
||||
\fBmips_path=\fRiso_rr_path declares a data file in the image to be a
|
||||
MIPS Big Endian boot file and causes production of a MIPS Big Endian Volume
|
||||
@ -2883,9 +2785,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
|
||||
@ -3043,8 +2945,8 @@ Print the foreseeable consumption of 2048 byte blocks
|
||||
by next -commit. This can last a while as a -commit gets
|
||||
prepared and only in last moment is revoked by this option.
|
||||
The result depends on several settings and also on the kind of output device.
|
||||
If no -jidgo options are given and not command -as "mkisofs" was used,
|
||||
then -padding (300 kB by default) is not counted as part of the image size.
|
||||
If no -jidgo options are given, then -padding (300 kB by default) is not
|
||||
counted as part of the image size.
|
||||
.TP
|
||||
\fB\-tell_media_space\fR
|
||||
Print available space on output media and the free space after
|
||||
@ -3188,7 +3090,7 @@ not exist in the ISO image. The report format is the same as with command
|
||||
.br
|
||||
\fBadd_missing\fR iso_rr_path_start
|
||||
adds the counterpart if it does not yet
|
||||
exist in the ISO image and marks it for "rm_merge" as non-removable.
|
||||
exist in the ISO image.
|
||||
.br
|
||||
E.g.: -findx /home/thomas -exec add_missing /thomas_on_cd --
|
||||
.br
|
||||
@ -3589,9 +3491,10 @@ file paths and pathspecs.
|
||||
A lot of options are not supported and lead to failure of the mkisofs
|
||||
emulation. Some are ignored, but better do not rely on this tolerance.
|
||||
.br
|
||||
The supported options are documented in detail in xorrisofs.info
|
||||
and in man xorrisofs. The description here is focused on the effect
|
||||
of mkisofs emulation in the context of a xorriso run.
|
||||
-graft-points is equivalent to -pathspecs on. Note that pathspecs without "="
|
||||
are interpreted differently than with xorriso option -add. Directories get
|
||||
merged with the root directory of the ISO image, other filetypes get mapped
|
||||
into that root directory.
|
||||
.br
|
||||
Other than with the "cdrecord" personality there is no automatic -commit at
|
||||
the end of a "mkisofs" option list. Verbosity settings -v (= "UPDATE") and
|
||||
@ -3599,11 +3502,6 @@ the end of a "mkisofs" option list. Verbosity settings -v (= "UPDATE") and
|
||||
persists until things happen like -commit, -rollback, -dev, or end of xorriso.
|
||||
-pacifier gets set to "mkisofs" if files are added to the image.
|
||||
.br
|
||||
-graft-points is equivalent to -pathspecs on. Note that pathspecs without "="
|
||||
are interpreted differently than with xorriso option -add. Directories get
|
||||
merged with the root directory of the ISO image, other filetypes get mapped
|
||||
into that root directory.
|
||||
.br
|
||||
If pathspecs are given and if no output file was chosen before or during the
|
||||
"mkisofs" option list, then standard output (-outdev "-") will get into effect.
|
||||
If -o points to a regular file, then it will be truncated to 0 bytes
|
||||
@ -3618,22 +3516,11 @@ standard output.
|
||||
-print-size inhibits automatic image production at program end. This ban is
|
||||
lifted only if the pending image changes get discarded.
|
||||
.br
|
||||
Eventual padding is counted as part of the ISO image if not option --emul-toc
|
||||
is given.
|
||||
.br
|
||||
If no -iso-level is given, then level 1 is chosen when the first file or
|
||||
directory is added to the image. At the same occasion directory names get
|
||||
allowed to violate the standard by -compliance option allow_dir_id_ext.
|
||||
This may be avoided by option -disallow_dir_id_ext.
|
||||
.br
|
||||
Option -root is supported. Option -old-root is implemented by xorriso
|
||||
commands -mkdir, -cp_clone, -find update_merge, and -find rm_merge.
|
||||
-root and -old-root set command -disk_dev_ino to "ino_only" and -md5 to "on",
|
||||
by default.
|
||||
-disk_dev_ino can be set to "off" by --old-root-no-ino
|
||||
resp. to "on" by --old-root-devno .
|
||||
-md5 can be set to "off" by --old-root-no-md5 .
|
||||
.br
|
||||
Not original mkisofs options are --quoted_path_list ,
|
||||
--hardlinks , --acl ,
|
||||
--xattr , --md5 , --stdio_sync .
|
||||
@ -3679,14 +3566,12 @@ Option -append_partition is supported.
|
||||
-untranslated_name_len number is
|
||||
-compliance untranslated_name_len=number.
|
||||
.br
|
||||
--old-empty is -compliance old_empty.
|
||||
.br
|
||||
The options of genisoimage Jigdo Template Extraction are recognized and
|
||||
performed via xorriso option -jigdo. See the "Alias:" names there for the
|
||||
meaning of the genisoimage options.
|
||||
.br
|
||||
|
||||
Personalities "\fBxorrisofs\fR", "\fBgenisoimage\fR",
|
||||
Personalites "\fBxorrisofs\fR", "\fBgenisoimage\fR",
|
||||
and "\fBgenisofs\fR" are aliases for "mkisofs".
|
||||
.br
|
||||
If xorriso is started with one of the leafnames "xorrisofs", "genisofs",
|
||||
@ -3696,9 +3581,6 @@ I.e. all arguments will be interpreted mkisofs style until "--"
|
||||
is encountered.
|
||||
From then on, options are interpreted as xorriso options.
|
||||
.br
|
||||
--no_rc as first argument of such a program start
|
||||
prevents interpretation of startup files. See section FILES below.
|
||||
.br
|
||||
|
||||
Personality "\fBcdrecord\fR" accepts the options listed with:
|
||||
.br
|
||||
@ -3741,9 +3623,6 @@ If xorriso is started with one of the leafnames "xorrecord", "cdrskin",
|
||||
to the command line arguments. I.e. all arguments will be interpreted cdrecord
|
||||
style until "--" is encountered and an eventual commit happens.
|
||||
From then on, options are interpreted as xorriso options.
|
||||
.br
|
||||
--no_rc as first argument of such a program start
|
||||
prevents interpretation of xorriso startup files. See section FILES below.
|
||||
.TP
|
||||
\fB\-read_mkisofsrc\fR
|
||||
Try one by one to open for reading:
|
||||
@ -3796,12 +3675,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 +3758,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
|
||||
@ -4256,8 +4123,6 @@ $ xorriso -as mkisofs prepared_for_iso/tree1 | \\
|
||||
.br
|
||||
Follow-up sessions are written like this:
|
||||
.br
|
||||
$ dd if=/dev/sr0 count=1 >/dev/null 2>&1
|
||||
.br
|
||||
$ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo)
|
||||
.br
|
||||
$ xorriso -as mkisofs -M /dev/sr0 -C $m prepared_for_iso/tree2 | \\
|
||||
@ -4265,13 +4130,8 @@ $ xorriso -as mkisofs -M /dev/sr0 -C $m prepared_for_iso/tree2 | \\
|
||||
xorriso -as cdrecord -v dev=/dev/sr0 -waiti -multi -eject -
|
||||
.br
|
||||
Always eject the drive tray between sessions. The old sessions
|
||||
get read via /dev/sr0. Its device driver might not be aware
|
||||
of the changed content before it loads the media again.
|
||||
In this case the previous session would not be loaded and the
|
||||
new session would contain only the newly added files.
|
||||
.br
|
||||
For the same reason do not let xorriso -as cdrecord load the media,
|
||||
but rather do this manually or by a program that reads from /dev/sr0.
|
||||
get read via stdio:/dev/sr0 and thus are prone to device driver
|
||||
peculiarities.
|
||||
.br
|
||||
This example works for multi-session media only.
|
||||
Add cdrskin option --grow_overwriteable_iso
|
||||
@ -4378,7 +4238,7 @@ $ xorriso \\
|
||||
.br
|
||||
-not_leaf '*.o' -not_leaf '*.swp' \\
|
||||
.br
|
||||
-update_r /home/thomas/projects /projects \\
|
||||
-update_r /home/thomas/open_source_projects /open_source_projects \\
|
||||
.br
|
||||
-update_r /home/thomas/personal_mail /personal_mail \\
|
||||
.br
|
||||
@ -4421,27 +4281,12 @@ older sessions in the table-of-content. E.g. as superuser:
|
||||
.br
|
||||
# osirrox -mount /dev/sr0 "volid" '*2008_12_05*' /mnt
|
||||
.br
|
||||
.sp 1
|
||||
Above example produces a result similar to -root / -old-root / with mkisofs.
|
||||
For getting the session trees accumulated in the new sessions, let all -update
|
||||
commands use a common parent directory and clone it after updating is done:
|
||||
.br
|
||||
-update_r /home/thomas/projects /current/projects \\
|
||||
.br
|
||||
-update_r /home/thomas/personal_mail /current/personal_mail \\
|
||||
.br
|
||||
-clone /current /"$(date '+%Y_%m_%d_%H%M%S')" \\
|
||||
.br
|
||||
The cloned tree will have a name like /2011_02_12_155700.
|
||||
.br
|
||||
.sp 1
|
||||
Sessions on multi-session media are separated by several MB of unused blocks.
|
||||
So with small sessions the payload capacity can become substantially lower
|
||||
than the overall media capacity. If the remaining space on media does not
|
||||
suffice for the next gap, the drive is supposed to close the media
|
||||
automatically.
|
||||
.br
|
||||
.sp 1
|
||||
\fBBetter do not use your youngest backup for -update_r\fR.
|
||||
Have at least two media which you use alternatingly. So only older backups
|
||||
get endangered by the new write operation, while the newest backup is
|
||||
@ -4522,7 +4367,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,
|
||||
@ -4536,9 +4381,6 @@ The default setting of -check_media abort_file= is:
|
||||
.br
|
||||
.SH SEE ALSO
|
||||
.TP
|
||||
For the mkisofs emulation of xorriso
|
||||
.BR xorrisofs(1)
|
||||
.TP
|
||||
For mounting xorriso generated ISO 9660 images (-t iso9660)
|
||||
.BR mount(8)
|
||||
.TP
|
||||
@ -4568,7 +4410,7 @@ Thomas Schmitt <scdbackup@gmx.net>
|
||||
.br
|
||||
for libburnia-project.org
|
||||
.SH COPYRIGHT
|
||||
Copyright (c) 2007 - 2011 Thomas Schmitt
|
||||
Copyright (c) 2007 - 2010 Thomas Schmitt
|
||||
.br
|
||||
Permission is granted to distribute this text freely. It shall only be
|
||||
modified in sync with the technical properties of xorriso. If you make use
|
||||
|
@ -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 0
|
||||
|
||||
|
||||
/** Eventually something like ".pl01" to indicate a bug fix. Normally empty.
|
||||
@ -586,7 +586,6 @@ int Xorriso_lst_destroy_all(struct Xorriso_lsT **lstring, int flag);
|
||||
int Xorriso_option_abort_on(struct XorrisO *xorriso, char *severity, int flag);
|
||||
|
||||
/* Option -abstract_file */
|
||||
/* @since 0.6.0 */
|
||||
int Xorriso_option_abstract_file(struct XorrisO *xorriso, char *name,
|
||||
int flag);
|
||||
|
||||
@ -613,7 +612,6 @@ int Xorriso_option_alter_date(struct XorrisO *xorriso,
|
||||
int argc, char **argv, int *idx, int flag);
|
||||
|
||||
/* Option -append_partition */
|
||||
/* @since 0.6.4 */
|
||||
int Xorriso_option_append_partition(struct XorrisO *xorriso, char *partno_text,
|
||||
char *type_text, char *image_path, int flag);
|
||||
|
||||
@ -643,7 +641,6 @@ int Xorriso_option_backslash_codes(struct XorrisO *xorriso, char *mode,
|
||||
int Xorriso_option_ban_stdio_write(struct XorrisO *xorriso, int flag);
|
||||
|
||||
/* Option -biblio_file */
|
||||
/* @since 0.6.0 */
|
||||
int Xorriso_option_biblio_file(struct XorrisO *xorriso, char *name, int flag);
|
||||
|
||||
/* Option -blank and -format */
|
||||
@ -706,11 +703,6 @@ int Xorriso_option_chmodi(struct XorrisO *xorriso, char *mode,
|
||||
int Xorriso_option_chowni(struct XorrisO *xorriso, char *uid,
|
||||
int argc, char **argv, int *idx, int flag);
|
||||
|
||||
/* Option -clone */
|
||||
/* @since 1.0.2 */
|
||||
int Xorriso_option_clone(struct XorrisO *xorriso, char *origin, char *dest,
|
||||
int flag);
|
||||
|
||||
/* Option -close "on"|"off" */
|
||||
int Xorriso_option_close(struct XorrisO *xorriso, char *mode, int flag);
|
||||
|
||||
@ -743,15 +735,9 @@ int Xorriso_option_compare(struct XorrisO *xorriso, char *disk_path,
|
||||
int Xorriso_option_compliance(struct XorrisO *xorriso, char *mode, int flag);
|
||||
|
||||
/* Option -copyright_file */
|
||||
/* @since 0.6.0 */
|
||||
int Xorriso_option_copyright_file(struct XorrisO *xorriso, char *name,
|
||||
int flag);
|
||||
|
||||
/* Option -cp_clone */
|
||||
/* @since 1.0.2 */
|
||||
int Xorriso_option_cp_clone(struct XorrisO *xorriso, int argc, char **argv,
|
||||
int *idx, int flag);
|
||||
|
||||
/* Option -cpr alias -cpri */
|
||||
int Xorriso_option_cpri( struct XorrisO *xorriso, int argc, char **argv,
|
||||
int *idx, int flag);
|
||||
@ -788,7 +774,6 @@ int Xorriso_option_disk_dev_ino(struct XorrisO *xorriso, char *mode, int flag);
|
||||
int Xorriso_option_disk_pattern(struct XorrisO *xorriso, char *mode, int flag);
|
||||
|
||||
/* Option -displacement [-]offset */
|
||||
/* @since 0.6.6 */
|
||||
int Xorriso_option_displacement(struct XorrisO *xorriso, char *value,
|
||||
int flag);
|
||||
|
||||
@ -802,11 +787,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
|
||||
*/
|
||||
@ -880,7 +860,6 @@ int Xorriso_option_hardlinks(struct XorrisO *xorriso, char *mode, int flag);
|
||||
int Xorriso_option_help(struct XorrisO *xorriso, int flag);
|
||||
|
||||
/* Option -hide */
|
||||
/* @since 0.6.0 */
|
||||
int Xorriso_option_hide(struct XorrisO *xorriso, char *hide_state,
|
||||
int argc, char **argv, int *idx, int flag);
|
||||
|
||||
@ -892,7 +871,6 @@ int Xorriso_option_iso_rr_pattern(struct XorrisO *xorriso, char *mode,
|
||||
int flag);
|
||||
|
||||
/* Option -jigdo aspect argument */
|
||||
/* @since 0.6.4 */
|
||||
int Xorriso_option_jigdo(struct XorrisO *xorriso, char *aspect, char *arg,
|
||||
int flag);
|
||||
|
||||
@ -1045,15 +1023,9 @@ int Xorriso_option_pathspecs(struct XorrisO *xorriso, char *mode, int flag);
|
||||
int Xorriso_option_pkt_output(struct XorrisO *xorriso, char *mode, int flag);
|
||||
|
||||
/* Option -preparer_id */
|
||||
/* @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
|
||||
@ -1083,7 +1055,6 @@ int Xorriso_option_pwdi(struct XorrisO *xorriso, int flag);
|
||||
int Xorriso_option_pwdx(struct XorrisO *xorriso, int flag);
|
||||
|
||||
/* Option -read_mkisofsrc */
|
||||
/* @since 0.6.0 */
|
||||
int Xorriso_option_read_mkisofsrc(struct XorrisO *xorriso, int flag);
|
||||
|
||||
/* Option -reassure "on"|"tree"|"off" */
|
||||
|
@ -728,7 +728,7 @@ activate them only after image loading.
|
||||
If enabled, then xorriso will handle xattr similar to ACL. See
|
||||
also options -getfattr, -setfattr and above paragraph about xattr.
|
||||
|
||||
-md5 "on"|"all"|"off"|"load_check_off"
|
||||
-md5 "on"|"all"|"off"
|
||||
Enable or disable processing of MD5 checksums for the overall
|
||||
session and for each single data file. If enabled then images get
|
||||
loaded only if eventual checksums tags of superblock and directory
|
||||
@ -747,13 +747,6 @@ activate them only after image loading.
|
||||
the checksum of a data file changed between the time when its
|
||||
reading began and the time when it ended. This implies reading
|
||||
every file twice.
|
||||
Mode "load_check_off" together with "on" or "all" will load
|
||||
recorded MD5 sums but not test the recorded checksum tags of
|
||||
superblock and directory tree. This is necessary if growisofs was
|
||||
used as burn program, because it does not overwrite the superblock
|
||||
checksum tag of the first session. Therefore load_check_off is in
|
||||
effect when xorriso -as mkisofs option -M is performed.
|
||||
The test can be re-enabled by mode "load_check_on".
|
||||
Checksums can be exploited via options -check_md5, -check_md5_r,
|
||||
via find actions get_md5, check_md5, and via -check_media.
|
||||
|
||||
@ -824,19 +817,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
|
||||
|
||||
@ -1007,28 +987,6 @@ filesystem.
|
||||
directory generates a WARNING event, existence as other file
|
||||
causes a FAILURE event.
|
||||
|
||||
-clone iso_rr_path_original iso_rr_path_copy
|
||||
Create a copy of the ISO file object iso_rr_path_original with the
|
||||
new address iso_rr_path_copy. If the original is a directory then
|
||||
copy all files and directories underneath. An eventual boot
|
||||
catalog file gets not copied but is silently ignored.
|
||||
The copied ISO file objects have the same attributes. Copied data
|
||||
files refer to the same content source as their originals. The
|
||||
copies may then be manipulated independendly of their originals.
|
||||
This command will refuse execution if the address iso_rr_path_copy
|
||||
already exists in the ISO tree.
|
||||
|
||||
-cp_clone iso_rr_path_original [***] iso_rr_path_dest
|
||||
Create copies of one or more ISO file objects as with command
|
||||
-clone. Eventually merge directories with existing ones, but do
|
||||
not overwrite existing ISO file objects.
|
||||
The rules for generating the copy addresses are the same as with
|
||||
command -cpr (see above) resp. shell command cp -r. Other than
|
||||
with -cpr, relative iso_rr_path_original will get prepended the
|
||||
-cd path and not the -cdx path. Consider to -mkdir
|
||||
iso_rr_path_dest before -cp_clone so the copy address does not
|
||||
depend on the number of iso_rr_path_original arguments.
|
||||
|
||||
|
||||
File: xorriso.info, Node: SetInsert, Next: Manip, Prev: Insert, Up: Options
|
||||
|
||||
@ -1520,28 +1478,12 @@ File: xorriso.info, Node: CmdFind, Next: Filter, Prev: Manip, Up: Options
|
||||
performs command -update with the found file address as
|
||||
iso_rr_path. The corresponding file address is determined
|
||||
like with above action "compare".
|
||||
update_merge
|
||||
is like update but does not delete the found file if it is
|
||||
missing on disk. It may be run several times and records
|
||||
with all visited files whether their counterpart on disk has
|
||||
already been seen by one of the update_merge runs. Finally,
|
||||
a -find run with action "rm_merge" may remove all files that
|
||||
saw no counterpart on disk.
|
||||
Up to the next "rm_merge" or "clear_merge" all newly inserted
|
||||
files will get marked as having a disk counterpart.
|
||||
rm
|
||||
removes the found iso_rr_path from the image if it is not a
|
||||
directory with files in it. I.e. this "rm" includes "rmdir".
|
||||
rm_r
|
||||
removes the found iso_rr_path from the image, including whole
|
||||
directory trees.
|
||||
rm_merge
|
||||
removes the found iso_rr_path if it was visited by one or
|
||||
more previous actions "update_merge" and saw no counterpart
|
||||
on disk in any of them. The marking from the update actions
|
||||
is removed in any case.
|
||||
clear_merge
|
||||
removes an eventual marking from action "update_merge".
|
||||
report_damage
|
||||
classifies files whether they hit a data block that is marked
|
||||
as damaged. The result is printed together with the eventual
|
||||
@ -1884,8 +1826,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.
|
||||
@ -1906,9 +1846,6 @@ will be written according to the setting of option -acl.
|
||||
"iso_9660_1999" causes the production of an additional directory
|
||||
tree compliant to ISO 9660:1999. It can record long filenames for
|
||||
readers which do not understand Rock Ridge.
|
||||
"old_empty" uses the old way of of giving block addresses in the
|
||||
range of [0,31] to files with no own data content. The new way is
|
||||
to have a dedicated block to which all such files will point.
|
||||
Default setting is
|
||||
"clear:only_iso_version:deep_paths:long_paths:no_j_force_dots:
|
||||
always_gmt:old_rr".
|
||||
@ -2094,7 +2031,7 @@ will be written according to the setting of option -acl.
|
||||
This is the contrary of cdrecord, wodim, cdrskin option -multi,
|
||||
and is one aspect of growisofs option -dvd-compat.
|
||||
|
||||
-padding number["k"|"m"]|"included"|"appended"
|
||||
-padding number["k"|"m"]
|
||||
Append the given number of extra bytes to the image stream. This
|
||||
is a traditional remedy for a traditional bug in block device read
|
||||
drivers. Needed only for CD recordings in TAO mode. Since one can
|
||||
@ -2102,11 +2039,6 @@ will be written according to the setting of option -acl.
|
||||
the traditional 300k of padding by default to all images.
|
||||
For images which will never get to a CD it is safe to use -padding
|
||||
0 .
|
||||
Normally padding is not written as part of the ISO image but
|
||||
appended after the image end. This is -padding mode "appended".
|
||||
Emulation command -as "mkisofs" and command -jigdo cause padding
|
||||
to be written as part of the image. The same effect is achieved
|
||||
by -padding mode "included".
|
||||
|
||||
|
||||
File: xorriso.info, Node: Bootable, Next: Jigdo, Prev: SetWrite, Up: Options
|
||||
@ -2266,26 +2198,10 @@ filesystem and announced by an MBR partition table entry.
|
||||
The offset value of an ISO image gets preserved when a new session
|
||||
is added. So the value defined here is only in effect if a new
|
||||
ISO image gets written.
|
||||
*partition_hd_cyl=*number gives the number of heads per cylinder
|
||||
for the partition table. 0 chooses a default value. Maximum is 255.
|
||||
*partition_sec_hd=*number gives the number of sectors per head for
|
||||
the partition table. 0 chooses a default value. Maximum is 63.
|
||||
The product partition_sec_hd * partition_hd_cyl * 512 is the
|
||||
cylinder size. It should be divisible by 2048 in order to allow
|
||||
exact alignment. If it is too small to describe the image size by
|
||||
at most 1024 cylinders, then appropriate values of
|
||||
partition_hd_cyl are chosen with partition_sec_hd 32 or 63. If the
|
||||
image is larger than 8,422,686,720 bytes, then the cylinder size
|
||||
constraints cannot be fulfilled.
|
||||
*partition_cyl_align=*mode controls image size alignment to an
|
||||
integer number of cylinders. It is prescribed by isohybrid specs
|
||||
and it seems to please program fdisk. Cylinder size must be
|
||||
divisible by 2048. Images larger than 8,323,596,288 bytes cannot
|
||||
be aligned.
|
||||
Mode "auto" is default. Alignment by padding happens only with
|
||||
"isolinux" "partition_table=on".
|
||||
Mode "on" causes alignment by padding with "partition_table=on"
|
||||
for any type. Mode "off" disables alignment for any type.
|
||||
partition offset. 0 chooses a default value.
|
||||
*partition_hd_cyl=*number gives the number of heads per cylinder
|
||||
for partition offset. 0 chooses a default value.
|
||||
*mips_path=*iso_rr_path declares a data file in the image to be a
|
||||
MIPS Big Endian boot file and causes production of a MIPS Big
|
||||
Endian Volume Header. This is mutually exclusive with production
|
||||
@ -2546,8 +2462,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.
|
||||
@ -2685,9 +2602,8 @@ File: xorriso.info, Node: Inquiry, Next: Navigate, Prev: DialogCtl, Up: Opti
|
||||
-commit. This can last a while as a -commit gets prepared and only
|
||||
in last moment is revoked by this option. The result depends on
|
||||
several settings and also on the kind of output device. If no
|
||||
-jidgo options are given and not command -as "mkisofs" was used,
|
||||
then -padding (300 kB by default) is not counted as part of the
|
||||
image size.
|
||||
-jidgo options are given, then -padding (300 kB by default) is not
|
||||
counted as part of the image size.
|
||||
|
||||
-tell_media_space
|
||||
Print available space on output media and the free space after
|
||||
@ -2823,7 +2739,7 @@ File: xorriso.info, Node: Navigate, Next: Verify, Prev: Inquiry, Up: Options
|
||||
image. The report format is the same as with command -compare.
|
||||
add_missing iso_rr_path_start
|
||||
adds the counterpart if it does not yet exist in the ISO
|
||||
image and marks it for "rm_merge" as non-removable.
|
||||
image.
|
||||
E.g.: -findx /home/thomas -exec add_missing /thomas_on_cd --
|
||||
is_full_in_iso
|
||||
reports if the counterpart in the ISO image contains files.
|
||||
@ -3198,19 +3114,16 @@ programs trigger comparable actions.
|
||||
-hide-joliet-list, file paths and pathspecs. A lot of options are
|
||||
not supported and lead to failure of the mkisofs emulation. Some
|
||||
are ignored, but better do not rely on this tolerance.
|
||||
The supported options are documented in detail in xorrisofs.info
|
||||
and in man xorrisofs. The description here is focused on the effect
|
||||
of mkisofs emulation in the context of a xorriso run.
|
||||
-graft-points is equivalent to -pathspecs on. Note that pathspecs
|
||||
without "=" are interpreted differently than with xorriso option
|
||||
-add. Directories get merged with the root directory of the ISO
|
||||
image, other filetypes get mapped into that root directory.
|
||||
Other than with the "cdrecord" personality there is no automatic
|
||||
-commit at the end of a "mkisofs" option list. Verbosity settings
|
||||
-v (= "UPDATE") and -quiet (= "SORRY") persist. The output file,
|
||||
eventually chosen with -o, persists until things happen like
|
||||
-commit, -rollback, -dev, or end of xorriso. -pacifier gets set
|
||||
to "mkisofs" if files are added to the image.
|
||||
-graft-points is equivalent to -pathspecs on. Note that pathspecs
|
||||
without "=" are interpreted differently than with xorriso option
|
||||
-add. Directories get merged with the root directory of the ISO
|
||||
image, other filetypes get mapped into that root directory.
|
||||
If pathspecs are given and if no output file was chosen before or
|
||||
during the "mkisofs" option list, then standard output (-outdev
|
||||
"-") will get into effect. If -o points to a regular file, then
|
||||
@ -3223,19 +3136,11 @@ programs trigger comparable actions.
|
||||
drive to standard output.
|
||||
-print-size inhibits automatic image production at program end.
|
||||
This ban is lifted only if the pending image changes get discarded.
|
||||
Eventual padding is counted as part of the ISO image if not option
|
||||
-emul-toc is given.
|
||||
If no -iso-level is given, then level 1 is chosen when the first
|
||||
file or directory is added to the image. At the same occasion
|
||||
directory names get allowed to violate the standard by -compliance
|
||||
option allow_dir_id_ext. This may be avoided by option
|
||||
-disallow_dir_id_ext.
|
||||
Option -root is supported. Option -old-root is implemented by
|
||||
xorriso commands -mkdir, -cp_clone, -find update_merge, and -find
|
||||
rm_merge. -root and -old-root set command -disk_dev_ino to
|
||||
"ino_only" and -md5 to "on", by default. -disk_dev_ino can be set
|
||||
to "off" by --old-root-no-ino resp. to "on" by --old-root-devno .
|
||||
-md5 can be set to "off" by --old-root-no-md5 .
|
||||
Not original mkisofs options are --quoted_path_list , --hardlinks
|
||||
, --acl , --xattr , --md5 , --stdio_sync . They work like the
|
||||
xorriso options with the same name and hardcoded argument "on",
|
||||
@ -3267,12 +3172,11 @@ programs trigger comparable actions.
|
||||
Option -append_partition is supported.
|
||||
-untranslated_name_len number is -compliance
|
||||
untranslated_name_len=number.
|
||||
--old-empty is -compliance old_empty.
|
||||
The options of genisoimage Jigdo Template Extraction are
|
||||
recognized and performed via xorriso option -jigdo. See the
|
||||
"Alias:" names there for the meaning of the genisoimage options.
|
||||
|
||||
Personalities "*xorrisofs*", "*genisoimage*", and "*genisofs*" are
|
||||
Personalites "*xorrisofs*", "*genisoimage*", and "*genisofs*" are
|
||||
aliases for "mkisofs".
|
||||
If xorriso is started with one of the leafnames "xorrisofs",
|
||||
"genisofs", "mkisofs", or "genisoimage", then it performs
|
||||
@ -3280,8 +3184,6 @@ programs trigger comparable actions.
|
||||
arguments. I.e. all arguments will be interpreted mkisofs style
|
||||
until "--" is encountered. From then on, options are interpreted
|
||||
as xorriso options.
|
||||
--no_rc as first argument of such a program start prevents
|
||||
interpretation of startup files. See section FILES below.
|
||||
|
||||
Personality "*cdrecord*" accepts the options listed with:
|
||||
-as cdrecord -help --
|
||||
@ -3314,8 +3216,6 @@ programs trigger comparable actions.
|
||||
will be interpreted cdrecord style until "--" is encountered and
|
||||
an eventual commit happens. From then on, options are interpreted
|
||||
as xorriso options.
|
||||
--no_rc as first argument of such a program start prevents
|
||||
interpretation of xorriso startup files. See section FILES below.
|
||||
|
||||
-read_mkisofsrc
|
||||
Try one by one to open for reading: ./.mkisofsrc , $MKISOFSRC ,
|
||||
@ -3362,12 +3262,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 +3327,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
|
||||
@ -3779,18 +3667,12 @@ xorriso -as cdrecord -v dev=/dev/sr0 blank=fast -multi -eject -
|
||||
|
||||
Follow-up sessions are written like this:
|
||||
|
||||
$ dd if=/dev/sr0 count=1 >/dev/null 2>&1
|
||||
$ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo)
|
||||
$ xorriso -as mkisofs -M /dev/sr0 -C $m prepared_for_iso/tree2 | \
|
||||
xorriso -as cdrecord -v dev=/dev/sr0 -waiti -multi -eject -
|
||||
|
||||
Always eject the drive tray between sessions. The old sessions get read
|
||||
via /dev/sr0. Its device driver might not be aware of the changed
|
||||
content before it loads the media again. In this case the previous
|
||||
session would not be loaded and the new session would contain only the
|
||||
newly added files.
|
||||
For the same reason do not let xorriso -as cdrecord load the media, but
|
||||
rather do this manually or by a program that reads from /dev/sr0.
|
||||
via stdio:/dev/sr0 and thus are prone to device driver peculiarities.
|
||||
|
||||
This example works for multi-session media only. Add cdrskin option
|
||||
--grow_overwriteable_iso to all -as cdrecord runs in order to enable
|
||||
@ -3892,7 +3774,7 @@ $ xorriso \
|
||||
-dev /dev/sr0 \
|
||||
-volid PROJECTS_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" \
|
||||
-not_leaf '*.o' -not_leaf '*.swp' \
|
||||
-update_r /home/thomas/projects /projects \
|
||||
-update_r /home/thomas/open_source_projects /open_source_projects \
|
||||
-update_r /home/thomas/personal_mail /personal_mail \
|
||||
-commit -toc -check_md5 FAILURE -- -eject all
|
||||
|
||||
@ -3930,15 +3812,6 @@ commands for older sessions in the table-of-content. E.g. as superuser:
|
||||
|
||||
# osirrox -mount /dev/sr0 "volid" '*2008_12_05*' /mnt
|
||||
|
||||
Above example produces a result similar to -root / -old-root / with
|
||||
mkisofs. For getting the session trees accumulated in the new
|
||||
sessions, let all -update commands use a common parent directory and
|
||||
clone it after updating is done:
|
||||
-update_r /home/thomas/projects /current/projects \
|
||||
-update_r /home/thomas/personal_mail /current/personal_mail \
|
||||
-clone /current /"$(date '+%Y_%m_%d_%H%M%S')" \
|
||||
The cloned tree will have a name like /2011_02_12_155700.
|
||||
|
||||
Sessions on multi-session media are separated by several MB of unused
|
||||
blocks. So with small sessions the payload capacity can become
|
||||
substantially lower than the overall media capacity. If the remaining
|
||||
@ -4027,8 +3900,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.
|
||||
@ -4045,9 +3917,6 @@ File: xorriso.info, Node: Seealso, Next: Legal, Prev: Files, Up: Top
|
||||
12 See also
|
||||
***********
|
||||
|
||||
For the mkisofs emulation of xorriso
|
||||
xorrisofs(1)
|
||||
|
||||
For mounting xorriso generated ISO 9660 images (-t iso9660)
|
||||
mount(8)
|
||||
|
||||
@ -4081,7 +3950,7 @@ for libburnia-project.org
|
||||
13.2 Copyright
|
||||
==============
|
||||
|
||||
Copyright (c) 2007 - 2011 Thomas Schmitt
|
||||
Copyright (c) 2007 - 2010 Thomas Schmitt
|
||||
Permission is granted to distribute this text freely. It shall only be
|
||||
modified in sync with the technical properties of xorriso. If you make
|
||||
use of the license to derive modified versions of xorriso then you are
|
||||
@ -4106,26 +3975,26 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
||||
|