Compare commits

...

66 Commits
1.2.0 ... 1.2.2

Author SHA1 Message Date
2a6d5d52b4 Promoted branch to tag 2012-04-02 19:59:37 +00:00
185be192b8 Documented changes and release timestamp 2012-04-02 13:46:20 +00:00
bd2e164f73 Version leap to libisoburn-1.2.0 2012-04-02 13:45:06 +00:00
87501e2cb4 Branching for libisoburn release 1.2.2 2012-04-02 12:14:07 +00:00
1e82214392 drop gprof test, use LOGS for log URIs, so grep -E '(TEST|LOGS) CHECKLIST works too 2012-03-30 20:29:31 +00:00
0d293c93f9 more cleanups so grep TEST works better 2012-03-30 20:23:30 +00:00
6557519066 consolidate auto and manual releng tests 2012-03-30 20:05:32 +00:00
d8ccc062a1 Updated change log and web page 2012-03-28 17:02:48 +00:00
c5381ee1a2 Demanding libisofs-1.2.1 with ./configure --enable-pkg-check-modules 2012-03-27 17:22:33 +00:00
712b012530 Updated help text of texi-to-man converter 2012-03-22 10:39:12 +00:00
0f2d174156 Implemented -as mkisofs option -relaxed-filenames 2012-03-22 10:33:24 +00:00
eaefa189d0 New -compliance option 7bit_ascii 2012-03-22 10:31:38 +00:00
c0e1f4f9f2 File which was omitted when committing rev. 4674 2012-03-22 10:23:39 +00:00
808ea834bb New relaxation option allow_7bit_ascii 2012-03-22 10:20:30 +00:00
e48665cc44 Bug fix: -as mkisofs without -graft-points could noy handle names with "=" 2012-03-22 08:49:33 +00:00
f720a0b1b9 Reacted on warning of cppcheck 2012-03-21 19:35:37 +00:00
bd921d2d99 Reacted on warning of cppcheck 2012-03-21 19:31:28 +00:00
b406e8e93e Reacted on warnings of cppcheck 2012-03-21 19:30:38 +00:00
d005e8f1c2 Bug fix: Relaxation option joliet_rec_mtime and iso1999_rec_mtime had wrong values 2012-03-21 14:11:53 +00:00
85bd616af1 Updated change log and web page 2012-03-14 20:51:12 +00:00
118003067d Adjusted behavior of -as mkisofs option -l 2012-03-14 19:51:36 +00:00
7c34e7c255 Clarified xorriso documentation about deep directories 2012-03-14 15:26:49 +00:00
ba571848fa Adjusted behavior of -as mkisofs option -D 2012-03-14 15:23:53 +00:00
3af66f3c8a Now ignoring -as mkisofs -no-split-symlink-components -no-split-symlink-fields 2012-03-13 10:26:01 +00:00
deee733b0d New -as mkisofs option -rr_reloc, implemented option -hide-rr-moved 2012-03-12 18:09:25 +00:00
c704c9c205 New command -data_cache_size 2012-03-11 16:41:10 +00:00
b42293cd05 New API calls isoburn_ropt_set_data_cache(), isoburn_ropt_get_data_cache() 2012-03-11 16:20:30 +00:00
8f48b854d8 Changed a degugging text about command parameters 2012-03-10 15:35:08 +00:00
0498f81865 New command -rr_reloc_dir 2012-03-10 14:59:44 +00:00
5d00144aa6 New API calls isoburn_igopt_set_rr_reloc(), isoburn_igopt_get_rr_reloc() 2012-03-10 14:51:04 +00:00
1cd812e25a Moved a function 2012-03-10 11:27:15 +00:00
20afcce743 Corrected missing linefeed in message of command -mkdir 2012-03-09 19:00:21 +00:00
fa1ce420a8 Added -hide-rr-moved to the list of ignored -as mkisofs options 2012-03-05 20:49:26 +00:00
43a4695b6a Replaced many occurences of "option" by "command" in comments of xorriso.h 2012-03-05 14:53:27 +00:00
4ba706d8d2 Corrected orthographical errors in libisoburn.h 2012-03-05 14:51:54 +00:00
aa63e1884a Corrected orthographical error in GNU xorriso readme file 2012-03-05 14:42:46 +00:00
c6869a0925 Revised the use of "option" and "ASCII" in xorriso.texi 2012-03-05 12:13:37 +00:00
2d52e9427d Changed xorriso.texi according to proposals by Tony Mancill 2012-03-05 10:32:03 +00:00
9836165089 Added a comment 2012-03-04 09:59:31 +00:00
005627b330 Added a comment 2012-03-04 09:48:04 +00:00
84cbbc4a57 Corrected texts about "command", "argument", "parameter" 2012-03-03 21:16:24 +00:00
26bfb48c39 Mentioned peculiar -changes_pending behavior of filter attaching 2012-03-03 21:14:16 +00:00
dfb641b3b1 Revoked rev 4641. It is not a bug but a feature. E.g. for reading. 2012-03-03 18:50:42 +00:00
d5dd6c96cd New command -changes_pending 2012-03-03 18:29:01 +00:00
f70299dae1 Centralized the inquiry whether an image change is pending 2012-03-03 13:39:50 +00:00
7c42bd8a17 Bug fix: Setting file content filters did not mark image as changed for commit 2012-03-03 10:46:16 +00:00
7156827557 Fixed a problem after blanking, which was introduced by rev 4630. 2012-02-29 13:54:38 +00:00
36d8e2bd62 Updated change log and web page 2012-02-27 17:59:53 +00:00
1186e09ef1 Equipped chapters of xorriso HTML man page with link targets 2012-02-27 17:57:26 +00:00
d09ee8335e New default permission on / directory: rwxr-xr-x 2012-02-27 15:02:25 +00:00
46293e457b Fixed a problem with directing an -extract to the / directory of disk 2012-02-27 14:52:17 +00:00
d40b26e8bd Bug fix: -osirrox on:sort_lba_on -extract from / restored nearly nothing 2012-02-25 19:44:57 +00:00
661ae74800 Enabled speed display with command -extract 2012-02-25 15:49:21 +00:00
67836d9721 Some adjustments in xorriso man page 2012-02-24 20:20:22 +00:00
3c0bc5bc16 More accurate determination of size with check_media what=image 2012-02-14 10:32:43 +00:00
719ef2a6d3 New API calls isoburn_get_attached_start_lba(), isoburn_attach_start_lba() 2012-02-14 10:31:00 +00:00
a61a461fa0 Updated generator script for HTML man page 2012-02-02 09:53:04 +00:00
58486a4fdc Fixed a HTML bug in xorriso 2012-02-02 09:45:30 +00:00
5a0ab5533b Updated change log and web page 2012-02-02 08:27:47 +00:00
2bdc22153e Polished man page about option -x 2012-02-02 08:26:46 +00:00
20ccd705f0 Allowed chunk_size= values up to 1024s 2012-02-01 16:31:48 +00:00
8ade912d76 Reporting correct speed unit with -check_media use=outdev 2012-02-01 16:29:26 +00:00
ec01b598b9 Avoided lots of error messege when checking media in empty drive 2012-02-01 12:26:59 +00:00
fdeb97fc28 New commands -x, -list_arg_sorting 2012-01-31 13:04:28 +00:00
3bd7d5deee Documented changes and release timestamp 2012-01-27 16:01:45 +00:00
400a4f2add Version leap to libisoburn-1.2.1 2012-01-27 16:00:06 +00:00
49 changed files with 3687 additions and 1499 deletions

View File

@ -1,4 +1,19 @@
SVN trunk (to become libisoburn-1.2.0.tar.gz or higher)
libisoburn-1.2.2.tar.gz Mon Apr 02 2012
===============================================================================
* New API calls isoburn_get_attached_start_lba(), isoburn_attach_start_lba()
* New API calls isoburn_igopt_set_rr_reloc(), isoburn_igopt_get_rr_reloc()
* New API calls isoburn_ropt_set_data_cache(), isoburn_ropt_get_data_cache()
* New commands -x, -list_arg_sorting
* New command -rr_reloc_dir
* New command -data_cache_size
* New -as mkisofs option -rr_reloc, implemented option -hide-rr-moved
* Now ignoring -as mkisofs -no-split-symlink-components -no-split-symlink-fields
* Bug fix: -osirrox on:sort_lba_on -extract from / restored nearly nothing
* Bug fix: -as mkisofs without -graft-points could not handle names with "="
* Bug fix: Relaxation options joliet_rec_mtime and iso1999_rec_mtime had wrong values
libisoburn-1.2.0.tar.gz Sat Jan 28 2012
===============================================================================
* Bug fix: mkisofs emulation did not record mtime in ECMA-119 directories
* Bug fix: Program abort while drive tray is loading led to endless loop
@ -8,7 +23,6 @@ SVN trunk (to become libisoburn-1.2.0.tar.gz or higher)
isoburn_igopt_iso1999_rec_mtime
* Made -compliance "rec_mtime" default for xorriso
libisoburn-1.1.8.tar.gz Mon Nov 21 2011
===============================================================================
* Info document and man page for xorrecord

18
README
View File

@ -4,8 +4,8 @@
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.1.8.tar.gz
Copyright (C) 2006-2011 Vreixo Formoso, Thomas Schmitt.
http://files.libburnia-project.org/releases/libisoburn-1.2.2.tar.gz
Copyright (C) 2006-2012 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.1.8 :
- libburn.so.4 , version libburn-1.1.8 or higher
- libisofs.so.6 , version libisofs-1.1.6 or higher
Dynamic library and compile time header requirements for libisoburn-1.2.2 :
- libburn.so.4 , version libburn-1.2.0 or higher
- libisofs.so.6 , version libisofs-1.2.2 or higher
libisoburn and xorriso will not start with libraries which are older than their
include headers seen at compile time.
Obtain libisoburn-1.1.8.tar.gz, take it to a directory of your choice
Obtain libisoburn-1.2.2.tar.gz, take it to a directory of your choice
and do:
tar xzf libisoburn-1.1.8.tar.gz
cd libisoburn-1.1.8
tar xzf libisoburn-1.2.2.tar.gz
cd libisoburn-1.2.2
Within that directory execute:
@ -251,7 +251,7 @@ libburnia-project.org
By Mario Danic <mario.danic@gmail.com>,
Vreixo Formoso <metalpain2002@yahoo.es>
Thomas Schmitt <scdbackup@gmx.net>
Copyright (C) 2006-2011 Mario Danic, Vreixo Formoso, Thomas Schmitt.
Copyright (C) 2006-2012 Mario Danic, Vreixo Formoso, Thomas Schmitt.
We will not raise any legal protest to dynamic linking of our libraries
with applications that are not under GPL, as long as they fulfill

View File

@ -1,4 +1,4 @@
AC_INIT([libisoburn], [1.1.9], [http://libburnia-project.org])
AC_INIT([libisoburn], [1.2.2], [http://libburnia-project.org])
AC_PREREQ([2.50])
dnl AC_CONFIG_HEADER([config.h])
@ -23,8 +23,8 @@ dnl LT_CURREN, LT_AGE, LT_REVISION where SONAME becomes LT_CURRENT - LT_AGE
dnl
dnl These three are only copies to provide libtool with unused LT_RELEASE
ISOBURN_MAJOR_VERSION=1
ISOBURN_MINOR_VERSION=1
ISOBURN_MICRO_VERSION=9
ISOBURN_MINOR_VERSION=2
ISOBURN_MICRO_VERSION=2
dnl ISOBURN_VERSION=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION.$ISOBURN_MICRO_VERSION
@ -37,16 +37,16 @@ dnl Libtool versioning
dnl Generate libisoburn.so.1.x.y
dnl SONAME will become LT_CURRENT - LT_AGE
dnl
dnl ts B11121
dnl ### This is the release version 1.1.8 = libisoburn.so.1.75.0
dnl This is the development version after above stable release
dnl ts B20127
dnl This is the release version 1.2.2 = libisoburn.so.1.79.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 = 76 - 75 = 1 . Library name = libisoburn.so.1.75.0
dnl SONAME = 80 - 79 = 1 . Library name = libisoburn.so.1.79.0
LT_RELEASE=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION
LT_CURRENT=76
LT_AGE=75
LT_CURRENT=80
LT_AGE=79
LT_REVISION=0
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
@ -321,8 +321,8 @@ if test x$enable_pkg_check_modules = xyes; then
dnl If PKG_CHECK_MODULES is to be used after this if-block,
dnl then it might be necessary to perform PKG_PROG_PKG_CONFIG before the block.
LIBBURN_REQUIRED=1.1.9
LIBISOFS_REQUIRED=1.1.7
LIBBURN_REQUIRED=1.2.0
LIBISOFS_REQUIRED=1.2.1
PKG_CHECK_MODULES(LIBBURN, libburn-1 >= $LIBBURN_REQUIRED)
PKG_CHECK_MODULES(LIBISOFS, libisofs-1 >= $LIBISOFS_REQUIRED)
if test x$LIBCDIO_DEF = x; then

View File

@ -1,7 +1,7 @@
/*
data source for libisoburn.
Copyright 2007 - 2010 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
Copyright 2007 - 2012 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
and Thomas Schmitt <scdbackup@gmx.net>
Provided under GPL version 2 or later.
*/
@ -33,17 +33,7 @@
#include "isoburn.h"
/* Cached reading of image tree data */
/* Multi tile: 32 * 64 kB */
/* The size of a single tile.
Powers of 2 only ! Less than 16 makes not much sense.
*/
#define Libisoburn_tile_blockS 32
/* The number of tiles in the cache
*/
#define Libisoburn_cache_tileS 32
/* Cached reading of image tree data by multiple tiles */
/* Debugging only: This reports cache loads on stderr.
@ -52,7 +42,7 @@
struct isoburn_cache_tile {
char cache_data[Libisoburn_tile_blockS * 2048];
char *cache_data;
uint32_t cache_lba;
uint32_t last_error_lba;
uint32_t last_aligned_error_lba;
@ -62,7 +52,9 @@ struct isoburn_cache_tile {
struct isoburn_cached_drive {
struct burn_drive *drive;
struct isoburn_cache_tile tiles[Libisoburn_cache_tileS];
struct isoburn_cache_tile **tiles;
int num_tiles;
int tile_blocks;
int current_age;
/**
@ -92,7 +84,7 @@ int ds_read_block(IsoDataSource *src, uint32_t lba, uint8_t *buffer)
off_t count;
uint32_t aligned_lba;
char msg[80];
struct isoburn_cache_tile *tiles;
struct isoburn_cache_tile **tiles;
struct isoburn_cached_drive *icd;
if(src == NULL || buffer == NULL)
@ -117,7 +109,7 @@ int ds_read_block(IsoDataSource *src, uint32_t lba, uint8_t *buffer)
return ISO_ASSERT_FAILURE;
}
tiles = (struct isoburn_cache_tile *) icd->tiles;
tiles = icd->tiles;
if(icd->displacement_sign == 1) {
if(lba + icd->displacement < lba) {
@ -132,12 +124,13 @@ address_rollover:;
lba -= icd->displacement;
}
aligned_lba= lba & ~(Libisoburn_tile_blockS - 1);
aligned_lba= lba & ~(icd->tile_blocks - 1);
for(i=0; i<Libisoburn_cache_tileS; i++) {
if(aligned_lba == tiles[i].cache_lba && tiles[i].cache_lba != 0xffffffff) {
(tiles[i].cache_hits)++;
memcpy(buffer, tiles[i].cache_data + (lba - aligned_lba) * 2048, 2048);
for (i = 0; i < icd->num_tiles; i++) {
if(aligned_lba == tiles[i]->cache_lba &&
tiles[i]->cache_lba != 0xffffffff) {
(tiles[i]->cache_hits)++;
memcpy(buffer, tiles[i]->cache_data + (lba - aligned_lba) * 2048, 2048);
count= 2048;
ds_inc_age(icd, i, 0);
return 1;
@ -147,37 +140,37 @@ address_rollover:;
/* find oldest tile */
oldest_age= Libisoburn_max_agE;
oldest= 0;
for(i= 0; i<Libisoburn_cache_tileS; i++) {
if(tiles[i].cache_lba == 0xffffffff) {
for(i = 0; i < icd->num_tiles; i++) {
if(tiles[i]->cache_lba == 0xffffffff) {
oldest= i;
break;
}
if(tiles[i].age<oldest_age) {
oldest_age= tiles[i].age;
if(tiles[i]->age < oldest_age) {
oldest_age= tiles[i]->age;
oldest= i;
}
}
tiles[oldest].cache_lba= 0xffffffff; /* invalidate cache */
if(tiles[oldest].last_aligned_error_lba == aligned_lba) {
tiles[oldest]->cache_lba= 0xffffffff; /* invalidate cache */
if(tiles[oldest]->last_aligned_error_lba == aligned_lba) {
ret = 0;
} else {
ret = burn_read_data(d, (off_t) aligned_lba * (off_t) 2048,
(char *) tiles[oldest].cache_data,
Libisoburn_tile_blockS * 2048, &count, 2);
(char *) tiles[oldest]->cache_data,
icd->tile_blocks * 2048, &count, 2);
}
if (ret <= 0 ) {
tiles[oldest].last_aligned_error_lba = aligned_lba;
tiles[oldest]->last_aligned_error_lba = aligned_lba;
/* Read-ahead failure ? Try to read 2048 directly. */
if(tiles[oldest].last_error_lba == lba)
if(tiles[oldest]->last_error_lba == lba)
ret = 0;
else
ret = burn_read_data(d, (off_t) lba * (off_t) 2048, (char *) buffer,
2048, &count, 0);
if (ret > 0)
return 1;
tiles[oldest].last_error_lba = lba;
tiles[oldest]->last_error_lba = lba;
sprintf(msg, "ds_read_block(%lu) returns %lX",
(unsigned long) lba, (unsigned long) ret);
isoburn_msgs_submit(NULL, 0x00060000, msg, 0, "DEBUG", 0);
@ -186,14 +179,14 @@ address_rollover:;
#ifdef Libisoburn_read_cache_reporT
fprintf(stderr, "Tile %2.2d : After %3d hits, new load from %8x , count= %d\n",
oldest, tiles[oldest].cache_hits, aligned_lba, (int) count);
oldest, tiles[oldest]->cache_hits, aligned_lba, (int) count);
#endif
tiles[oldest].cache_lba= aligned_lba;
tiles[oldest].cache_hits= 1;
tiles[oldest]->cache_lba= aligned_lba;
tiles[oldest]->cache_hits= 1;
ds_inc_age(icd, oldest, 0);
memcpy(buffer, tiles[oldest].cache_data + (lba - aligned_lba) * 2048, 2048);
memcpy(buffer, tiles[oldest]->cache_data + (lba - aligned_lba) * 2048, 2048);
count= 2048;
return 1;
@ -212,11 +205,107 @@ static int ds_close(IsoDataSource *src)
return 1;
}
static int isoburn_cache_tile_destroy(struct isoburn_cache_tile **o,
int flag)
{
if (*o == NULL)
return(0);
if ((*o)->cache_data != NULL)
free((*o)->cache_data);
free(*o);
*o = NULL;
return(1);
}
static int isoburn_cache_tile_new(struct isoburn_cache_tile **o,
int tile_blocks, int flag)
{
struct isoburn_cache_tile *t;
*o = t = calloc(1, sizeof(struct isoburn_cache_tile));
if (t == NULL)
goto fail;
t->cache_data = NULL;
t->cache_lba = 0xffffffff;
t->cache_hits = 0;
t->last_error_lba = 0xffffffff;
t->last_aligned_error_lba = 0xffffffff;
t->age= 0;
t->cache_data = calloc(1, tile_blocks * 2048);
if (t->cache_data == NULL)
goto fail;
return(1);
fail:;
isoburn_cache_tile_destroy(o, 0);
return(-1);
}
static int isoburn_cached_drive_destroy(struct isoburn_cached_drive **o,
int flag)
{
struct isoburn_cached_drive *c;
int i;
if (*o == NULL)
return(0);
c= *o;
if (c->tiles != NULL) {
for (i = 0; i < c->num_tiles; i++)
isoburn_cache_tile_destroy(&(c->tiles[i]), 0);
free(c->tiles);
}
free(c);
*o= NULL;
return(1);
}
static int isoburn_cached_drive_new(struct isoburn_cached_drive **o,
struct burn_drive *d, int cache_tiles,
int tile_blocks, int flag)
{
struct isoburn_cached_drive *icd;
int i, ret;
*o = icd = calloc(1,sizeof(struct isoburn_cached_drive));
if (*o == NULL)
return(-1);
icd->drive = d;
icd->tiles = NULL;
icd->num_tiles = cache_tiles;
icd->tile_blocks = tile_blocks;
icd->current_age = 0;
icd->displacement = 0;
icd->displacement_sign = 0;
icd->tiles = calloc(1, sizeof(struct isoburn_cache_tile *) * icd->num_tiles);
if (icd->tiles == NULL)
goto fail;
for (i = 0; i < icd->num_tiles; i++) {
ret = isoburn_cache_tile_new(&(icd->tiles[i]), icd->tile_blocks, 0);
if (ret <= 0)
goto fail;
}
return(1);
fail:;
isoburn_cached_drive_destroy(o, 0);
return(-1);
}
static void ds_free_data(IsoDataSource *src)
{
/* nothing to do */;
if(src->data != NULL)
free(src->data);
struct isoburn_cached_drive *icd;
if(src->data != NULL) {
icd= (struct isoburn_cached_drive *) src->data;
isoburn_cached_drive_destroy(&icd, 0);
}
src->data= NULL;
}
@ -234,37 +323,33 @@ int isoburn_data_source_shutdown(IsoDataSource *src, int flag)
IsoDataSource *isoburn_data_source_new(struct burn_drive *d,
uint32_t displacement, int displacement_sign)
uint32_t displacement, int displacement_sign,
int cache_tiles, int tile_blocks)
{
IsoDataSource *ret;
IsoDataSource *src;
struct isoburn_cached_drive *icd= NULL;
int i;
int ret;
if (d==NULL)
return NULL;
ret = malloc(sizeof(IsoDataSource));
icd = calloc(1,sizeof(struct isoburn_cached_drive));
if (ret == NULL || icd == NULL)
src = malloc(sizeof(IsoDataSource));
if (src == NULL)
return NULL;
ret = isoburn_cached_drive_new(&icd, d, cache_tiles, tile_blocks, 0);
if (ret <= 0) {
free(src);
return NULL;
ret->version = 0;
ret->refcount = 1;
ret->read_block = ds_read_block;
ret->open = ds_open;
ret->close = ds_close;
ret->free_data = ds_free_data;
ret->data = icd;
icd->drive = d;
icd->current_age= 0;
for(i= 0; i<Libisoburn_cache_tileS; i++) {
icd->tiles[i].cache_lba = 0xffffffff;
icd->tiles[i].cache_hits = 0;
icd->tiles[i].last_error_lba = 0xffffffff;
icd->tiles[i].last_aligned_error_lba = 0xffffffff;
icd->tiles[i].age= 0;
}
src->version = 0;
src->refcount = 1;
src->read_block = ds_read_block;
src->open = ds_open;
src->close = ds_close;
src->free_data = ds_free_data;
src->data = icd;
icd->displacement = displacement;
icd->displacement_sign = displacement_sign;
return ret;
return src;
}
@ -274,11 +359,11 @@ static int ds_inc_age(struct isoburn_cached_drive *icd, int idx, int flag)
(icd->current_age)++;
if(icd->current_age>=Libisoburn_max_agE) { /* reset all ages (allow waste) */
for(i= 0; i<Libisoburn_cache_tileS; i++)
(icd->tiles)[i].age= 0;
for(i = 0; i < icd->num_tiles; i++)
(icd->tiles)[i]->age= 0;
icd->current_age= 1;
}
(icd->tiles)[idx].age= icd->current_age;
(icd->tiles)[idx]->age= icd->current_age;
return(1);
}

View File

@ -142,6 +142,7 @@ int isoburn_new(struct isoburn **objpt, int flag)
o->target_iso_head_size= Libisoburn_target_head_sizE;
o->target_iso_head= NULL;
o->image= NULL;
o->image_start_lba= -1;
o->iso_data_source= NULL;
o->read_pacifier= NULL;
o->read_pacifier_handle= NULL;
@ -161,6 +162,9 @@ int isoburn_new(struct isoburn **objpt, int flag)
isoburn_report_iso_error(ret, "Cannot create image object", 0, "FATAL", 0);
goto failed;
}
ret= isoburn_root_defaults(o->image, 0);
if(ret <= 0)
goto failed;
isoburn_link(o, isoburn_list_start, 1);
return(1);
failed:;
@ -477,11 +481,13 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
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);
iso_write_opts_set_allow_deep_paths(wopts, opts->allow_deep_paths);
iso_write_opts_set_rr_reloc(wopts, opts->rr_reloc_dir, opts->rr_reloc_flags);
iso_write_opts_set_allow_longer_paths(wopts, opts->allow_longer_paths);
iso_write_opts_set_max_37_char_filenames(wopts, opts->max_37_char_filenames);
iso_write_opts_set_no_force_dots(wopts, opts->no_force_dots);
iso_write_opts_set_allow_lowercase(wopts, opts->allow_lowercase);
iso_write_opts_set_allow_full_ascii(wopts, opts->allow_full_ascii);
iso_write_opts_set_allow_7bit_ascii(wopts, opts->allow_7bit_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);
@ -771,6 +777,8 @@ int isoburn_ropt_new(struct isoburn_read_opts **new_o, int flag)
"Cannot allocate memory for read options", 0, "FATAL", 0);
return(-1);
}
o->cache_tiles= Libisoburn_default_cache_tileS;
o->cache_tile_blocks= Libisoburn_default_tile_blockS;
o->norock= 0;
o->nojoliet= 0;
o->noiso1999= 1;
@ -807,6 +815,59 @@ int isoburn_ropt_destroy(struct isoburn_read_opts **o, int flag)
}
int isoburn_ropt_set_data_cache(struct isoburn_read_opts *o,
int cache_tiles, int tile_blocks, int flag)
{
int i;
char msg[80];
if(cache_tiles < 1) {
isoburn_msgs_submit(NULL, 0x00060000,
"Requested number of data cache tiles is too small (< 1)",
0, "SORRY", 0);
return(0);
}
if(((double) cache_tiles) * ((double) tile_blocks)
> (double) Libisoburn_cache_max_sizE) {
sprintf(msg, "Requested size of data cache exceeds limit of %.f blocks",
(double) Libisoburn_cache_max_sizE);
isoburn_msgs_submit(NULL, 0x00060000, msg, 0, "SORRY", 0);
return(0);
}
for(i = 1; i <= Libisoburn_cache_max_sizE; i = i << 1)
if(i == tile_blocks)
break;
if(i > Libisoburn_cache_max_sizE) {
isoburn_msgs_submit(NULL, 0x00060000,
"Requested number of blocks per data cache tiles is not a power of 2",
0, "SORRY", 0);
return(0);
}
if(o != NULL) {
o->cache_tiles= cache_tiles;
o->cache_tile_blocks= tile_blocks;
}
return(1);
}
int isoburn_ropt_get_data_cache(struct isoburn_read_opts *o,
int *cache_tiles, int *tile_blocks,
int *set_flag, int flag)
{
if((flag & 1) || o == NULL) {
*cache_tiles= Libisoburn_default_cache_tileS;
*tile_blocks= Libisoburn_default_tile_blockS;
*set_flag= 0;
return(1);
}
*cache_tiles= o->cache_tiles;
*tile_blocks= o->cache_tile_blocks;
*set_flag= 0;
return(1);
}
int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext)
{
o->norock= !!(ext&1);
@ -970,11 +1031,14 @@ int isoburn_igopt_new(struct isoburn_imgen_opts **new_o, int flag)
o->allow_dir_id_ext = 0;
o->omit_version_numbers= 0;
o->allow_deep_paths= 1;
o->rr_reloc_dir= NULL;
o->rr_reloc_flags= 0;
o->allow_longer_paths= 0;
o->max_37_char_filenames= 0;
o->no_force_dots= 0;
o->allow_lowercase= 0;
o->allow_full_ascii= 0;
o->allow_7bit_ascii= 0;
o->joliet_longer_paths= 0;
o->joliet_long_names= 0;
o->always_gmt= 0;
@ -1019,6 +1083,8 @@ int isoburn_igopt_destroy(struct isoburn_imgen_opts **o, int flag)
if(*o==NULL)
return(0);
if((*o)->rr_reloc_dir != NULL)
free((*o)->rr_reloc_dir);
for(i= 0; i < Libisoburn_max_appended_partitionS; i++)
if((*o)->appended_partitions[i] != NULL)
free((*o)->appended_partitions[i]);
@ -1089,6 +1155,7 @@ int isoburn_igopt_set_relaxed(struct isoburn_imgen_opts *o, int relax)
o->joliet_long_names= !!(relax & isoburn_igopt_joliet_long_names);
o->joliet_rec_mtime= !!(relax & isoburn_igopt_joliet_rec_mtime);
o->iso1999_rec_mtime= !!(relax & isoburn_igopt_iso1999_rec_mtime);
o->allow_7bit_ascii= !!(relax & isoburn_igopt_allow_7bit_ascii);
return(1);
}
@ -1106,10 +1173,43 @@ int isoburn_igopt_get_relaxed(struct isoburn_imgen_opts *o, int *relax)
((!!o->allow_dir_id_ext) << 14) |
((!!o->joliet_long_names) << 15) |
((!!o->joliet_rec_mtime) << 16) |
((!!o->iso1999_rec_mtime) << 17);
((!!o->iso1999_rec_mtime) << 17) |
((!!o->allow_full_ascii) << 18);
return(1);
}
int isoburn_igopt_set_rr_reloc(struct isoburn_imgen_opts *o, char *name,
int flags)
{
if(o->rr_reloc_dir != name) {
if(o->rr_reloc_dir != NULL)
free(o->rr_reloc_dir);
o->rr_reloc_dir= NULL;
if(name != NULL) {
o->rr_reloc_dir= strdup(name);
if(o->rr_reloc_dir == NULL) {
isoburn_msgs_submit(NULL, 0x00060000,
"Cannot allocate memory for image generation options",
0, "FATAL", 0);
return(-1);
}
}
}
o->rr_reloc_flags = flags & 1;
return 1;
}
int isoburn_igopt_get_rr_reloc(struct isoburn_imgen_opts *o, char **name,
int *flags)
{
*name= o->rr_reloc_dir;
*flags= o->rr_reloc_flags;
return(1);
}
int isoburn_igopt_set_untranslated_name_len(struct isoburn_imgen_opts *o,
int len)
{

View File

@ -141,6 +141,9 @@ struct isoburn {
/* Libisofs image context */
IsoImage *image;
/* The start LBA of the image */
int image_start_lba;
/* The block data source from which the existing image is read.
*/
IsoDataSource *iso_data_source;
@ -260,7 +263,19 @@ int isoburn_get_msc2(struct isoburn *o,
*/
IsoDataSource *
isoburn_data_source_new(struct burn_drive *d,
uint32_t displacement, int displacement_sign);
uint32_t displacement, int displacement_sign,
int cache_tiles, int tile_blocks);
/** Default settings for above cache_tiles, tile_blocks in newly created
struct isoburn_read_opts.
*/
#define Libisoburn_default_cache_tileS 32
#define Libisoburn_default_tile_blockS 32
/** Maximum size of the cache in 2 kB blocks (1 GB)
*/
#define Libisoburn_cache_max_sizE (1024 * 512)
/** Disable read capabilities of a data source which was originally created
by isoburn_data_source_new(). After this any attempt to read will yield
@ -282,6 +297,12 @@ int isoburn_data_source_shutdown(IsoDataSource *src, int flag);
int isoburn_adjust_target_iso_head(struct isoburn *o,
uint32_t offst, int flag);
/** Initialize the root directory attributes of a freshly created image.
*/
int isoburn_root_defaults(IsoImage *image, int flag);
/**
* Options for image reading.
(Comments here may be outdated. API getter/setter function descriptions
@ -289,6 +310,9 @@ int isoburn_adjust_target_iso_head(struct isoburn *o,
minor correction only.)
*/
struct isoburn_read_opts {
int cache_tiles; /* number of cache tiles */
int cache_tile_blocks;
unsigned int norock:1; /*< Do not read Rock Ridge extensions */
unsigned int nojoliet:1; /*< Do not read Joliet extensions */
unsigned int noiso1999:1; /*< Do not read ISO 9660:1999 enhanced tree */
@ -434,6 +458,21 @@ struct isoburn_imgen_opts {
*/
unsigned int allow_deep_paths :1;
/**
* If not allow_deep_paths is in effect, then it may become
* necessary to relocate directories so that no ECMA-119 file path
* has more than 8 components. These directories are grafted into either
* the root directory of the ISO image or into a dedicated relocation
* directory. For details see libisofs.h, iso_write_opts_set_rr_reloc().
*/
char *rr_reloc_dir; /* IsoNode name in root directory. NULL or
empty text means root itself. */
int rr_reloc_flags; /* bit0= mark auto-created rr_reloc_dir by RE
bit1= not settable via API (used internally)
*/
/**
* Allow path in the ISO-9660 tree to have more than 255 characters.
*/
@ -468,6 +507,13 @@ struct isoburn_imgen_opts {
*/
unsigned int allow_full_ascii :1;
/**
* Like allow_full_ascii, but only allowing 7-bit characters.
* Lowercase letters get mapped to uppercase if not allow_lowercase is set.
* Gets overridden if allow_full_ascii is enabled.
*/
unsigned int allow_7bit_ascii :1;
/**
* Allow paths in the Joliet tree to have more than 240 characters.
*/

View File

@ -105,12 +105,38 @@ IsoImage *isoburn_get_attached_image(struct burn_drive *d)
}
/* API */
int isoburn_get_attached_start_lba(struct burn_drive *d)
{
int ret;
struct isoburn *o= NULL;
ret = isoburn_find_emulator(&o, d, 0);
if (ret < 0 || o == NULL)
return -1;
if(o->image == NULL)
return -1;
return o->image_start_lba;
}
static void isoburn_idle_free_function(void *ignored)
{
return;
}
int isoburn_root_defaults(IsoImage *image, int flag)
{
IsoNode *root_node;
mode_t root_mode= 0755;
root_node= (IsoNode *) iso_image_get_root(image);
iso_node_set_permissions(root_node, root_mode);
return(1);
}
/* API function. See libisoburn.h
*/
int isoburn_read_image(struct burn_drive *d,
@ -133,6 +159,7 @@ int isoburn_read_image(struct burn_drive *d,
if (ret < 0 || o == NULL)
{ret= 0; goto ex;}
status = isoburn_disc_get_status(d);
o->image_start_lba= -1;
}
if(read_opts==NULL) {
isoburn_msgs_submit(o, 0x00060000,
@ -176,6 +203,10 @@ create_blank_image:;
}
iso_image_set_ignore_aclea(o->image,
(!!(read_opts->noacl)) | ((!!read_opts->noea) << 1) );
ret= isoburn_root_defaults(o->image, 0);
if(ret <= 0)
goto ex;
}
{ret= 1; goto ex;}
}
@ -187,12 +218,12 @@ create_blank_image:;
{ret= -4; goto ex;}
}
memset((char *) &ropts, 0, sizeof(ropts));
ret = isoburn_disc_get_msc1(d, &int_num);
if (ret <= 0)
{ret= -2; goto ex;}
ms_block= int_num;
if (o != NULL)
o->image_start_lba= ms_block;
ret = isoburn_read_iso_head(d, int_num, &dummy, NULL, 0);
if (ret <= 0) {
sprintf(msg, "No ISO 9660 image at LBA %d. Creating blank image.", int_num);
@ -251,11 +282,12 @@ displacement_rollover:;
iso_read_opts_load_system_area(ropts, 1);
ds = isoburn_data_source_new(d, read_opts->displacement,
read_opts->displacement_sign);
read_opts->displacement_sign,
read_opts->cache_tiles, read_opts->cache_tile_blocks);
if (ds == NULL) {
isoburn_report_iso_error(ret, "Cannot create IsoDataSource object", 0,
"FATAL", 0);
goto ex;
ret= -1; goto ex;
}
if(o->iso_data_source!=NULL)
iso_data_source_unref(o->iso_data_source);
@ -269,6 +301,7 @@ displacement_rollover:;
ret = iso_image_import(o->image, ds, ropts, &features);
iso_tree_set_report_callback(o->image, NULL);
iso_read_opts_free(ropts);
ropts= NULL;
if (ret < 0) {
isoburn_report_iso_error(ret, "Cannot import image", 0, "FAILURE", 0);
@ -289,6 +322,8 @@ displacement_rollover:;
ex:;
if(msg != NULL)
free(msg);
if(ropts != NULL)
iso_read_opts_free(ropts);
return(ret);
}
@ -312,10 +347,29 @@ int isoburn_attach_image(struct burn_drive *d, IsoImage *image)
if(o->image != NULL)
iso_image_unref(o->image);
o->image = image;
o->image_start_lba = -1;
return(1);
}
/* API */
int isoburn_attach_start_lba(struct burn_drive *d, int lba, int flag)
{
int ret;
struct isoburn *o;
ret = isoburn_find_emulator(&o, d, 0);
if(ret < 0)
return ret;
if(o == NULL)
return 0;
if(o->image == NULL)
return 0;
o->image_start_lba = lba;
return 1;
}
/* API function. See libisoburn.h
*/
int isoburn_activate_session(struct burn_drive *drive)

View File

@ -241,16 +241,16 @@ void isoburn_version(int *major, int *minor, int *micro);
@since 0.1.0
*/
#define isoburn_libisofs_req_major 1
#define isoburn_libisofs_req_minor 1
#define isoburn_libisofs_req_micro 7
#define isoburn_libisofs_req_minor 2
#define isoburn_libisofs_req_micro 2
/** The minimum version of libburn to be used with this version of libisoburn
at compile time.
@since 0.1.0
*/
#define isoburn_libburn_req_major 1
#define isoburn_libburn_req_minor 1
#define isoburn_libburn_req_micro 9
#define isoburn_libburn_req_minor 2
#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.
@ -304,8 +304,8 @@ int isoburn_libburn_req(int *major, int *minor, int *micro);
@since 0.1.0
*/
#define isoburn_header_version_major 1
#define isoburn_header_version_minor 1
#define isoburn_header_version_micro 9
#define isoburn_header_version_minor 2
#define isoburn_header_version_micro 2
/** Note:
Above version numbers are also recorded in configure.ac because libtool
wants them as parameters at build time.
@ -389,7 +389,7 @@ int isoburn_set_msgs_submit(int (*msgs_submit)(void *handle, int error_code,
void *submit_handle, int submit_flag, int flag);
/** Aquire a target drive by its filesystem path resp. libburn persistent
/** Acquire a target drive by its filesystem path resp. libburn persistent
address.
Wrapper for: burn_drive_scan_and_grab()
@since 0.1.0
@ -407,7 +407,7 @@ int isoburn_drive_scan_and_grab(struct burn_drive_info *drive_infos[],
char* adr, int load);
/** Aquire a target drive by its filesystem path resp. libburn persistent
/** Acquire a target drive by its filesystem path resp. libburn persistent
address. This is a modern successor of isoburn_drive_scan_and_grab().
Wrapper for: burn_drive_scan_and_grab()
@since 0.1.2
@ -433,15 +433,17 @@ int isoburn_drive_scan_and_grab(struct burn_drive_info *drive_infos[],
bit6= ignore POSIX Extended Attributes from external
filesystems
bit7= pretend read-only profile and scan for table of content
bit8= re-assess already aquired (*drive_infos)[0] rather
bit8= re-assess already acquired (*drive_infos)[0] rather
than aquiring adr
@since 1.1.8
@return 1 = success , 0 = drive not found , <0 = other error
Please excuse the typo "aquire" in the function name.
*/
int isoburn_drive_aquire(struct burn_drive_info *drive_infos[],
char* adr, int flag);
/** Aquire a drive from the burn_drive_info[] array which was obtained by
/** Acquire a drive from the burn_drive_info[] array which was obtained by
a previous call of burn_drive_scan().
Wrapper for: burn_drive_grab()
@since 0.1.0
@ -757,6 +759,56 @@ int isoburn_ropt_new(struct isoburn_read_opts **o, int flag);
*/
int isoburn_ropt_destroy(struct isoburn_read_opts **o, int flag);
/** Sets the size and granularity of the cache which libisoburn provides to
libisofs for reading of ISO image data. This cache consists of several
tiles which are buffers of a given size. The ISO image is divided into
virtual tiles of that size. A cache tile may hold an in-memory copy
of such a virtual image tile.
When libisofs requests to read a block, then first the cache is inquired
whether it holds that block. If not, then the block is read via libburn
together with its neighbors in their virtual image tile into a free
cache tile. If no cache tile is free, then the one will be re-used which
has the longest time of not being hit by a read attempt.
A larger cache might speed up image loading by reducing the number of
libburn read calls on the directory tree. It might also help with
reading the content of many small files, if for some reason it is not an
option to sort access by LBA.
Caching will not provide much benefit with libburn "stdio:" drives,
because the operating system is supposed to provide the same speed-up
in a more flexible way.
@since 1.2.2
@param o The option set to work on.
It is permissible to submit NULL in order to just
have the parameters tested.
@param cache_tiles Number of tiles in the cache. Not less than 1.
Default is 32.
@param tile_blocks Number of blocks per tile. Must be a power of 2.
Default is 32.
cache_tiles * tile_blocks * 2048 must not exceed
1073741824 (= 1 GiB).
@param flag Bitfield for control purposes. Unused yet. Submit 0.
@return <=0 error , >0 ok
*/
int isoburn_ropt_set_data_cache(struct isoburn_read_opts *o,
int cache_tiles, int tile_blocks, int flag);
/** Inquire the current settings of isoburn_set_data_cache().
@since 1.2.2
@param o The option set to work on.
NULL has the same effect as flag bit0.
@param cache_tiles Will return the number of tiles in the cache.
@param tile_blocks Will return the number of blocks per tile.
@param set_flag Will return control bits. None are defined yet.
@param flag Bitfield for control purposes
bit0= return default values rather than current ones
@return <=0 error , >0 reply is valid
*/
int isoburn_ropt_get_data_cache(struct isoburn_read_opts *o,
int *cache_tiles, int *tile_blocks,
int *set_flag, int flag);
/** Which existing ISO 9660 extensions in the image to read or not to read.
Whether to read the content of an existing image at all.
@ -1106,7 +1158,7 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext);
a few other characters are allowed.
bit6= allow_full_ascii
Allow all ASCII characters to be appear on an ISO-9660
filename. Note * that "/" and "\0" characters are never
filename. Note that "/" and "\0" characters are never
allowed, even in RR names.
bit7= joliet_longer_paths
Allow paths in the Joliet tree to have more than
@ -1161,6 +1213,11 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext);
bit17= iso1999_rec_mtime
Like dir_rec_mtime, but for the ISO 9660:1999 tree.
@since 1.2.0
bit18= allow_7bit_ascii
Like allow_full_ascii, but only allowing 7-bit characters.
Lowercase letters get mapped to uppercase if not
allow_lowercase is set.
Gets overridden if allow_full_ascii is enabled.
@return 1 success, <=0 failure
*/
#define isoburn_igopt_omit_version_numbers 1
@ -1179,12 +1236,52 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext);
#define isoburn_igopt_no_j_force_dots 8192
#define isoburn_igopt_allow_dir_id_ext 16384
#define isoburn_igopt_joliet_long_names 32768
#define isoburn_igopt_joliet_rec_mtime 0x8000
#define isoburn_igopt_iso1999_rec_mtime 0x10000
#define isoburn_igopt_joliet_rec_mtime 0x10000
#define isoburn_igopt_iso1999_rec_mtime 0x20000
#define isoburn_igopt_allow_7bit_ascii 0x40000
int isoburn_igopt_set_relaxed(struct isoburn_imgen_opts *o, int relax);
int isoburn_igopt_get_relaxed(struct isoburn_imgen_opts *o, int *relax);
/** If not isoburn_igopt_allow_deep_paths is in effect, then it may become
necessary to relocate directories so that no ECMA-119 file path
has more than 8 components. These directories are grafted into either
the root directory of the ISO image or into a dedicated relocation
directory. For details see libisofs.h.
Wrapper for: iso_write_opts_set_rr_reloc()
@since 1.2.2
@param o The option set to work on
@param name The name of the relocation directory in the root directory.
Do not prepend "/". An empty name or NULL will direct
relocated directories into the root directory. This is the
default.
If the given name does not exist in the root directory when
isoburn_disc_write() is called, and if there are directories
at path level 8, then directory /name will be created
automatically.
@param flags Bitfield for control purposes.
bit0= Mark the relocation directory by a Rock Ridge RE entry,
if it gets created during isoburn_disc_write(). This
will make it invisible for most Rock Ridge readers.
bit1= not settable via API (used internally)
@return > 0 success, <= 0 failure
*/
int isoburn_igopt_set_rr_reloc(struct isoburn_imgen_opts *o, char *name,
int flags);
/** Obtain the settings of isoburn_igopt_set_rr_reloc().
@since 1.2.2
@param o The option set to work on
@param name Will return NULL or a pointer to the name of the relocation
directory in the root directory. Do not alter or dispose the
memory which holds this name.
@param flags Will return the flags bitfield.
@return > 0 success, <= 0 failure
*/
int isoburn_igopt_get_rr_reloc(struct isoburn_imgen_opts *o, char **name,
int *flags);
/** Caution: This option breaks any assumptions about names that
are supported by ECMA-119 specifications.
Try to omit any translation which would make a file name compliant to the
@ -1629,6 +1726,14 @@ int isoburn_igopt_get_disc_label(struct isoburn_imgen_opts *opts,
*/
IsoImage *isoburn_get_attached_image(struct burn_drive *d);
/** Get the start address of the image that is attached to the drive, if any.
@since 1.2.2
@param d The drive to inquire
@return The logical block address where the System Area of the image
starts. <0 means that the address is invalid.
*/
int isoburn_get_attached_start_lba(struct burn_drive *d);
/** Load the ISO filesystem directory tree from the medium in the given drive.
This will give libisoburn the base on which it can let libisofs perform
@ -1667,7 +1772,7 @@ int isoburn_read_image(struct burn_drive *d,
before it may be removed from memory.
@since 0.1.0
@param drive The drive which will be used with isoburn_read_image()
It has to be aquired by an isoburn_* wrapper call.
It has to be acquired by an isoburn_* wrapper call.
@param read_pacifier The callback function
@param app_handle The app handle which the callback function can obtain
via iso_image_get_attached_data() from its IsoImage*
@ -1714,6 +1819,17 @@ int isoburn_get_img_partition_offset(struct burn_drive *drive,
int isoburn_attach_image(struct burn_drive *d, IsoImage *image);
/** Set the start address of the image that is attached to the drive, if any.
@since 1.2.2
@param d The drive to inquire
@param lba The logical block address where the System Area of the image
starts. <0 means that the address is invalid.
@param flag Bitfield, submit 0 for now.
@return <=0 error (e.g. because no image is attached), 1 = success
*/
int isoburn_attach_start_lba(struct burn_drive *d, int lba, int flag);
/** Return the best possible estimation of the currently available capacity of
the medium. This might depend on particular write option settings and on
drive state.
@ -1826,8 +1942,8 @@ int isoburn_prepare_new_image(struct burn_drive *in_drive,
into some burn program like with this classic gesture:
mkisofs -M $dev -C $msc1,$nwa | cdrecord -waiti dev=$dev
Parameter translation into libisoburn:
$dev is the address by which parameter in_drive of this call was aquired
$msc1 was set by isoburn_set_msc1() before image reading
$dev is the address by which parameter in_drive of this call was
acquired $msc1 was set by isoburn_set_msc1() before image reading
or was detected from the in_drive medium
$nwa is a parameter of this call
or can be used as detected from the in_drive medium
@ -1887,7 +2003,7 @@ int isoburn_cancel_prepared_write(struct burn_drive *input_drive,
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 drive The drive which was acquired 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
@ -1976,7 +2092,7 @@ int isoburn_sync_after_write(struct burn_drive *input_drive,
struct burn_drive *output_drive, int flag);
/** Release an aquired drive.
/** Release an acquired drive.
Wrapper for: burn_drive_release()
@since 0.1.0
@param drive The drive to be released

View File

@ -2,6 +2,7 @@ LIBISOBURN1 {
global:
isoburn_activate_session;
isoburn_attach_image;
isoburn_attach_start_lba;
isoburn_cancel_prepared_write;
isoburn_disc_available_space;
isoburn_disc_erasable;
@ -18,6 +19,7 @@ isoburn_drive_set_msgs_submit;
isoburn_drive_wrote_well;
isoburn_finish;
isoburn_get_attached_image;
isoburn_get_attached_start_lba;
isoburn_get_fifo_status;
isoburn_get_min_start_byte;
isoburn_get_mount_params;
@ -36,6 +38,7 @@ isoburn_igopt_get_over_ugid;
isoburn_igopt_get_partition_img;
isoburn_igopt_get_pvd_times;
isoburn_igopt_get_relaxed;
isoburn_igopt_get_rr_reloc;
isoburn_igopt_get_scdbackup_tag;
isoburn_igopt_get_sort_files;
isoburn_igopt_get_system_area;
@ -52,6 +55,7 @@ isoburn_igopt_set_over_ugid;
isoburn_igopt_set_partition_img;
isoburn_igopt_set_pvd_times;
isoburn_igopt_set_relaxed;
isoburn_igopt_set_rr_reloc;
isoburn_igopt_set_scdbackup_tag;
isoburn_igopt_set_sort_files;
isoburn_igopt_set_system_area;
@ -70,6 +74,7 @@ isoburn_read_image;
isoburn_read_iso_head;
isoburn_ropt_destroy;
isoburn_ropt_get_auto_incharset;
isoburn_ropt_get_data_cache;
isoburn_ropt_get_default_dirperms;
isoburn_ropt_get_default_perms;
isoburn_ropt_get_displacement;
@ -78,6 +83,7 @@ isoburn_ropt_get_input_charset;
isoburn_ropt_get_size_what;
isoburn_ropt_new;
isoburn_ropt_set_auto_incharset;
isoburn_ropt_set_data_cache;
isoburn_ropt_set_default_dirperms;
isoburn_ropt_set_default_perms;
isoburn_ropt_set_displacement;
@ -134,6 +140,7 @@ Xorriso_option_boot_image;
Xorriso_option_calm_drive;
Xorriso_option_cdi;
Xorriso_option_cdx;
Xorriso_option_changes_pending;
Xorriso_option_charset;
Xorriso_option_check_md5;
Xorriso_option_check_media;
@ -154,6 +161,7 @@ Xorriso_option_cp_clone;
Xorriso_option_cpri;
Xorriso_option_cpx;
Xorriso_option_cut_out;
Xorriso_option_data_cache_size;
Xorriso_option_dev;
Xorriso_option_devices;
Xorriso_option_dialog;
@ -185,6 +193,7 @@ Xorriso_option_history;
Xorriso_option_iso_rr_pattern;
Xorriso_option_jigdo;
Xorriso_option_joliet;
Xorriso_option_list_arg_sorting;
Xorriso_option_list_delimiter;
Xorriso_option_list_extras;
Xorriso_option_list_formats;
@ -234,6 +243,7 @@ Xorriso_option_return_with;
Xorriso_option_rmi;
Xorriso_option_rollback;
Xorriso_option_rom_toc_scan;
Xorriso_option_rr_reloc_dir;
Xorriso_option_scdbackup_tag;
Xorriso_option_scsi_log;
Xorriso_option_session_log;

View File

@ -4,15 +4,15 @@
Release Engineering Check List
Automated and semi-automated tests
Automated and semi-automated tests:
TEST: all auto_* tests are to be run by ./run_all_auto
FILE: http://people.debian.org/~danchev/libburnia/logs/releng/
TEST: releng
auto_* tests could be run altogether by ./run_all_auto
manual_* tests are to be run individually and manually
LOGS: http://people.debian.org/~danchev/libburnia/logs/releng/
TEST: all manual_* tests are to be run individually and manually.
TEST: cppcheck
FILE: http://people.debian.org/~danchev/libburnia/logs/cppcheck/
TEST: cppcheck - static code validator
LOGS: http://people.debian.org/~danchev/libburnia/logs/cppcheck/
TEST: medistimator - checks the dialog mode of xorriso, size estimation
facility, and its ability of processing large trees. Running this
@ -20,18 +20,11 @@ Automated and semi-automated tests
interpret the results and compare them with these from any previous
runs. The source is heavily commented.
FILE: http://anonscm.debian.org/gitweb/?p=users/danchev/medistimator.git;a=summary
FILE: http://people.debian.org/~danchev/libburnia/logs/medistimator/
LOGS: http://people.debian.org/~danchev/libburnia/logs/medistimator/
Non-automated tests
Non-automated tests:
TEST: valgrind
FILE:
TEST: valgrind - run-time validator
TEST: buildd_logs
FILE: http://buildd.debian.org
FILE: (err/warn from prev. builds for several h/w architectures and kernels: linux, kfreebsd, hurd)
TEST: gprof
FILE: CFLAGS=-pg ./configure && make
FILE: run resulting executable; gmon.out to be created in current cirectory
FILE: gprof path/to/xorriso gmon.out > gprof.out
TEST: buildd_logs - previous builds for several h/w architectures and kernels
LOGS: http://buildd.debian.org

View File

@ -4,7 +4,7 @@
GNU xorriso. By Thomas Schmitt <scdbackup@gmx.net>
Derived from and supported by libburnia-project.org, published via:
http://www.gnu.org/software/xorriso/xorriso_eng.html
http://www.gnu.org/software/xorriso/xorriso-1.1.9.tar.gz
http://www.gnu.org/software/xorriso/xorriso-1.2.2.tar.gz
Provided under GPL version 3 or later. No warranty.
------------------------------------------------------------------------------
@ -46,10 +46,10 @@ Optional at compile time are:
If they were present at compile time, then the optional libraries have to
be present at runtime, too.
Obtain xorriso-1.1.9.tar.gz, take it to a directory of your choice and do:
Obtain xorriso-1.2.2.tar.gz, take it to a directory of your choice and do:
tar xzf xorriso-1.1.9.tar.gz
cd xorriso-1.1.9
tar xzf xorriso-1.2.2.tar.gz
cd xorriso-1.2.2
Within that directory execute:
@ -316,9 +316,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.1.8 :
- libburn.so.4 , version libburn-1.1.8 or higher
- libisofs.so.6 , version libisofs-1.1.6 or higher
Dynamic library and compile time header requirements for libisoburn-1.2.2 :
- libburn.so.4 , version libburn-1.2.0 or higher
- libisofs.so.6 , version libisofs-1.2.2 or higher
libisoburn and xorriso will not start with libraries which are older than their
headers seen at compile time. So compile in the oldest possible installation
setup unless you have reason to enforce a newer bug fix level.
@ -387,7 +387,7 @@ Run xorriso by
The following settings will make pfexec keep original UID and EUID and prevent
most superuser powers. Be aware that you still can manipulate all device files
if you have the file permissions for that.
Full root privileges for xorriso can then be aquired only by command su.
Full root privileges for xorriso can then be acquired only by command su.
Edit /etc/security/exec_attr and add this line to the other "Media Backup"
lines:
@ -436,7 +436,7 @@ By Mario Danic <mario.danic@gmail.com>, libburn, libisofs
Vreixo Formoso <metalpain2002@yahoo.es>, libisofs, libisoburn
Thomas Schmitt <scdbackup@gmx.net>, libburn, libisofs,
libisoburn, xorriso
Copyright (C) 2006-2011 Mario Danic, Vreixo Formoso, Thomas Schmitt.
Copyright (C) 2006-2012 Mario Danic, Vreixo Formoso, Thomas Schmitt.
libburnia-project.org is inspired by and in libburn still containing parts
of old
@ -452,7 +452,7 @@ Copyright (C) 2000-2007 Free Software Foundation, Inc.
------------------------------------------------------------------------------
This text itself is
Copyright (c) 2007 - 2011 Thomas Schmitt <scdbackup@gmx.net>
Copyright (c) 2007 - 2012 Thomas Schmitt <scdbackup@gmx.net>
and is freely distributable.
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

View File

@ -3,7 +3,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2012 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -122,6 +122,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
for(i=0;i<m->rc_filename_count-1;i++)
strcpy(m->rc_filenames[i],Xorriso_sys_rc_nameS[i]);
m->rc_filenames[m->rc_filename_count-1][0]= 0;
m->arrange_args= 0;
m->mkisofsrc_done= 0;
m->wdi[0]= 0;
@ -143,6 +144,8 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->scdbackup_tag_written[0]= 0;
m->scdbackup_tag_listname[0]= 0;
m->relax_compliance= 0;
m->rr_reloc_dir[0]= 0;
m->rr_reloc_flags= 1;
m->untranslated_name_len= 0;
m->do_follow_pattern= 1;
m->do_follow_param= 0;
@ -189,6 +192,9 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->displacement_sign= 0;
m->drives_exclusive= 1;
m->early_stdio_test= 0;
m->cache_num_tiles= 0;
m->cache_tile_blocks= 0;
m->cache_default= 1 | 2;
m->do_calm_drive= 1;
m->indev[0]= 0;
m->in_drive_handle= NULL;

View File

@ -12129,17 +12129,627 @@ xorriso/xorrecord.1
xorriso/xorrecord.info
Version leap to libisoburn-1.1.9
21 Nov 2011 []
21 Nov 2011 [4453]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
21 Nov 2011 []
21 Nov 2011 [4454]
svn move -m Promoted branch to tag
http://svn.libburnia-project.org/libisoburn/branches/1.1.8
http://svn.libburnia-project.org/libisoburn/tags/1.1.8
------------------------------------ cycle - xorriso-1.1.9 -
------------------------------------ cycle - xorriso-1.1.9 - 2011.11.21.081802
22 Nov 2011 [4456]
doc/qemu_xorriso.wiki
Updated QemuXorriso wiki about xorriso version requirements
23 Nov 2011 [4457]
doc/qemu_xorriso.wiki
Mentioned GNU Hurd qemu page as source of qemu knowledge
2011.11.24.093151 [4459]
xorriso/iso_tree.c
Worked around inconsistency of stat.st_rdev and dev_t on Debian mips, mipsel
2011.11.29.130622 [4461]
libisoburn/libisoburn.ver
Bug fix: libisoburn.ver had a duplicate function entry
2011.12.01.152236 [4464]
xorriso/emulators.c
xorriso/write_run.c
xorriso/xorrecord.texi
xorriso/xorrecord.info
xorriso/xorrecord.1
Made verbosity and exit value of xorrecord more similar to cdrecord resp. wodim
03 Dec 2011 [4472]
Makefile.am
Removing test/.libs with make clean
03 Dec 2011 [4473]
Makefile.am
Added ./bootstrap script to release tarball
03 Dec 2011 [4474]
xorriso/xorriso_makefile_am.txt
Removing xorriso/.libs test/.libs with make clean
2011.12.07.080625 [4480]
Makefile.am
xorriso/xorriso_makefile_am.txt
Removed version.h from list of source files because generated by configure
2011.12.25.121944 [4513]
xorriso/xorriso_makefile_am.txt
Integrated new source file libburn/cdtext.c
28 Dec 2011 [4520]
xorriso/compile_xorriso.sh
Integrated new source file libburn/cdtext.c
2012.01.14.144233 [4565]
configure.ac
libisoburn/libisoburn.h
libisoburn/isoburn.h
libisoburn/isoburn.c
New relaxations isoburn_igopt_joliet_rec_mtime, isoburn_igopt_iso1999_rec_mtime
2012.01.14.144535 [4566]
xorriso/xorriso.h
xorriso/opts_p_z.c
xorriso/emulators.c
xorriso/write_run.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
Using new libisoburn relaxations with "rec_mtime", enabling it with -as mkisofs
14 Jan 2012 [4567]
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.1.9 - 2012.01.14.144535
* Bug fix: mkisofs emulation did not record mtime in ECMA-119 directories
* Bug fix: Program abort while drive tray is loading led to endless loop
* Bug fix: Solaris adapter mishandled write commands which failed on first try
* Bug fix: libisoburn.ver had a duplicate function entry
* New relaxations isoburn_igopt_joliet_rec_mtime,
isoburn_igopt_iso1999_rec_mtime
2012.01.15.104012 [4569]
xorriso/write_run.h
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
Made -compliance "rec_mtime" default for xorriso
2012.01.18.093532 [4572]
xorriso/drive_mgt.c
Improved interpretation of -check_media min_lba=
2012.01.21.114233 [4586] delayed_commit/B20121.114249
xorriso/xorriso_private.h
xorriso/base_obj.c
xorriso/drive_mgt.c
xorriso/read_run.c
xorriso/text_io.c
Reporting speed with -check_media
2012.01.21.173229 [4587] delayed_commit/B20121.173233
xorriso/opts_a_c.c
xorriso/opts_d_h.c
xorriso/opts_i_o.c
xorriso/opts_p_z.c
xorriso/drive_mgt.c
xorriso/read_run.c
Reporting speed with -check_md5, -compare, -find, -compare_l, -update
2012.01.21.190312 [4587] delayed_commit/B20121.190324
xorriso/drive_mgt.c
Curbed -check_media chunk_size= to 64 kB
2012.01.23.104642 [4588]
xorriso/cmp_update.c
xorriso/iso_tree.c
Two files forgotten with rev 4587
24 Jan 2012 [4594]
xorriso/make_xorriso_standalone.sh
Added libisoburn ChangeLog to GNU xorriso tarball
25 Jan 2012 [4596]
ChangeLog
Updated ChangeLog
2012.01.25.153732 [4597]
xorriso/text_io.c
Made rev 4586 safe against division by 0
27 Jan 2012 [4602]
svn copy -m Branching for libisoburn release 1.2.0
http://svn.libburnia-project.org/libisoburn/trunk
http://svn.libburnia-project.org/libisoburn/branches/1.2.0
2012.01.27.120001 [4603]
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
xorriso/xorriso.texi
xorriso/xorriso.1
xorriso/xorriso.info
xorriso/xorrisofs.texi
xorriso/xorrisofs.1
xorriso/xorrisofs.info
xorriso/xorrecord.texi
xorriso/xorrecord.1
xorriso/xorrecord.info
Version leap to libisoburn-1.2.0
27 Jan 2012 [4604]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
----------------------------------- release - xorriso-1.2.0 - 2012.01.27.120001
* Bug fix: mkisofs emulation did not record mtime in ECMA-119 directories
* Bug fix: Program abort while drive tray is loading led to endless loop
* Bug fix: Solaris adapter mishandled write commands which failed on first try
* Bug fix: libisoburn.ver had a duplicate function entry
* New relaxations isoburn_igopt_joliet_rec_mtime,
isoburn_igopt_iso1999_rec_mtime
* Made -compliance "rec_mtime" default for xorriso
2012.01.27.155323 [4609]
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
xorriso/xorriso.texi
xorriso/xorriso.1
xorriso/xorriso.info
xorriso/xorrisofs.texi
xorriso/xorrisofs.1
xorriso/xorrisofs.info
xorriso/xorrecord.texi
xorriso/xorrecord.1
xorriso/xorrecord.info
Version leap to libisoburn-1.2.1
27 Jan 2012 [4610]
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
27 Jan 2012 [4611]
svn move -m Promoted branch to tag
http://svn.libburnia-project.org/libisoburn/branches/1.2.0
http://svn.libburnia-project.org/libisoburn/tags/1.2.0
------------------------------------ cycle - xorriso-1.2.1 - 2012.01.27.155323
2012.01.31.130405 [4616]
xorriso/xorriso.h
xorriso/xorriso_private.h
xorriso/base_obj.c
xorriso/parse_exec.h
xorriso/parse_exec.c
xorriso/opts_d_h.c
xorriso/opts_i_o.c
libisoburn/libisoburn.ver
xorriso/xorriso.texi
xorriso/xorriso.1
xorriso/xorriso.info
New commands -x, -list_arg_sorting
2012.02.01.122709 [4617]
xorriso/drive_mgt.c
Avoided lots of error messages when checking media in empty drive
2012.02.01.162935 [4618]
xorriso/drive_mgt.c
xorriso/text_io.c
Reporting correct speed unit with -check_media use=outdev
2012.02.01.163200 [4619]
xorriso/drive_mgt.c
Allowed chunk_size= values up to 1024s
02 Feb 2012 [4620]
xorriso/xorriso.texi
xorriso/xorriso.1
xorriso/xorriso.info
Polished man page about option -x
02 Feb 2012 [4621]
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.2.1 - 2012.02.01.163200
* New commands -x, -list_arg_sorting
02 Feb 2012 [4622]
xorriso/xorriso_eng.html
Fixed a HTML bug in xorriso web page
02 Feb 2012 [4623]
xorriso/man_xorriso_to_html.sh
Updated generator script for HTML man page
2012.02.14.103107 [4629]
libisoburn/libisoburn.h
libisoburn/libisoburn.ver
libisoburn/isoburn.h
libisoburn/isofs_wrap.c
libisoburn/isoburn.c
New API calls isoburn_get_attached_start_lba(), isoburn_attach_start_lba()
2012.02.14.103256 [4630]
xorriso/drive_mgt.c
More accurate determination of size with check_media what=image
24 Feb 2012 [4633]
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
Some adjustments in xorriso man page
2012.02.25.154938 [4634]
xorriso/opts_d_h.c
xorriso/read_run.c
xorriso/text_io.c
Enabled speed display with command -extract
2012.02.25.194514 [4635]
xorriso/disk_ops.c
Bug fix: -osirrox on:sort_lba_on -extract from / restored nearly nothing
27 Feb 2012 [4636]
xorriso/disk_ops.c
Fixed a problem with directing an -extract to the / directory of disk
2012.02.27.150241 [4637]
libisoburn/isoburn.h
libisoburn/isoburn.c
libisoburn/isofs_wrap.c
New default permission on / directory: rwxr-xr-x
27 Feb 2012 [4638]
xorriso/man_xorriso_to_html.sh
Equipped chapters of xorriso HTML man page with link targets
27 Feb 2012 [4639]
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.2.1 - 2012.02.27.150241
* New API calls isoburn_get_attached_start_lba(), isoburn_attach_start_lba()
* Bug fix: -osirrox on:sort_lba_on -extract from / restored nearly nothing
2012.02.29.135454 [4640]
xorriso/drive_mgt.c
Fixed a problem after blanking, which was introduced by rev 4630.
------------------------------------ cycle - xorriso-1.2.1 - 2012.02.29.135454
2012.03.03.104637 [4641]
xorriso/filters.c
Bug fix: Setting file content filters did not mark image as changed for commit
2012.03.03.134008 [4642]
xorriso/opts_a_c.c
xorriso/opts_d_h.c
xorriso/opts_i_o.c
xorriso/opts_p_z.c
xorriso/emulators.c
xorriso/drive_mgt.c
xorriso/read_run.c
xorriso/write_run.c
Centralized the inquiry whether an image change is pending
2012.03.03.182917 [4643]
xorriso/xorriso.h
xorriso/parse_exec.c
xorriso/opts_a_c.c
xorriso/opts_d_h.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
libisoburn/libisoburn.ver
New command -changes_pending
2012.03.03.185100 [4644]
xorriso/filters.c
Revoked rev 4641. It is not a bug but a feature. E.g. for reading.
03 Mar 2012 [4645]
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
Mentioned peculiar -changes_pending behavior of filter attaching
2012.03.03.211636 [4646]
xorriso/opts_d_h.c
Corrected texts about "command", "argument", "parameter"
2012.03.04.094824 [4647]
xorriso/iso_img.c
Added a comment
2012.03.04.095952 [4648]
xorriso/xorriso.h
Added a comment
05 Mar 2012 [4649]
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
xorriso/man_xorriso_to_html.sh
Changed xorriso.texi according to proposals by Tony Mancill
05 Mar 2012 [4650]
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
xorriso/man_xorriso_to_html.sh
Revised the use of "option" and "ASCII" in xorriso.texi
05 Mar 2012 [4651]
xorriso/README_gnu_xorriso
Corrected orthographical error in GNU xorriso readme file
2012.03.05.145209 [4652]
libisoburn/libisoburn.h
Corrected orthographical errors in libisoburn.h
2012.03.05.145346 [4653]
xorriso/xorriso.h
Replaced many occurences of "option" by "command" in comments of xorriso.h
------------------------------------ cycle - xorriso-1.2.1 - 2012.03.05.145346
2012.03.05.204946 [4654]
xorriso/emulators.c
Added -hide-rr-moved to the list of ignored -as mkisofs options
2012.03.09.190043 [4655]
xorriso/iso_manip.c
Corrected missing linefeed in message of command -mkdir
2012.03.10.145124 [4657]
libisoburn/libisoburn.h
libisoburn/isoburn.h
libisoburn/isoburn.c
libisoburn/libisoburn.ver
New API calls isoburn_igopt_set_rr_reloc(), isoburn_igopt_get_rr_reloc()
2012.03.10.150003 [4658]
xorriso/xorriso.h
xorriso/xorriso_private.h
xorriso/base_obj.c
xorriso/parse_exec.c
xorriso/opts_d_h.c
xorriso/opts_p_z.c
xorriso/write_run.c
xorriso/text_io.c
libisoburn/libisoburn.ver
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New command -rr_reloc_dir
2012.03.10.153518 [4659]
xorriso/parse_exec.c
Changed a degugging text about command parameters
2012.03.11.162050 [4660]
libisoburn/libisoburn.h
libisoburn/isoburn.h
libisoburn/isoburn.c
libisoburn/isofs_wrap.c
libisoburn/data_source.c
libisoburn/libisoburn.ver
New API calls isoburn_ropt_set_data_cache(), isoburn_ropt_get_data_cache()
2012.03.11.164130 [4661]
xorriso/xorriso.h
xorriso/xorriso_private.h
xorriso/xorrisoburn.h
xorriso/base_obj.c
xorriso/parse_exec.c
xorriso/opts_d_h.c
xorriso/lib_mgt.c
xorriso/drive_mgt.c
xorriso/iso_img.c
xorriso/text_io.c
libisoburn/libisoburn.ver
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New command -data_cache_size
2012.03.12.180937 [4662]
xorriso/emulators.c
xorriso/xorrisofs.texi
xorriso/xorrisofs.info
xorriso/xorrisofs.1
New -as mkisofs option -rr_reloc, implemented option -hide-rr-moved
2012.03.13.102621 [4663]
xorriso/emulators.c
Now ignoring -as mkisofs -no-split-symlink-components -no-split-symlink-fields
2012.03.14.152414 [4664]
xorriso/emulators.c
xorriso/xorrisofs.texi
xorriso/xorrisofs.info
xorriso/xorrisofs.1
Adjusted behavior of -as mkisofs option -D
14 Mar 2012 [4665]
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
Clarified xorriso documentation about deep directories
2012.03.14.195147 [4666]
xorriso/emulators.c
xorriso/xorrisofs.texi
xorriso/xorrisofs.info
xorriso/xorrisofs.1
Adjusted behavior of -as mkisofs option -l
14 Mar 2012 [4667]
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.2.1 - 2012.03.14.195147
* New API calls isoburn_igopt_set_rr_reloc(), isoburn_igopt_get_rr_reloc()
* New API calls isoburn_ropt_set_data_cache(), isoburn_ropt_get_data_cache()
* New command -rr_reloc_dir
* New command -data_cache_size
* New -as mkisofs option -rr_reloc, implemented option -hide-rr-moved
* Now ignoring -as mkisofs -no-split-symlink-components -no-split-symlink-fields
2012.03.21.141040 [4668]
libisoburn/libisoburn.h
Bug fix: Relaxation option joliet_rec_mtime and iso1999_rec_mtime had wrong values
2012.03.21.193055 [4669]
libisoburn/data_source.c
libisoburn/isofs_wrap.c
Reacted on warnings of cppcheck
2012.03.21.193153 [4670]
xorriso/parse_exec.c
Reacted on warning of cppcheck
2012.03.21.193557 [4672]
xorriso/text_io.c
Reacted on warning of cppcheck
2012.03.22.084956 [4673]
xorriso/emulators.c
xorriso/misc_funct.h
xorriso/misc_funct.c
Bug fix: -as mkisofs without -graft-points could noy handle names with "="
2012.03.22.102053 [4674]
libisoburn/libisoburn.h
libisoburn/isoburn.c
New relaxation option allow_7bit_ascii
2012.03.22.102402 [4675]
libisoburn/isoburn.h
File which was omitted when committing rev. 4674
2012.03.22.103201 [4676]
xorriso/write_run.c
xorriso/xorriso.texi
xorriso/xorriso.info
xorriso/xorriso.1
New -compliance option 7bit_ascii
2012.03.22.103349 [4677]
xorriso/emulators.c
xorriso/xorrisofs.texi
xorriso/xorrisofs.info
xorriso/xorrisofs.1
Implemented -as mkisofs option -relaxed-filenames
22 Mar 2012 [4678]
xorriso/make_xorriso_1.c
Updated help text of texi-to-man converter
27 Mar 2012 [4679]
configure.ac
Demanding libisofs-1.2.1 with ./configure --enable-pkg-check-modules
28 Mar 2012 [4680]
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.2.1 - 2012.03.22.103349
Bug fix: -as mkisofs without -graft-points could not handle names with "="
Bug fix: Relaxation options joliet_rec_mtime and iso1999_rec_mtime had wrong values
2 Apr 2012 [4688]
svn copy -m Branching for libisoburn release 1.2.2
http://svn.libburnia-project.org/libisoburn/trunk
http://svn.libburnia-project.org/libisoburn/branches/1.2.2
2012.04.02.133001 [4689]
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
xorriso/xorriso.texi
xorriso/xorriso.1
xorriso/xorriso.info
xorriso/xorrisofs.texi
xorriso/xorrisofs.1
xorriso/xorrisofs.info
xorriso/xorrecord.texi
xorriso/xorrecord.1
xorriso/xorrecord.info
Version leap to libisoburn-1.2.0
02 Apr 2012 []
ChangeLog
xorriso/changelog.txt
Documented changes and release timestamp
----------------------------------- release - xorriso-1.2.2 - 2012.04.02.133001
* New API calls isoburn_get_attached_start_lba(), isoburn_attach_start_lba()
* New API calls isoburn_igopt_set_rr_reloc(), isoburn_igopt_get_rr_reloc()
* New API calls isoburn_ropt_set_data_cache(), isoburn_ropt_get_data_cache()
* New commands -x, -list_arg_sorting
* New command -rr_reloc_dir
* New command -data_cache_size
* New -as mkisofs option -rr_reloc, implemented option -hide-rr-moved
* Now ignoring -as mkisofs -no-split-symlink-components -no-split-symlink-fields
* Bug fix: -osirrox on:sort_lba_on -extract from / restored nearly nothing
* Bug fix: -as mkisofs without -graft-points could not handle names with "="
* Bug fix: Relaxation options joliet_rec_mtime and iso1999_rec_mtime had wrong values
@ -12147,13 +12757,8 @@ http://svn.libburnia-project.org/libisoburn/tags/1.1.8
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.1.9 -
[]
xorriso/xorriso_eng.html
ChangeLog
Updated change log and web page
------------------------------------ cycle - xorriso-1.1.9 -
------------------------------------ cycle - xorriso-1.2.3 -
**********************************************************************
Important: When adding a public API function then add its name to file
@ -12164,24 +12769,20 @@ Important: When adding a public API function then add its name to file
TODO
===============================================================================
- Can UTF-8 or other charsets confuse xorriso or libisofs by byte 47 '/'
in multi-byte characters ?
> UTF-8 cannot. All multi-bytes are >= 129.
- Can character sets map "/" to a byte sequence different from {47,0} ?
Would this confuse xorriso or libisofs ?
> UTF-8 does not.
- -check_media option which aborts the check run on the first error ?
Such an option for -check_md5_r ?
- read-only files , not writable block devices with rw:
rm /dvdbuffer/pseudo_drive
xorriso -dev /dvdbuffer/pseudo_drive -add /u/FERTIG
chmod a-w /dvdbuffer/pseudo_drive
xorriso -dev /dvdbuffer/pseudo_drive -add /u/solvay
yields
libburn : SORRY : Failed to open device (a pseudo-drive) : Permission denied
but -toc says
Media current: stdio file, overwriteable
Media status : is written , is appendable
and after the failed write attempt
Media current: is not recognizable
Media status : is written , is appendable
The misconception of writability can be avoiced by -early_stdio_test on
??? make -early_stdio_test on by default ?
@ -12202,20 +12803,11 @@ man page for osirrox ?
Deprecate global variable serial_id.
demo/custom_stream.c
- update_home got stuck when interrupted during -update_r
??? not reproducible any more
>>> It happened again on qemu while interrupting the waiting for
the drive to become ready after tray loading.
-------------------------------------------------------------------------
- Problem words in man xorriso
"command" - Mats wants to reserve it for the program.
I still think it should stay for its options.
"writeable" - Should be "writable" but is allowed as alternative spelling.
Problem with -as cdrecord option --grow_overwriteable_iso
@ -12238,8 +12830,6 @@ That "allow" gets changed from "to do something" to "for [doing] something".
(It turned out that only a minority of "allow" in the text are of the bad
form.)
The issue of "command" versus "option" needs an overview of the whole
terminology in xorriso. I shall make a tree model.
- Get rid of ((size_t) -1) in libisofs/util.c

View File

@ -1,9 +1,9 @@
# configure.ac stems from xorriso/configure_ac.txt and leads to ./configure
# Copyright (c) 2007 - 2011 Thomas Schmitt <scdbackup@gmx.net>
# Copyright (c) 2007 - 2012 Thomas Schmitt <scdbackup@gmx.net>
# Provided under GPL version 2 or later.
AC_INIT([xorriso], [1.1.9], [http://libburnia-project.org])
AC_INIT([xorriso], [1.2.2], [http://libburnia-project.org])
AC_PREREQ([2.50])
AC_CANONICAL_HOST
@ -22,15 +22,15 @@ AH_TEMPLATE([Xorriso_standalonE], [Define to prepare sources for statically link
AC_DEFINE([Xorriso_standalonE], [])
BURN_MAJOR_VERSION=1
BURN_MINOR_VERSION=1
BURN_MICRO_VERSION=9
BURN_MINOR_VERSION=2
BURN_MICRO_VERSION=2
AC_SUBST(BURN_MAJOR_VERSION)
AC_SUBST(BURN_MINOR_VERSION)
AC_SUBST(BURN_MICRO_VERSION)
LIBISOFS_MAJOR_VERSION=1
LIBISOFS_MINOR_VERSION=1
LIBISOFS_MICRO_VERSION=7
LIBISOFS_MINOR_VERSION=2
LIBISOFS_MICRO_VERSION=2
AC_SUBST(LIBISOFS_MAJOR_VERSION)
AC_SUBST(LIBISOFS_MINOR_VERSION)
AC_SUBST(LIBISOFS_MICRO_VERSION)

View File

@ -1667,16 +1667,25 @@ int Xorriso_make_restore_path(struct XorrisO *xorriso,
ipfx= Xorriso_lst_get_text(s, 0);
li= strlen(ipfx);
dpfx= Xorriso_lst_get_text(d, 0);
if(strncmp(img_path, ipfx, li) != 0)
if(li == 1 && ipfx[0] == '/') {
li= 0;
if(img_path[0] != '/')
continue;
if(img_path[li] != 0 && img_path[li] != '/')
} else {
if(strncmp(img_path, ipfx, li) != 0)
continue;
if(img_path[li] != 0 && img_path[li] != '/')
continue;
}
if(strlen(dpfx) + strlen(img_path) - li + 1 >= SfileadrL)
return(-1);
if(img_path[li]=='/')
sprintf(disk_path, "%s/%s", dpfx, img_path + strlen(ipfx) + 1);
else
strcpy(disk_path, dpfx);
if(img_path[li]=='/') {
if(dpfx[0] == '/' && dpfx[1] == 0)
sprintf(disk_path, "/%s", img_path + li + 1);
else
sprintf(disk_path, "%s/%s", dpfx, img_path + li + 1);
} else
strcpy(disk_path, dpfx); /* img_path[li] is 0, img_path equals ipfx */
found_s= s;
found_d= d;
if(s != *img_prefixes || !(flag & 1))

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2012 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -171,7 +171,7 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, char *show_adr,
int flag)
{
int ret, hret, not_writeable= 0, has_what, aquire_flag, load_lba, ext;
int lba, track, session, params_flag, adr_mode, read_ret;
int lba, track, session, params_flag, adr_mode, read_ret, start_lba;
uint32_t size, offst;
struct burn_drive_info *dinfo= NULL, *out_dinfo= NULL, *in_dinfo= NULL;
struct burn_drive *drive= NULL, *out_drive= NULL, *in_drive= NULL;
@ -384,6 +384,11 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, char *show_adr,
goto ex;
} else {
iso_image_ref((IsoImage *) xorriso->in_volset_handle);
start_lba= -1;
ret= Xorriso_get_drive_handles(xorriso, &in_dinfo, &in_drive,
"on attempt to attach ISO image object to outdev", 16);
if(ret > 0)
start_lba= isoburn_get_attached_start_lba(in_drive);
ret= isoburn_attach_image(drive, (IsoImage *) xorriso->in_volset_handle);
if(ret<=0) {
sprintf(xorriso->info_text,
@ -391,6 +396,8 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, char *show_adr,
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FATAL", 0);
{ret= -1; goto ex;}
}
if(start_lba >= 0)
isoburn_attach_start_lba(drive, lba, 0);
}
if(!(flag&32))
Xorriso_toc(xorriso, 1 | 2 | 8);
@ -422,6 +429,12 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, char *show_adr,
if(ret<=0)
goto ex;
ret= Xorriso_set_data_cache(xorriso, ropts, xorriso->cache_num_tiles,
xorriso->cache_tile_blocks,
xorriso->cache_default);
if(ret<=0)
goto ex;
ext= isoburn_ropt_noiso1999;
if((xorriso->ino_behavior & (1 | 2)) && !(xorriso->do_aaip & (1 | 4 | 32))
&& !(xorriso->do_md5 & 1))
@ -525,12 +538,19 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, char *show_adr,
if(xorriso->out_drive_handle != NULL &&
xorriso->out_drive_handle != xorriso->in_drive_handle) {
start_lba= -1;
ret= Xorriso_get_drive_handles(xorriso, &in_dinfo, &in_drive,
"on attempt to attach ISO image volset to outdev", 16);
if(ret > 0)
start_lba= isoburn_get_attached_start_lba(in_drive);
ret= Xorriso_get_drive_handles(xorriso, &out_dinfo, &out_drive,
"on attempt to attach ISO image volset to outdev", 2);
if(ret<=0)
goto ex;
iso_image_ref((IsoImage *) xorriso->in_volset_handle);
isoburn_attach_image(out_drive, xorriso->in_volset_handle);
if(start_lba >= 0)
isoburn_attach_start_lba(out_drive, ret, 0);
}
Xorriso_process_msg_queues(xorriso,0);
isoburn_ropt_get_size_what(ropts, &size, &has_what);
@ -1384,7 +1404,7 @@ int Xorriso_tell_media_space(struct XorrisO *xorriso,
isoburn_disc_available_space(drive, burn_options) / (off_t) 2048;
burn_write_opts_free(burn_options);
if(xorriso->volset_change_pending) {
if(Xorriso_change_is_pending(xorriso, 0)) {
ret= Xorriso_write_session(xorriso, 1);
if(ret>0)
(*free_space)-= ret;
@ -2114,9 +2134,12 @@ int Xorriso_check_interval(struct XorrisO *xorriso, struct SpotlisT *spotlist,
int tag_type= 0, valid, was_sb_tag= 0, in_track_gap= 0;
char *comparison= "", *sev_text= "DEBUG", *tag_type_name= "";
Xorriso_alloc_meM(data, char, 64*1024);
if(read_chunk > 32)
read_chunk= 32;
if(read_chunk > 1024)
read_chunk= 1024;
else if(read_chunk < 1)
read_chunk= 1;
Xorriso_alloc_meM(data, char, 2 * read_chunk * 1024);
ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
"on attempt to check media readability",
@ -2124,9 +2147,11 @@ int Xorriso_check_interval(struct XorrisO *xorriso, struct SpotlisT *spotlist,
if(ret<=0)
goto ex;
ret= burn_disc_get_profile(drive, &profile_no, profile_name);
if(ret > 0)
if(ret > 0) {
if(profile_no >= 0x08 && profile_no <= 0x0a)
is_cd= 1;
}
if(job->sector_map != NULL) {
Sectorbitmap_get_layout(job->sector_map, &sectors, &sector_size, 0);
@ -2422,7 +2447,8 @@ failed_to_write:;
if(post_read_time - xorriso->last_update_time >=
xorriso->pacifier_interval)
Xorriso_pacifier_callback(xorriso, "blocks read",
xorriso->pacifier_count, xorriso->pacifier_total, "", 8 | 16);
xorriso->pacifier_count, xorriso->pacifier_total, "",
8 | 16 | (128 * (job->use_dev == 1)));
}
}
if(prev_quality >= 0) {
@ -2477,6 +2503,7 @@ int Xorriso_check_media(struct XorrisO *xorriso, struct SpotlisT **spotlist,
char *toc_info= NULL, profile_name[80];
struct burn_drive *drive;
struct burn_drive_info *dinfo;
enum burn_disc_status s;
struct isoburn_toc_disc *isoburn_disc= NULL;
struct isoburn_toc_session **isoburn_sessions;
struct isoburn_toc_track **iso_burn_tracks;
@ -2530,6 +2557,14 @@ int Xorriso_check_media(struct XorrisO *xorriso, struct SpotlisT **spotlist,
if(ret <= 0)
goto ex;
}
s= isoburn_disc_get_status(drive);
if(s != BURN_DISC_APPENDABLE && s != BURN_DISC_FULL) {
Xorriso_msgs_submit(xorriso, 0, "-check_media: No readable medium found",
0, "SORRY", 0);
ret= 0; goto ex;
}
ret= burn_get_read_capacity(drive, &read_capacity, 0);
if(ret <= 0)
read_capacity= -1;
@ -2617,18 +2652,31 @@ int Xorriso_check_media(struct XorrisO *xorriso, struct SpotlisT **spotlist,
}
}
} else if(mode == 1) { /* isoburn disc capacity */
} else if(mode == 1) { /* Image range */
/* Default is the emulated disc capacity.
*/
isoburn_disc= isoburn_toc_drive_get_disc(drive);
if(isoburn_disc == NULL)
goto libburn_whole_disc;
blocks= media_blocks= isoburn_toc_disc_get_sectors(isoburn_disc);
/* If possible, determine the end address of the loaded ISO image.
*/
track_lba= isoburn_get_attached_start_lba(drive);
if(track_lba >= 0) {
ret= isoburn_read_iso_head(drive, track_lba, &track_blocks, NULL, 0);
if(ret > 0) {
blocks= media_blocks= track_lba + track_blocks;
}
}
if(start_lba >= 0)
blocks-= start_lba;
if(media_blocks <= 0)
goto libburn_whole_disc;
xorriso->pacifier_total= blocks;
ret= Xorriso_check_interval(xorriso, *spotlist, job, start_lba, blocks,
read_chunk, 0, 0);
read_chunk, 0, (4 * (xorriso->do_md5 & 1)));
if(ret <= 0)
goto ex;
} else if(mode == 2) {
@ -2644,14 +2692,14 @@ libburn_whole_disc:;
blocks-= start_lba;
xorriso->pacifier_total= blocks;
ret= Xorriso_check_interval(xorriso, *spotlist, job, start_lba, blocks,
read_chunk, 0, 0);
read_chunk, 0, (4 * (xorriso->do_md5 & 1)));
if(ret <= 0)
goto ex;
}
Xorriso_pacifier_callback(xorriso, "blocks read",
xorriso->pacifier_count, xorriso->pacifier_total, "",
1 | 8 | 16 | 32);
1 | 8 | 16 | 32 | (128 * (job->use_dev == 1)));
ret= 1;
ex:;

View File

@ -598,6 +598,7 @@ int Xorriso_genisofs_count_args(struct XorrisO *xorriso, int argc, char **argv,
"--stdio_sync", "--quoted_path_list", "--efi-boot", "--embedded-boot",
"-isohybrid-mbr", "-e", "-partition_offset", "-partition_hd_cyl",
"-partition_sec_hd", "-partition_cyl_align", "-untranslated_name_len",
"-rr_reloc_dir",
""
};
static char arg2_options[][41]= {
@ -650,10 +651,10 @@ int Xorriso_genisofs_ignore(struct XorrisO *xorriso, char *whom,
/* mkisofs 2.01 options which are not scheduled for implementation, yet */
static char ignored_arg0_options[][41]= {
"-allow-leading-dots", "-ldots", "-allow-multidot",
"-cache-inodes", "-no-cache-inodes", "-check-oldnames", "-D",
"-disable-deep-relocation",
"-L", "-nobak",
"-no-bak", "-force-rr", "-relaxed-filenames", "-T",
"-cache-inodes", "-check-oldnames",
"-L", "-no-bak", "-no-cache-inodes",
"-no-split-symlink-components", "-no-split-symlink-fields", "-nobak",
"-force-rr", "-T",
"-no-iso-translate",
""
};
@ -722,10 +723,15 @@ int Xorriso_genisofs_help(struct XorrisO *xorriso, int flag)
" -U, -untranslated-filenames Allow Untranslated filenames (for HPUX & AIX - violates ISO9660).",
" -untranslated_name_len LEN Allow up to LEN (1..96) name characters (heavily violates ISO9660).",
" -allow-lowercase Allow lower case characters in addition to the current character set (violates ISO9660)",
" -relaxed-filenames Allow 7 bit ASCII except lower case characters (violates ISO9660)",
" -d, -omit-period Omit trailing periods from filenames (violates ISO9660)",
" -l, -full-iso9660-filenames Allow full 31 character filenames for ISO9660 names",
" -max-iso9660-filenames Allow 37 character filenames for ISO9660 names (violates ISO9660)",
" -N, -omit-version-number Omit version number from ISO9660 filename (violates ISO9660)",
" -D, -disable-deep-relocation",
" Disable deep directory relocation (violates ISO9660)",
" -hide-rr-moved Relocate deep directories to /.rr_moved",
" -rr_reloc_dir NAME Set deep directory relocation target in root",
" -o FILE, -output FILE Set output file name",
" -m GLOBFILE, -exclude GLOBFILE",
" Exclude file name",
@ -946,7 +952,7 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
int do_print_size= 0, fd, idx, iso_level= 1, emul_boot= 2;
int option_b= 0, was_failure= 0, fret, lower_r= 0, zero= 0;
int dir_mode= -1, file_mode= -1, count, partition_number, allow_dir_id_ext= 1;
int root_seen= 0, do_md5_mem;
int root_seen= 0, do_md5_mem, option_d= 0;
mode_t mode_and, mode_or;
int with_boot_image= 0, with_cat_path= 0, with_emul_toc= 0;
int old_root_md5= 1, old_root_dev= 0, old_root_ino= 1;
@ -956,7 +962,7 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
char *ept, *add_pt, *eff_path= NULL, *indev= NULL, msc[80], *cpt;
char *old_root= NULL, *argpt, *hargv[1];
char *boot_path, partno_text[8], *iso_rr_pt, *disk_pt, *rpt, *wpt;
char *rm_merge_args[3];
char *rm_merge_args[3], *rr_reloc_dir_pt= NULL;
/* >>> This should not be static. Why is it ? */
static char *sort_weight_args[4]= {"", "-exec", "sort_weight", ""};
@ -1300,10 +1306,8 @@ illegal_c:;
} else if(strcmp(argpt, "-J")==0 || strcmp(argpt, "-joliet")==0) {
xorriso->do_joliet= 1;
} else if(strcmp(argpt, "-joliet-long")==0) {
ret= Xorriso_option_compliance(xorriso,
"joliet_long_paths:joliet_long_names", 0);
if(ret<=0)
goto problem_handler_2;
Xorriso_relax_compliance(xorriso,
"joliet_long_paths:joliet_long_names", 0);
} else if(strcmp(argpt, "-graft-points")==0) {
xorriso->allow_graft_points= 1;
} else if(strcmp(argpt, "-path-list")==0 ||
@ -1488,15 +1492,20 @@ not_enough_args:;
strcmp(argpt, "-omit-version-number") == 0) {
Xorriso_relax_compliance(xorriso, "omit_version", 0);
} else if(strcmp(argpt, "-l") == 0 ||
strcmp(argpt, "-full-iso9660-filenames") == 0 ||
strcmp(argpt, "-max-iso9660-filenames") == 0) {
strcmp(argpt, "-full-iso9660-filenames") == 0) {
if(xorriso->iso_level <= 2)
Xorriso_relax_compliance(xorriso, "iso_9660_level=2", 0);
if(iso_level <= 2)
iso_level= 2;
} else if(strcmp(argpt, "-max-iso9660-filenames") == 0) {
Xorriso_relax_compliance(xorriso, "long_names", 0);
} else if(strcmp(argpt, "-d") == 0 ||
strcmp(argpt, "-omit-period") == 0) {
Xorriso_relax_compliance(xorriso, "no_force_dots", 0);
} else if(strcmp(argpt, "-allow-lowercase") == 0) {
Xorriso_relax_compliance(xorriso, "lowercase", 0);
} else if(strcmp(argpt, "-relaxed-filenames") == 0) {
Xorriso_relax_compliance(xorriso, "7bit_ascii", 0);
} else if(strcmp(argpt, "-hide") == 0 ||
strcmp(argpt, "-hide-list") == 0 ||
strcmp(argpt, "-hide-joliet") == 0 ||
@ -1626,6 +1635,31 @@ not_enough_args:;
} else if(strcmp(argpt, "--no_rc")==0) {
/* was already handled in Xorriso_prescan_args */;
} else if(strcmp(argpt, "-D") == 0 ||
strcmp(argpt, "-disable-deep-relocation") == 0) {
option_d= 1;
} else if(strcmp(argpt, "-hide-rr-moved") == 0) {
rr_reloc_dir_pt= ".rr_moved";
goto rr_reloc_dir;
} else if(strcmp(argpt, "-rr_reloc_dir") == 0) {
i++;
rr_reloc_dir_pt= argv[i];
rr_reloc_dir:;
if(rr_reloc_dir_pt[0] == '/')
rr_reloc_dir_pt++;
if(strchr(rr_reloc_dir_pt, '/') != NULL) {
sprintf(xorriso->info_text,
"-as %s -rr_reloc_dir %s : May only use directories in root directory",
whom, Text_shellsafe(argv[i], sfe, 0));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE",0);
}
ret= Xorriso_option_rr_reloc_dir(xorriso, rr_reloc_dir_pt, 0);
if(ret <= 0)
goto problem_handler_2;
Xorriso_relax_compliance(xorriso, "deep_paths_off:long_paths_off", 0);
} else if(argpt[0]=='-' && argpt[1]!=0) {
hargv[0]= argpt;
ret= Xorriso_genisofs_count_args(xorriso, argc - i, hargv, &count, 1);
@ -1654,9 +1688,16 @@ is_pathspec_2:;
pathspec[0]= '/';
pathspec[1]= 0;
ret= Sfile_leafname(eff_path, pathspec+1, 0);
if(ret>0)
if(ret>0) {
ret= Fileliste__escape_source_path(pathspec, SfileadrL, 0);
if(ret <= 0) {
Xorriso_msgs_submit(xorriso, 0,
"Escaped leaf name gets much too long",
0, "FAILURE", 0);
goto problem_handler_2;
}
strcat(pathspec, "=");
else
} else
pathspec[0]= 0;
}
strcat(pathspec, eff_path);
@ -1798,6 +1839,9 @@ problem_handler_2:;
goto ex;
}
if(option_d)
Xorriso_relax_compliance(xorriso, "deep_paths:long_paths", 0);
/* After all pathspecs are added: perform boot related options */
for(j= 0; j < delay_opt_count; j++) {
i= delay_opt_list[j] & ~(1 << 31);
@ -1967,7 +2011,7 @@ ex:;
if(was_path && (!do_print_size) && !old_root[0])
Xorriso_pacifier_callback(xorriso, "files added", xorriso->pacifier_count,
xorriso->pacifier_total, "", 1);
if(do_print_size && xorriso->volset_change_pending == 1)
if(do_print_size && Xorriso_change_is_pending(xorriso, 1))
xorriso->volset_change_pending= 2;
if(weight_list != NULL)
free(weight_list);

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2010 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2012 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -95,6 +95,7 @@ int Xorriso_create_empty_iso(struct XorrisO *xorriso, int flag)
/* Note: no return before isoburn_ropt_destroy() */
isoburn_ropt_set_extensions(ropts, isoburn_ropt_pretend_blank);
isoburn_ropt_set_input_charset(ropts, xorriso->in_charset);
isoburn_ropt_set_data_cache(ropts, 1, 1, 0);
isoburn_set_read_pacifier(drive, NULL, NULL);
ret= isoburn_read_image(drive, ropts, &volset);
Xorriso_process_msg_queues(xorriso,0);
@ -872,6 +873,8 @@ int Xorriso_get_volume(struct XorrisO *xorriso, IsoImage **volume,
}
/* @param flag bit0= do not return 1 on volset_change_pending != 1
*/
int Xorriso_change_is_pending(struct XorrisO *xorriso, int flag)
{
if(flag & 1)

View File

@ -1260,6 +1260,7 @@ int Xorriso_mkdir(struct XorrisO *xorriso, char *path, int flag)
if(!(flag&1)) {
sprintf(xorriso->info_text, "Created directory in ISO image: ");
Text_shellsafe(eff_path, xorriso->info_text, 1);
strcat(xorriso->info_text, "\n");
Xorriso_info(xorriso, 0);
}
ret= 1;

View File

@ -863,3 +863,26 @@ int Xorriso_list_extras(struct XorrisO *xorriso, char *mode, int flag)
return(1);
}
/* @param flag bit0= set num_tiles to default value
bit1= set tile_blocks to default value
*/
int Xorriso_set_data_cache(struct XorrisO *xorriso, void *o,
int num_tiles, int tile_blocks, int flag)
{
int ret, tiles, blocks, set_flag;
struct isoburn_read_opts *ropts;
ropts= (struct isoburn_read_opts *) o;
if(flag & (1 | 2)) {
isoburn_ropt_get_data_cache(ropts, &tiles, &blocks, &set_flag, 1);
if(flag & 1)
num_tiles= tiles;
if(flag & 2)
tile_blocks= blocks;
}
ret= isoburn_ropt_set_data_cache(ropts, num_tiles, tile_blocks, 0);
return(ret);
}

View File

@ -470,6 +470,7 @@ usage:;
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, " -xorrecord process xorriso/xorrecord.texi\n");
exit(2);
}
for(i= 1; i < argc; i++) {

View File

@ -1,7 +1,7 @@
#!/bin/sh
# make_xorriso_standalone.sh
# Copyright 2008 - 2011 Thomas Schmitt, scdbackup@gmx.net, GPLv2+
# Copyright 2008 - 2012 Thomas Schmitt, scdbackup@gmx.net, GPLv2+
#
# Not intended for general use in production installations !
#
@ -40,7 +40,7 @@ create_gnu_xorriso="yes"
current_dir=$(pwd)
lone_dir="$current_dir"/"xorriso-standalone"
xorriso_rev=1.1.9
xorriso_rev=1.2.2
# For unstable uploads and patch level 0 of stable releases:
xorriso_pl=""
# For higher patch levels of stable releases:

View File

@ -42,48 +42,56 @@ then
-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>/\&nbsp;<BR><b>Overview of features:<\/b>/' \
-e 's/<b>General information paragraphs:<\/b>/\&nbsp;<BR><b>General information paragraphs:<\/b>/' \
-e 's/<b>Overview of features:<\/b>/\&nbsp;<BR><A NAME="Overview"><\/A><b>Overview of features:<\/b>/' \
-e 's/<b>General information paragraphs:<\/b>/\&nbsp;<BR><A NAME="General"><\/A><b>General information paragraphs:<\/b>/' \
-e 's/^<p>Session model<br>/<p><A HREF="#Model">Session model<\/A><br>/' \
-e 's/^Media types and states/<A HREF="#Media">Media types and states/' \
-e 's/^Creating, Growing, Modifying, Blind Growing/<A HREF="#Methods">Creating, Growing, Modifying, Blind Growing<\/A>/' \
-e 's/^Libburn drives/<A HREF="#Drives">Libburn drives<\/A>/' \
-e 's/^Rock Ridge, POSIX, X\/Open, El Torito, ACL, xattr/<A HREF="#Extras">Rock Ridge, POSIX, X\/Open, El Torito, ACL, xattr<\/A>/' \
-e 's/^Command processing/<A HREF="#Processing">Command processing<\/A>/' \
-e 's/^Dialog, Readline, Result pager/<A HREF="#Dialog">Dialog, Readline, Result pager<\/A>/' \
-e 's/have a look at section EXAMPLES/have a look at section <A HREF="#EXAMPLES">EXAMPLES<\/A>/' \
-e 's/<b>Session model:<\/b>/\&nbsp;<BR><b>Session model:<\/b>/' \
-e 's/<b>Media types and states:<\/b>/\&nbsp;<BR><b>Media types and states:<\/b>/' \
-e 's/<b>Creating, Growing, Modifying, Blind/\&nbsp;<BR><b>Creating, Growing, Modifying, Blind/' \
-e 's/<b>Libburn drives:<\/b>/\&nbsp;<BR><b>Libburn drives:<\/b>/' \
-e 's/<b>Session model:<\/b>/\&nbsp;<BR><A NAME="Model"><\/A><b>Session model:<\/b>/' \
-e 's/<b>Media types and states:<\/b>/\&nbsp;<BR><A NAME="Media"><\/A><b>Media types and states:<\/b>/' \
-e 's/<b>Creating, Growing, Modifying, Blind/\&nbsp;<BR><A NAME="Methods"><\/A><b>Creating, Growing, Modifying, Blind/' \
-e 's/<b>Libburn drives:<\/b>/\&nbsp;<BR><b>Libburn drives:<\/b><A NAME="Drives"><\/A>/' \
-e 's/^-dev /\&nbsp;\&nbsp;-dev /' \
-e 's/^-devices /\&nbsp;\&nbsp;-devices /' \
-e 's/<b>Rock Ridge, POSIX, X\/Open, El Torito, ACL,/\&nbsp;<BR><b>Rock Ridge, POSIX, X\/Open, El Torito, ACL,/' \
-e 's/<b>Command processing:<\/b>/\&nbsp;<BR><b>Command processing:<\/b>/' \
-e 's/<b>Dialog, Readline, Result pager:<\/b>/\&nbsp;<BR><b>Dialog, Readline, Result pager:<\/b>/' \
-e 's/<b>Aquiring source and target drive:<\/b>/\&nbsp;<BR><b>Aquiring source and target drive:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Influencing the behavior of image/\&nbsp;<BR><b>Influencing the behavior of image/' \
-e 's/<b>Inserting files into ISO image:<\/b>/\&nbsp;<BR><b>Inserting files into ISO image:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>File manipulations:<\/b>/\&nbsp;<BR><b>File manipulations:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Tree traversal command -find:<\/b>/\&nbsp;<BR><b>Tree traversal command -find:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Rock Ridge, POSIX, X\/Open, El Torito, ACL,/\&nbsp;<BR><A NAME="Extras"><\/A><b>Rock Ridge, POSIX, X\/Open, El Torito, ACL,/' \
-e 's/<b>Command processing:<\/b>/\&nbsp;<BR><A NAME="Processing"><\/A><b>Command processing:<\/b>/' \
-e 's/<b>Dialog, Readline, Result pager:<\/b>/\&nbsp;<BR><A NAME="Dialog"><\/A<b>Dialog, Readline, Result pager:<\/b>/' \
-e 's/<b>Execution order of program arguments:<\/b>/\&nbsp;<BR><A NAME="ArgSort"><\/A><b>Execution order of program arguments:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Acquiring source and target drive:<\/b>/\&nbsp;<BR><A NAME="AqDrive"><\/A><b>Acquiring source and target drive:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Influencing the behavior of image/\&nbsp;<BR><A NAME="Loading"><\/A><b>Influencing the behavior of image/' \
-e 's/<b>Inserting files into ISO image:<\/b>/\&nbsp;<BR><A NAME="Insert"><\/A><b>Inserting files into ISO image:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Settings for file insertion:<\/b>/\&nbsp;<BR><A NAME="SetInsert"><\/A><b>Settings for file insertion:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>File manipulations:<\/b>/\&nbsp;<BR><A NAME="Manip"><\/A><b>File manipulations:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Tree traversal command -find:<\/b>/\&nbsp;<BR><A NAME="CmdFind"><\/A><b>Tree traversal command -find:<\/b><BR>\&nbsp;<BR>/' \
-e 's/^<p><b>&minus;iso_rr_pattern/<p>\&nbsp;<BR><b>\&minus;iso_rr_pattern/' \
-e 's/EXAMPLES):<br>/<A HREF="#EXAMPLES">EXAMPLES<\/A>):<br>/' \
-e 's/<b>Filters for data file content:<\/b>/\&nbsp;<BR><b>Filters for data file content:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Writing the result, drive control:<\/b>/\&nbsp;<BR><b>Writing the result, drive control:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Filters for data file content:<\/b>/\&nbsp;<BR><A NAME="Filter"><\/A><b>Filters for data file content:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Writing the result, drive control:<\/b>/\&nbsp;<BR><A NAME="Writing"><\/A><b>Writing the result, drive control:<\/b><BR>\&nbsp;<BR>/' \
-e 's/^-find \/ /\&nbsp;\&nbsp;-find \/ /' \
-e 's/<b>Settings for file insertion:<\/b>/\&nbsp;<BR><b>Settings for file insertion:<\/b><BR>\&nbsp;<BR>/' \
-e 's/^$<\/b> ln -s/\&nbsp;\&nbsp;$<\/b> ln -s/' \
-e 's/<b>Settings for result writing:<\/b>/\&nbsp;<BR><b>Settings for result writing:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Settings for result writing:<\/b>/\&nbsp;<BR><A NAME="SetWrite"><\/A><b>Settings for result writing:<\/b><BR>\&nbsp;<BR>/' \
-e 's/^706k = 706kB/\&nbsp;\&nbsp;706k = 706kB/' \
-e 's/^5540k = 5540kB/\&nbsp;\&nbsp;5540k = 5540kB/' \
-e 's/<b>Character sets:<\/b>/\&nbsp;<BR><b>Character sets:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Exception processing:<\/b>/\&nbsp;<BR><b>Exception processing:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>El Torito bootable ISO images:<\/b>/\&nbsp;<BR><b>El Torito bootable ISO images:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Jigdo Template Extraction:<\/b>/\&nbsp;<BR><b>Jigdo Template Extraction:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Dialog mode control:<\/b>/\&nbsp;<BR><b>Dialog mode control:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Drive and media related inquiry actions:<\/b>/\&nbsp;<BR><b>Drive and media related inquiry actions:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Navigation in ISO image/\&nbsp;<BR><b>Navigation in ISO image/' \
-e 's/<b>Bootable ISO images:<\/b>/\&nbsp;<BR><A NAME="Bootable"><\/A><b>Bootable ISO images:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Jigdo Template Extraction:<\/b>/\&nbsp;<BR><A NAME="Jigdo"><\/A><b>Jigdo Template Extraction:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Character sets:<\/b>/\&nbsp;<BR><A NAME="Charset"><\/A><b>Character sets:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Exception processing:<\/b>/\&nbsp;<BR><A NAME="Exception"><\/A><b>Exception processing:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Dialog mode control:<\/b>/\&nbsp;<BR><A NAME="DialogCtl"><\/A><b>Dialog mode control:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Drive and media related inquiry actions:<\/b>/\&nbsp;<BR><A NAME="Inquiry"><\/A><b>Drive and media related inquiry actions:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Navigation in ISO image/\&nbsp;<BR><A NAME="Navigate"><\/A><b>Navigation in ISO image/' \
-e 's/^filesystem:<\/b>/filesystem:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Evaluation of readability and recovery:<\/b>/\&nbsp;<BR><b>Evaluation of readability and recovery:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>osirrox ISO-to-disk restore options:<\/b>/\&nbsp;<BR><b>osirrox ISO-to-disk restore options:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Command compatibility emulations:<\/b>/\&nbsp;<BR><b>Command compatibility emulations:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Evaluation of readability and recovery:<\/b>/\&nbsp;<BR><A NAME="Verify"><\/A><b>Evaluation of readability and recovery:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>osirrox ISO-to-disk restore commands:<\/b>/\&nbsp;<BR><A NAME="Restore"><\/A><b>osirrox ISO-to-disk restore commands:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Command compatibility emulations:<\/b>/\&nbsp;<BR><A NAME="Emulation"><\/A><b>Command compatibility emulations:<\/b><BR>\&nbsp;<BR>/' \
-e 's/^<p><b>&minus;as</<p>\&nbsp;<BR><b>\&minus;as</' \
-e 's/<b>Scripting, dialog and/\&nbsp;<BR><b>Scripting, dialog and/' \
-e 's/<b>Scripting, dialog and/\&nbsp;<BR><A NAME="Scripting"><\/A><b>Scripting, dialog and/' \
-e 's/^features:<\/b>/features:<\/b><BR>\&nbsp;<BR>/' \
-e 's/<b>Support for frontend/\&nbsp;<BR><b>Support for frontend/' \
-e 's/<b>Support for frontend/\&nbsp;<BR><A NAME="Frontend"><\/A><b>Support for frontend/' \
-e 's/^listening at stdout:<\/b>/listening at stdout:<\/b><BR>\&nbsp;<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 /' \

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2010 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2012 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -1110,6 +1110,28 @@ int Fileliste__target_source_limit(char *line, char sep, char **limit_pt,
}
int Fileliste__escape_source_path(char *line, int size, int flag)
{
int l, count= 0, i;
char *wpt;
l= strlen(line);
for(i= 0; i < l; i++)
if(line[i] == '=' || line[i] == '\\')
count++;
if(l + count >= size)
return(0);
wpt= line + l + count;
for(i= l; i >= 0; i--) {
*(wpt--)= line[i];
if(line[i] == '=' || line[i] == '\\')
*(wpt--)= '\\';
}
return(1);
}
int Xorriso__bourne_to_reg(char bourne_expr[], char reg_expr[], int flag)
/* reg_expr should be twice as large as bourne_expr ( + 2 to be exact) */
/* return: 2= bourne_expr is surely a constant */

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2010 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2012 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -54,6 +54,8 @@ int Wait_for_input(int fd, int microsec, int flag);
int Fileliste__target_source_limit(char *line, char sep, char **limit_pt,
int flag);
int Fileliste__escape_source_path(char *line, int size, int flag);
int Hex_to_bin(char *hex,
int bin_size, int *bin_count, unsigned char *bin_data, int flag);

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2012 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -550,7 +550,7 @@ int Xorriso_option_blank(struct XorrisO *xorriso, char *mode, int flag)
return(0);
}
if(xorriso->in_drive_handle == xorriso->out_drive_handle) {
if(xorriso->volset_change_pending) {
if(Xorriso_change_is_pending(xorriso, 0)) {
sprintf(xorriso->info_text,
"%s: Image changes pending. -commit or -rollback first.", cmd);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
@ -1199,6 +1199,36 @@ ex:;
}
/* Option -changes_pending */
int Xorriso_option_changes_pending(struct XorrisO *xorriso, char *state,
int flag)
{
if(strcmp(state, "no") == 0)
xorriso->volset_change_pending= 0;
else if(strcmp(state, "yes") == 0)
xorriso->volset_change_pending= 1;
else if(strcmp(state, "mkisofs_printed") == 0)
xorriso->volset_change_pending= 2;
else if(strcmp(state, "show_status") == 0) {
strcpy(xorriso->result_line, "-changes_pending ");
if(xorriso->volset_change_pending == 0)
strcat(xorriso->result_line, "no");
else if(xorriso->volset_change_pending == 2)
strcat(xorriso->result_line, "mkisofs_printed");
else
strcat(xorriso->result_line, "yes");
strcat(xorriso->result_line, "\n");
Xorriso_result(xorriso,0);
} else {
sprintf(xorriso->info_text, "-changes_pending: unknown state code '%s'",
state);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
return(1);
}
/* Option -charset */
/* @param flag bit0= set in_charset
bit1= set out_charset
@ -1800,7 +1830,7 @@ int Xorriso_option_commit(struct XorrisO *xorriso, int flag)
{
int ret;
if(!xorriso->volset_change_pending) {
if(!Xorriso_change_is_pending(xorriso, 0)) {
sprintf(xorriso->info_text, "-commit: No image modifications pending");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
{ret= 3; goto ex;}

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2012 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -30,6 +30,28 @@
#include "xorrisoburn.h"
/* Command -data_cache_size */
int Xorriso_option_data_cache_size(struct XorrisO *xorriso, char *num_tiles,
char *tile_blocks, int flag)
{
int ret, blocks= -1, tiles= -1, to_default= 0;
sscanf(num_tiles, "%d", &tiles);
sscanf(tile_blocks, "%d", &blocks);
if(strcmp(num_tiles, "default") == 0 || num_tiles[0] == 0)
to_default|= 1;
if(strcmp(tile_blocks, "default") == 0 || tile_blocks[0] == 0)
to_default|= 2;
ret= Xorriso_set_data_cache(xorriso, NULL, tiles, blocks, to_default);
if(ret > 0) {
xorriso->cache_num_tiles= tiles;
xorriso->cache_tile_blocks= blocks;
xorriso->cache_default= to_default;
}
return(ret);
}
/* Options -dev , -indev, -outdev */
/** @param flag bit0= use as indev
bit1= use as outdev
@ -60,7 +82,7 @@ int Xorriso_option_dev(struct XorrisO *xorriso, char *in_adr, int flag)
}
}
if(xorriso->volset_change_pending && (flag&1)) {
if(Xorriso_change_is_pending(xorriso, 0) && (flag&1)) {
sprintf(xorriso->info_text,
"%s: Image changes pending. -commit or -rollback first",
(flag&2) ? "-dev" : "-indev");
@ -109,7 +131,7 @@ int Xorriso_option_devices(struct XorrisO *xorriso, int flag)
{
int ret;
if(xorriso->volset_change_pending) {
if(Xorriso_change_is_pending(xorriso, 0)) {
sprintf(xorriso->info_text,
"-devices: Image changes pending. -commit or -rollback first");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
@ -331,7 +353,7 @@ int Xorriso_option_eject(struct XorrisO *xorriso, char *which, int flag)
gu_flag|= 2;
else
gu_flag|= 3;
if((gu_flag&1) && xorriso->volset_change_pending) {
if((gu_flag&1) && Xorriso_change_is_pending(xorriso, 0)) {
sprintf(xorriso->info_text,
"-eject: Image changes pending. -commit or -rollback first");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
@ -358,8 +380,8 @@ int Xorriso_option_end(struct XorrisO *xorriso, int flag)
cmd= "-rollback_end";
else
cmd= "-end";
if(xorriso->volset_change_pending) {
if((flag & 1) || xorriso->volset_change_pending != 1)
if(Xorriso_change_is_pending(xorriso, 0)) {
if((flag & 1) || !Xorriso_change_is_pending(xorriso, 1))
which_will= "end the program discarding image changes";
else
which_will= "commit image changes and then end the program";
@ -372,8 +394,8 @@ int Xorriso_option_end(struct XorrisO *xorriso, int flag)
return(2);
}
if(xorriso->volset_change_pending) {
if((flag & 1) || xorriso->volset_change_pending != 1) {
if(Xorriso_change_is_pending(xorriso, 0)) {
if((flag & 1) || !Xorriso_change_is_pending(xorriso, 1)) {
xorriso->volset_change_pending= 0;
} else {
ret= Xorriso_option_commit(xorriso, 1);
@ -484,7 +506,7 @@ int Xorriso_option_external_filter(struct XorrisO *xorriso,
(*idx)= end_idx;
if(end_idx - start_idx < 3) {
sprintf(xorriso->info_text,
"-external_filter : Not enough arguments given. Needed: name options path %s",
"-external_filter : Not enough parameters given. Needed: name options path %s",
xorriso->list_delimiter);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
@ -543,7 +565,7 @@ int Xorriso_option_extract(struct XorrisO *xorriso, char *iso_path,
if(!(flag&2))
Xorriso_pacifier_callback(xorriso, "files restored",xorriso->pacifier_count,
xorriso->pacifier_total, "", 1|4);
xorriso->pacifier_total, "", 1 | 4 | 8 | 32);
if(ret <= 0 || problem_count > 0)
goto ex;
@ -683,7 +705,7 @@ int Xorriso_option_find(struct XorrisO *xorriso, int argc, char **argv,
if(i+1>=end_idx) {
not_enough_arguments:;
sprintf(xorriso->info_text,
"-find[ix]: not enough arguments with test ");
"-find[ix]: not enough parameters with test ");
Text_shellsafe(argv[i], xorriso->info_text, 1);
goto sorry_ex;
}
@ -815,7 +837,7 @@ not_enough_arguments:;
if(i+1>=end_idx) {
not_enough_exec_arguments:;
sprintf(xorriso->info_text,
"-find[ix]: not enough arguments with -exec ");
"-find[ix]: not enough parameters with -exec ");
Text_shellsafe(argv[i], xorriso->info_text, 1);
goto sorry_ex;
}
@ -1422,9 +1444,18 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
"This program creates, loads, manipulates and writes ISO 9660 filesystem",
"images with Rock Ridge extensions. Write targets can be drives with optical",
"media or local filesystem objects.",
"The program operations are controlled by a sequence of commands, of which",
"the initial ones are given as program arguments or as lines in startup",
"files. Further commands may get read from files in batch mode or from",
"standard input in dialog mode.",
"",
"Preparation options:",
"Drive addresses are either /dev/... as listed with option -devices or",
" -x Only in effect if given as program argument:",
" Execute commands given as program arguments in a sequence",
" that most likely makes some sense. Default is to execute",
" program arguments exactly in the sequence as given.",
"",
"Preparation commands:",
"Drive addresses are either /dev/... as listed with command -devices or",
"disk files, eventually with prefix \"stdio:\" if non-CD-drive in /dev tree.",
"E.g. /dev/sr0 , /tmp/pseudo_drive , stdio:/dev/sdc",
" -dev address Set input and output drive and load eventual ISO image.",
@ -1484,6 +1515,8 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" Allow for writing only the usage of optical drives.",
" -early_stdio_test \"on\"|\"appendable_wo\"|\"off\"",
" Classify stdio drives by effective access permissions.",
" -data_cache_size number_of_tiles blocks_per_tile",
" Adjust size and granularity of the data read cache.",
" -blank \"fast\"|\"all\"|\"deformat\"|\"deformat_quickest\"",
" Blank medium resp. invalidate ISO image on medium.",
" -close_damaged \"as_needed\"|\"force\"",
@ -1520,6 +1553,10 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" -compliance rule[:rule...]",
" Allow more or less harmless deviations from strict standards",
" compliance.",
" -rr_reloc_dir name",
" Specifies name of relocation directory in root directory,",
" to which deep subtrees will get relocated if -compliance",
" is set to \"deep_paths_off\".",
" -boot_image \"any\"|\"isolinux\"|\"grub\"",
" |\"discard\"|\"keep\"|\"patch\"|\"dir=\"|\"bin_path=\"",
" |\"cat_path=\"|\"cat_hidden=on|iso_rr|joliet|off\"",
@ -1572,23 +1609,23 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" Print foreseeable available space on output medium",
" -pvd_info Print various id strings of the loaded ISO image."
"",
"Options with variable length path list [...] need the list delimiter text",
"as end mark if they are followed by another option. By default this delimiter",
"is \"--\". In dialog and with options read from files, the line end serves",
"as such a mark. With program arguments this mark can be omitted only with",
"the last option in the list of arguments.",
"Commands with variable length path list [...] need the list delimiter text",
"as end mark if they are followed by another command. By default this",
"delimiter is \"--\". In dialog and with commands read from files, the line",
"end serves as such a mark. With program arguments this mark can be omitted",
"only with the last command in the list of program arguments.",
"For brevity the list delimiter is referred as \"--\" throughout this text.",
"",
" -list_delimiter text Set the list delimiter to be used instead of \"--\"",
" It has to be a single word, must not be empty, not longer",
" than 80 characters, may mot contain quotation marks.",
"",
"Manipulation options:",
"Manipulation commands:",
"disk_path is a path to an object in the local filesystem tree.",
"iso_rr_path is the Rock Ridge name of a file object in the ISO image.",
"pathspec is either a disk_path or (if allowed) a pair: iso_rr_path=disk_path",
"Options marked by [***] have variable argument length and perform pattern",
"expansion if enabled by -iso_rr_pattern resp. -disk_pattern.",
"Commands marked by [***] have variable length parameter lists and perform",
"pattern expansion if enabled by -iso_rr_pattern resp. -disk_pattern.",
"",
" -pathspecs \"on\"|\"off\" Allow or disallow pathspecs of form ",
" iso_rr_path=disk_path . Only \"off\" allows eventual",
@ -1629,8 +1666,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" -rm_r iso_rr_path [***]",
" Delete the given directory trees from ISO image.",
" -mv iso_rr_path [***] iso_rr_path",
" Rename the given file objects in the ISO tree to the last",
" argument in the list.",
" Rename the given file objects in the ISO tree to iso_rr_path.",
" -chown uid iso_rr_path [***]",
" Equivalent to chown in the ISO image.",
" -chown_r uid iso_rr_path [***]",
@ -1685,7 +1721,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" getfacl, setfacl, getfattr, setfattr, get_any_xattr,",
" list_extattr, get_md5, check_md5, make_md5,",
" set_filter, show_stream, mkisofs_r, hide, find.",
" params are their arguments except iso_rr_path.",
" params are their parameters except iso_rr_path.",
" -mkdir iso_rr_path [...]",
" Create empty directories if they do not exist yet.",
" -rmdir iso_rr_path [***]",
@ -1695,8 +1731,8 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" -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.",
" -- Default list delimiter marking the end of command parameter",
" lists. It may be changed by command -list_delimiter.",
"",
" -not_paths disk_path [***]",
" Add the given paths to the list of excluded absolute paths.",
@ -1719,7 +1755,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" If \"on\" then ask the user for \"y\" or \"n\" with any",
" file before deleting or overwriting it in the ISO image.",
"",
"Filter options:",
"Filter commands:",
"External filter processes may produce synthetic file content by reading the",
"original content from stdin and writing to stdout whatever they want.",
@ -1755,12 +1791,16 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" Set global zisofs parameters:",
" level=0|...|9 , block_size=32k|64k|128k , by_magic=on|off",
"",
"Write-to-media options:",
"Write-to-media commands:",
" -rollback Discard the manipulated ISO image and reload it.",
"",
" -commit Perform the write operation and then perform -dev outdrive.",
" -changes_pending \"no\"|\"yes\"|\"mkisofs_printed\"|\"show_status\"",
" Override the automatically determined change status of the",
" loaded image, or show the current status.",
" -commit Perform the write operation if changes are pending.",
" Then perform -dev outdrive.",
" Hint: To perform a final write operation with no new -dev",
" and no new loading of image, execute option -end.",
" and no new loading of image, execute command -end.",
" -commit_eject \"in\"|\"out\"|\"all\"|\"none\"",
" Like -commit but rather eject than load image from outdrive.",
" Give up any unejected drive afterwards.",
@ -1785,7 +1825,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" Immediately eject the medium in -indev, resp. -outdev,",
" resp. both.",
"",
"Navigation options:",
"Navigation commands:",
"",
" -cd iso_rr_path Change working directory in the ISO image. iso_rr_paths",
" which do not begin with '/' will be inserted beginning at",
@ -1853,7 +1893,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" -show_stream_r iso_rr_path [***]",
" Like -show_stream but affecting all files below directories.",
"",
"Restore options which copy file objects from ISO image to disk filesystem:",
"Restore commands which copy file objects from ISO image to disk filesystem:",
" -osirrox \"on\"|\"device_files\"|\"off\"|\"banned\"",
" [:\"concat_split_on\"|\"concat_split_off\"]",
" [:\"auto_chmod_on\"|\"auto_chmod_off\"]",
@ -1902,7 +1942,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" -check_media_defaults [options] --",
" Preset options for runs of -check_media and -extract_cut.",
"",
"Compatibility emulation (argument list may be ended by list delimiter --):",
"Compatibility emulation (option list may be ended by list delimiter --):",
" -as mkisofs [-help|-version|-o|-R|-r|-J|-V|-P|-f|-m|-exclude-list|",
" -no-pad|-M|-C|-graft-points|-path-list|pathspecs|-z|",
" -no-emul-boot|-b|-c|-boot-info-table|-boot-load-size|-G|...]",
@ -1918,7 +1958,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" -pacifier \"xorriso\"|\"cdrecord\"|\"mkisofs\"",
" Choose format of UPDATE pacifier during write operations.",
"",
"General options:",
"General commands:",
" -help Print this text",
" -abort_on severity Set the threshhold for events to abort the program.",
" Useful severities: NEVER, ABORT, FATAL, FAILURE, SORRY, WARNING",
@ -1933,7 +1973,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" Behavior \"best_effort\" is most endurant but may produce",
" results which are correct only on the first glimpse.",
" -dialog \"on\"|\"off\"|\"single_line\"",
" After all arguments are processed, enter dialog mode.",
" After all program arguments are processed, enter dialog mode.",
" \"single_line\" does not support newline characters within",
" open quotation marks and no line continuation by trailing \\.",
" -page len width Prompt user after len output lines (0=no prompt).",
@ -1962,16 +2002,16 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" -logfile channel fileaddress Copy output of a channel to the given file.",
" channel may be 'R','I','M' as with -pkt_output or '.'",
" for the consolidated -pkt_output stream.",
" -mark text If text is not empty it will get put out each time an",
" option is completed.",
" -mark text If text is not empty it will get put out each time a command",
" is completed.",
" -temp_mem_limit number[\"k\"|\"m\"]",
" Set the maximum size for pattern expansion. (Default is 16m)",
" -prog text Use text as this program's name in subsequent messages",
" -prog_help text Use text as this program's name and perform -help",
" -status mode|filter Report the current settings of persistent options.",
" -status mode|filter Report the current settings of persistent commands.",
" Modes:",
" short... print only important or altered options",
" long ... print options even if they have default settings",
" short... print only important or altered settings",
" long ... print settings even if they have default values",
" long_history like long plus -history: lines",
" Filters begin with '-' and are compared literally against the",
" output lines of -status long_history. A line is put out only",
@ -1979,10 +2019,11 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" -status_history_max number Maximum number of history lines to be reported",
" with -status:long_history",
" -options_from_file fileaddress",
" Reads lines from the given file and executes them as program",
" options.",
" -no_rc Only if used as first command line argument this option",
" prevents reading and interpretation of startup files.",
" Reads lines from the given file and executes them as commands.",
" -no_rc Only if used as first program argument, this command",
" prevents reading and interpretation of these startup files:",
" /etc/default/xorriso , /etc/opt/xorriso/rc",
" /etc/xorriso/xorriso.conf , $HOME/.xorrisorc",
" -print text",
" Print a text to result channel.",
" -print_info text",
@ -2006,19 +2047,20 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" Tell whether certain extra features were enabled at compile",
" time. Code \"all\" lists all features and a headline. Other",
" codes pick a single feature. \"codes\" lists the known codes.",
" -list_arg_sorting",
" Print the sorting order of xorriso commands with option -x.",
" -version Tell program and version number",
" -end End program. Commit eventual pending changes.",
" -rollback_end",
" End program. Discard pending changes.",
"",
"",
"Option -page causes a user prompt after the given number of result lines.",
"Command -page causes a user prompt after the given number of result lines.",
"Empty input resumes output until the next prompt. Other input may be:",
" @ suppresses paging until the current action is done",
" @@ suppresses further result output but continues the action",
" @@@ aborts the current action",
" other aborts the current action and executes input as new",
" option",
" other aborts the current action and executes input as new command",
"",
#endif /* ! Xorriso_no_helP */

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2012 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -74,6 +74,16 @@ int Xorriso_option_joliet(struct XorrisO *xorriso, char *mode, int flag)
}
/* Option -list_arg_sorting */
int Xorriso_option_list_arg_sorting(struct XorrisO *xorriso, int flag)
{
int ret;
ret= Xorriso_cmd_sorting_rank(xorriso, 0, NULL, 0, 1);
return(ret);
}
/* Option -list_delimiter */
int Xorriso_option_list_delimiter(struct XorrisO *xorriso, char *text,
int flag)
@ -181,7 +191,7 @@ int Xorriso_option_load(struct XorrisO *xorriso, char *adr_mode,
{
int ret;
if(xorriso->volset_change_pending) {
if(Xorriso_change_is_pending(xorriso, 0)) {
sprintf(xorriso->info_text,
"-load: Image changes pending. -commit or -rollback first");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
@ -741,7 +751,7 @@ int Xorriso_option_mount(struct XorrisO *xorriso, char *dev, char *adr_mode,
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
if(xorriso->volset_change_pending) {
if(Xorriso_change_is_pending(xorriso, 0)) {
sprintf(xorriso->info_text,
"%s: Image changes pending. -commit or -rollback first", mnt);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);

View File

@ -293,7 +293,7 @@ int Xorriso_option_print_size(struct XorrisO *xorriso, int flag)
{
int ret, fd;
if(!xorriso->volset_change_pending) {
if(!Xorriso_change_is_pending(xorriso, 0)) {
sprintf(xorriso->info_text,"-print_size: No image modifications pending");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
if(!(flag & 1)) {
@ -440,17 +440,6 @@ int Xorriso_option_reassure(struct XorrisO *xorriso, char *mode, int flag)
}
/* Option -unregister_filter */
int Xorriso_option_unregister_filter(struct XorrisO *xorriso, char *name,
int flag)
{
int ret;
ret= Xorriso_external_filter(xorriso, name, "", "", 0, NULL, 1);
return(ret);
}
/* Option -report_about */
int Xorriso_option_report_about(struct XorrisO *xorriso, char *in_severity,
int flag)
@ -586,7 +575,7 @@ int Xorriso_option_rollback(struct XorrisO *xorriso, int flag)
char *indev= NULL, *which_will;
Xorriso_alloc_meM(indev, char, SfileadrL);
if(xorriso->volset_change_pending)
if(Xorriso_change_is_pending(xorriso, 0))
which_will= "revoke the pending image changes";
else
which_will= "reload the image";
@ -647,6 +636,26 @@ unknown_mode:;
}
/* Command -rr_reloc_dir */
int Xorriso_option_rr_reloc_dir(struct XorrisO *xorriso, char *name, int flag)
{
if(strlen(name) > 255) {
sprintf(xorriso->info_text,
"Name too long with -rr_reloc_dir. Max. 255 bytes allowed.");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
if(strchr(name, '/') != NULL) {
sprintf(xorriso->info_text,
"Name given with -rr_reloc_dir contains '/' character");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
strcpy(xorriso->rr_reloc_dir, name);
return(1);
}
/* Option -scdbackup_tag list_path record_name */
int Xorriso_option_scdbackup_tag(struct XorrisO *xorriso, char *listname,
char *recname, int flag)
@ -1498,6 +1507,17 @@ int Xorriso_option_uid(struct XorrisO *xorriso, char *uid, int flag)
}
/* Option -unregister_filter */
int Xorriso_option_unregister_filter(struct XorrisO *xorriso, char *name,
int flag)
{
int ret;
ret= Xorriso_external_filter(xorriso, name, "", "", 0, NULL, 1);
return(ret);
}
/* Options -update and -update_r
@param flag bit0= issue start and summary message
bit1= do not reset pacifier, no final pacifier message

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2012 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -450,7 +450,7 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
"ban_stdio_write","close_filter_list","commit",
"device_links","devices","end",
"for_backup", "help",
"list_formats","list_speeds",
"list_arg_sorting","list_formats","list_speeds",
"no_rc","print_size","pvd_info","pwd","pwdi","pwdx",
"read_mkisofsrc","rollback","rollback_end",
"tell_media_space","toc","version",
@ -460,7 +460,8 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
"abort_on","acl","add_plainly","application_id","auto_charset",
"abstract_file",
"backslash_codes","blank","biblio_file",
"calm_drive","cd","cdi","cdx","charset","close","close_damaged",
"calm_drive","cd","cdi","cdx","changes_pending","charset",
"close","close_damaged",
"commit_eject","compliance","copyright_file",
"dev","dialog","disk_dev_ino","disk_pattern","displacement",
"dummy","dvd_obs","early_stdio_test", "eject",
@ -472,7 +473,7 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
"pacifier","padding","path_list","pathspecs","pkt_output",
"preparer_id","print","print_info","print_mark","prompt",
"prog","prog_help","publisher","quoted_not_list","quoted_path_list",
"reassure","report_about","rom_toc_scan","scsi_log",
"reassure","report_about","rom_toc_scan","rr_reloc_dir","scsi_log",
"session_log","signal_handling","sleep",
"speed","split_size","status","status_history_max",
"stdio_sync","stream_recording","system_id","temp_mem_limit",
@ -482,6 +483,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",
"data_cache_size",
"errfile_log","error_behavior","extract","extract_single",
"jigdo","load","logfile",
"map","map_single","page","return_with",
@ -571,9 +573,278 @@ ex:
}
/* @param flag bit0= list sorting order rather than looking for argv[idx]
*/
int Xorriso_cmd_sorting_rank(struct XorrisO *xorriso,
int argc, char **argv, int idx, int flag)
{
int ret, i, cmd_data_size= 2 * SfileadrL;
char *cmd, *cmd_data= NULL;
static char *commands[]= {
"* Execution order of program arguments with option -x:",
"x",
"* Support for frontend programs via stdin and stdout (1):",
"prog", "prog_help",
"* Exception processing:",
"abort_on", "return_with", "report_about", "signal_handling",
"error_behavior",
"* Scripting, dialog and program control features (1):",
"no_rc", "help", "version", "list_extras", "list_arg_sorting",
"temp_mem_limit", "backslash_codes",
"errfile_log", "session_log", "scsi_log",
"options_from_file", "list_delimiter",
"print", "print_info", "print_mark", "prompt", "sleep",
"* Drive and media related inquiry actions (1):",
"devices", "device_links",
"mount_opts", "mount_cmd", "session_string",
"* Influencing the behavior of image loading:",
"load", "displacement", "drive_class", "assert_volid", "in_charset",
"auto_charset", "hardlinks", "acl", "xattr", "md5", "for_backup",
"disk_dev_ino", "rom_toc_scan", "calm_drive", "ban_stdio_write",
"early_stdio_test", "data_cache_size",
"* Character sets:",
"charset", "local_charset",
"* Aquiring source and target drive:",
"dev", "indev", "outdev",
"* Drive and media related inquiry actions (2):",
"list_profiles", "list_formats", "list_speeds",
"toc", "pvd_info",
"* Settings for file insertion:",
"file_size_limit", "not_mgt", "not_paths", "not_leaf", "not_list",
"quoted_not_list", "follow", "pathspecs", "overwrite", "split_size",
"* Navigation in ISO image and disk filesystem (1):",
"cd", "cdx", "pwd", "pwdx",
"* Inserting files into ISO image:",
"disk_pattern", "add_plainly",
"mkdir", "add", "path_list", "quoted_path_list",
"map", "map_single", "map_l", "update", "update_r", "update_l",
"cut_out", "cpr",
"clone", "cp_clone",
"* Navigation in ISO image and disk filesystem (2):",
"ls", "lsd", "lsl", "lsdl", "lsx", "lsdx", "lslx", "lsdlx",
"getfacl", "getfacl_r", "getfattr", "getfattr_r", "du", "dus",
"dux", "dusx", "findx",
"compare", "compare_r", "compare_l", "show_stream", "show_stream_r",
"* File manipulations:",
"iso_rr_pattern",
"rm", "rm_r", "rmdir", "mv",
"chown", "chown_r", "chgrp", "chgrp_r", "chmod", "chmod_r", "setfacl",
"setfacl_r", "setfacl_list", "setfattr", "setfattr_r", "setfattr_list",
"alter_date", "alter_date_r", "hide",
"* Filters for data file content:",
"external_filter", "unregister_filter", "close_filter_list",
"set_filter", "set_filter_r",
"* Tree traversal command -find:",
"find",
"* osirrox ISO-to-disk restore options:",
"osirrox", "extract", "extract_single", "extract_l", "extract_cut",
"cpx", "cpax", "cp_rx", "cp_rax", "paste_in",
"mount",
"* Settings for result writing:",
"joliet", "compliance", "rr_reloc_dir", "volid", "volset_id", "publisher",
"application_id", "system_id", "volume_date", "copyright_file",
"abstract_file", "biblio_file", "preparer_id", "out_charset",
"read_mkisofsrc",
"uid", "gid", "zisofs", "speed", "stream_recording", "dvd_obs",
"stdio_sync", "dummy", "fs", "close", "padding",
"grow_blindly", "pacifier", "scdbackup_tag",
"* Bootable ISO images:",
"boot_image", "append_partition",
"* Jigdo Template Extraction:",
"jigdo",
"* Command compatibility emulations:",
"as",
"* Scripting, dialog and program control features (2):",
"history", "status_history_max", "status",
"* Drive and media related inquiry actions (3):",
"print_size", "tell_media_space",
"* Writing the result, drive control:",
"format", "blank", "close_damaged",
"rollback", "changes_pending", "commit", "commit_eject",
"eject",
"* Evaluation of readability and recovery:",
"check_media_defaults", "check_media", "check_md5", "check_md5_r",
"* Support for frontend programs via stdin and stdout (2):",
"pkt_output", "logfile", "mark",
"* Dialog mode control:",
"dialog", "page", "use_readline", "reassure",
"* Scripting, dialog and program control features (3):",
"rollback_end", "end",
""
};
if(flag & 1) {
for(i= 0; commands[i][0] !=0; i++) {
if(commands[i][0] == '*')
sprintf(xorriso->result_line, "#%s\n", commands[i] + 1);
else
sprintf(xorriso->result_line, "-%s\n", commands[i]);
Xorriso_result(xorriso, 0);
}
ret= 1; goto ex;
}
if(argc <= 0)
{ret= -1; goto ex;}
Xorriso_alloc_meM(cmd_data, char, cmd_data_size);
ret= Xorriso_normalize_command(xorriso, argv[idx], -1,
cmd_data, cmd_data_size, &cmd, 0);
if(ret < 0)
goto ex;
if(cmd[0] == '#' || cmd[0] == 0 ||
strcmp(cmd, xorriso->list_delimiter) == 0) {
/* Move to end: comment line , empty option , orphaned list delimiter */
ret= 0x7fffffff; goto ex;
}
for(i= 0; commands[i][0] !=0; i++) {
if(commands[i][0] == '*') /* headline in command list */
continue;
if(strcmp(commands[i], cmd) != 0)
continue;
ret= i + 1; goto ex;
}
ret= 1;
ex:
Xorriso_free_meM(cmd_data);
return(ret);
}
int Xorriso__cmp_cmd_rank(const void *a, const void *b)
{
int ra, rb;
ra= ((int *) a)[1];
rb= ((int *) b)[1];
if(ra < rb)
return(-1);
if(ra > rb)
return(1);
ra= ((int *) a)[2];
rb= ((int *) b)[2];
if(ra < rb)
return(-1);
if(ra > rb)
return(1);
return(0);
}
/* @param flag bit0= print command sequence rather than executing it
bit1= these are command line arguments
(for xorriso->argument_emulation)
*/
int Xorriso_exec_args_sorted(struct XorrisO *xorriso,
int argc, char **argv, int *idx, int flag)
{
int cmd_count= 0, ret, i, arg_count, *idx_rank= NULL, cmd_idx;
/* Count commands and allocate index-rank array */
for(i= *idx; i < argc; i++) {
ret= Xorriso_count_args(xorriso, argc - i, argv + i, &arg_count, 1);
if(ret <= 0)
goto ex;
if(ret != 1)
continue;
cmd_count++;
i+= arg_count;
}
if(cmd_count <= 0)
{ret= 1; goto ex;}
Xorriso_alloc_meM(idx_rank, int, 3 * cmd_count);
/* Fill index-rank array and sort */
cmd_count= 0;
for(i= *idx; i < argc; i++) {
ret= Xorriso_count_args(xorriso, argc - i, argv + i, &arg_count, 1);
if(ret <= 0)
goto ex;
if(ret != 1)
continue;
idx_rank[3 * cmd_count]= i;
ret= Xorriso_cmd_sorting_rank(xorriso, argc, argv, i, 0);
if(ret < 0)
goto ex;
idx_rank[3 * cmd_count + 1]= ret;
idx_rank[3 * cmd_count + 2]= cmd_count;
cmd_count++;
i+= arg_count;
}
qsort(idx_rank, cmd_count, 3 * sizeof(int), Xorriso__cmp_cmd_rank);
/* Execute or print indice from index-rank array */
if(flag & 1) {
sprintf(xorriso->result_line,
"Automatically determined command sequence:\n");
Xorriso_result(xorriso, 0);
xorriso->result_line[0]= 0;
}
for(i= 0; i < cmd_count; i++) {
cmd_idx= idx_rank[3 * i];
if(flag & 1) {
if(strlen(xorriso->result_line) + 1 + strlen(argv[cmd_idx]) > 78) {
strcat(xorriso->result_line, "\n");
Xorriso_result(xorriso, 0);
xorriso->result_line[0]= 0;
}
sprintf(xorriso->result_line + strlen(xorriso->result_line),
" %s", argv[cmd_idx]);
} else {
ret= Xorriso_interpreter(xorriso, argc, argv, &cmd_idx, 4 | (flag & 2));
if(ret <= 0 || ret == 3)
goto ex;
}
}
if(flag & 1) {
if(strlen(xorriso->result_line) > 0) {
strcat(xorriso->result_line, "\n");
Xorriso_result(xorriso, 0);
}
} else
*idx= argc;
ret= 1;
ex:
Xorriso_free_meM(idx_rank);
return(ret);
}
/* @param flag bit0= recursion
bit1= these are command line arguments
(for xorriso->argument_emulation)
bit2= Only execute the one command argv[*idx] and advance
*idx to the next command if sucessful. Then return.
*/
int Xorriso_interpreter(struct XorrisO *xorriso,
int argc, char **argv, int *idx, int flag)
@ -610,15 +881,19 @@ next_command:;
if((*idx)>=argc)
{ret= 1; goto ex;}
}
if((xorriso->arrange_args || (flag & 8)) && !(flag & (4 | 16))) {
ret= Xorriso_exec_args_sorted(xorriso, argc, argv, idx, 0);
goto ex;
}
}
ret= Xorriso_count_args(xorriso, argc - *idx, argv + *idx, &arg_count, 1);
if((ret == 1 || ret == 2) &&
strcmp(argv[*idx], xorriso->list_delimiter) != 0) {
sprintf(xorriso->info_text, "Command: %s", argv[*idx]);
sprintf(xorriso->info_text, "Command: %s", argv[*idx]);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "DEBUG", 0);
for(i= 1; i <= arg_count && *idx + i < argc; i++) {
sprintf(xorriso->info_text, "Argument: %s", argv[*idx + i]);
sprintf(xorriso->info_text, "Parameter: %s", argv[*idx + i]);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "DEBUG", 0);
}
if(*idx + arg_count >= argc) {
@ -735,6 +1010,10 @@ next_command:;
(*idx)++;
ret= Xorriso_option_cdx(xorriso, arg1, 0);
} else if(strcmp(cmd, "changes_pending")==0) {
(*idx)++;
ret= Xorriso_option_changes_pending(xorriso, arg1, 0);
} else if(strcmp(cmd,"charset")==0) {
(*idx)++;
ret= Xorriso_option_charset(xorriso, arg1, 3);
@ -841,6 +1120,10 @@ next_command:;
ret= Xorriso_option_cut_out(xorriso, arg1, arg2,
argv[(*idx)-2], argv[(*idx)-1], 0);
} else if(strcmp(cmd,"data_cache_size")==0) {
(*idx)+= 2;
ret= Xorriso_option_data_cache_size(xorriso, arg1, arg2, 0);
} else if(strcmp(cmd,"dev")==0) {
(*idx)++;
ret= Xorriso_option_dev(xorriso, arg1, 3);
@ -1019,6 +1302,9 @@ next_command:;
(*idx)++;
ret= Xorriso_option_joliet(xorriso, arg1, 0);
} else if(strcmp(cmd, "list_arg_sorting") == 0) {
ret= Xorriso_option_list_arg_sorting(xorriso, 0);
} else if(strcmp(cmd, "list_delimiter") == 0) {
(*idx)++;
ret= Xorriso_option_list_delimiter(xorriso, arg1, 0);
@ -1278,6 +1564,10 @@ next_command:;
(*idx)++;
Xorriso_option_rom_toc_scan(xorriso, arg1, 0);
} else if(strcmp(cmd,"rr_reloc_dir")==0) {
(*idx)++;
Xorriso_option_rr_reloc_dir(xorriso, arg1, 0);
} else if(strcmp(cmd,"scdbackup_tag")==0) {
(*idx)+= 2;
ret= Xorriso_option_scdbackup_tag(xorriso, arg1, arg2, 0);
@ -1423,6 +1713,9 @@ next_command:;
(*idx)+= 2;
ret= Xorriso_option_volume_date(xorriso, arg1, arg2, 0);
} else if(strcmp(cmd, "x") == 0) {
/* only in effect in Xorriso_prescan_args() */;
} else if(strcmp(cmd,"xattr")==0) {
(*idx)++;
ret= Xorriso_option_xattr(xorriso, arg1, 0);
@ -1459,7 +1752,7 @@ eval_any_problems:
if(ret<0)
goto ex;
if(*idx<argc)
if(*idx < argc && !(flag & 4))
goto next_command;
ex:;
@ -1589,6 +1882,7 @@ int Xorriso_prescan_args(struct XorrisO *xorriso, int argc, char **argv,
int flag)
/*
bit0= do not interpret argv[1]
bit1= complain about inknown arguments
*/
/*
return:
@ -1750,6 +2044,9 @@ protect_stdout:;
Xorriso_option_signal_handling(xorriso, arg1, 1); /* no install */
was_signal_handling= 1;
} else if(strcmp(original_cmd, "-x") == 0) {
xorriso->arrange_args= 1;
} else {
ret= Xorriso_count_args(xorriso, argc - i, argv + i, &arg_count, 1);
if(ret == 1) {
@ -2388,7 +2685,7 @@ int Xorriso_normalize_acl_text(struct XorrisO *xorriso, char *in_text,
if(pass == 0) {
*access_acl_text= calloc(access_count + 1, 1);
*default_acl_text= calloc(default_count + 1, 1);
if(access_acl_text == NULL || *default_acl_text == NULL) {
if(*access_acl_text == NULL || *default_acl_text == NULL) {
Xorriso_no_malloc_memory(xorriso, access_acl_text, 0);
{ret= -1; goto ex;}
}

View File

@ -88,5 +88,10 @@ int Xorriso_normalize_acl_text(struct XorrisO *xorriso, char *in_text,
int Xorriso_read_mkisofsrc(struct XorrisO *xorriso, int flag);
/* @param flag bit0= list sorting order rather than looking for argv[idx]
*/
int Xorriso_cmd_sorting_rank(struct XorrisO *xorriso,
int argc, char **argv, int idx, int flag);
#endif /* ! Xorriso_pvt_cmd_includeD */

View File

@ -2,7 +2,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2012 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -194,7 +194,7 @@ int Xorriso_restore_is_identical(struct XorrisO *xorriso, void *in_node,
int dummy;
memset(type_text, 0, 5);
if(!xorriso->volset_change_pending)
if(!Xorriso_change_is_pending(xorriso, 0))
return(0);
if(flag&1) {
node= (IsoNode *) in_node;
@ -596,7 +596,7 @@ int Xorriso_tree_restore_node(struct XorrisO *xorriso, IsoNode *node,
xorriso->pacifier_byte_count - last_p_count >= 128*1024) {
Xorriso_pacifier_callback(xorriso, "files restored",
xorriso->pacifier_count,
xorriso->pacifier_total, "", 2|4);
xorriso->pacifier_total, "", 2 | 4 | 8);
last_p_count= xorriso->pacifier_byte_count;
}
}
@ -1044,7 +1044,7 @@ went_well:;
if(!(flag&2))
Xorriso_pacifier_callback(xorriso, "files restored",
xorriso->pacifier_count,
xorriso->pacifier_total, "", 4);
xorriso->pacifier_total, "", 4 | 8);
ret= 1;
ex:;
if(split_parts!=NULL)

View File

@ -433,7 +433,7 @@ int Xorriso_read_lines(struct XorrisO *xorriso, FILE *fp, int *linecount,
}
} else {
(*argv)= Smem_malloC(sizeof(char *));
if(argv == NULL)
if(*argv == NULL)
{ret= -1; goto ex;}
(*argv)[0]= strdup(line);
if((*argv)[0] == NULL)
@ -1289,6 +1289,19 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= ((xorriso->cache_default & 3) == 3);
sprintf(line, "-data_cache_size ");
if(xorriso->cache_default & 1)
sprintf(line + strlen(line), "default ");
else
sprintf(line + strlen(line), "%d ", xorriso->cache_num_tiles);
if(xorriso->cache_default & 2)
sprintf(line + strlen(line), "default\n");
else
sprintf(line + strlen(line), "%d\n", xorriso->cache_tile_blocks);
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";
@ -1881,6 +1894,13 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= (xorriso->rr_reloc_dir[0] == 0);
sprintf(line, "-rr_reloc_dir ");
Text_shellsafe(xorriso->rr_reloc_dir, line, 1);
strcat(line, "\n");
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= (xorriso->assert_volid[0] == 0);
sprintf(line, "-assert_volid ");
Text_shellsafe(xorriso->assert_volid, line, 1);
@ -2011,6 +2031,7 @@ int Xorriso_pacifier_reset(struct XorrisO *xorriso, int flag)
bit4= with bit3: count is in blocks, else in bytes
bit5= with bit3: report total speed
bit6= report with carriage return rather than line feed
bit7= with bit5: speed unit for outdev rather than indev
*/
int Xorriso_pacifier_callback(struct XorrisO *xorriso, char *what_done,
off_t count, off_t todo, char *current_object,
@ -2019,6 +2040,7 @@ int Xorriso_pacifier_callback(struct XorrisO *xorriso, char *what_done,
double current_time, since, interval_time, speed, speed_factor;
char count_text[80], byte_text[80], profile_name[80], *speed_unit;
int ret, profile_number;
off_t amount;
current_time= Sfile_microtime(0);
interval_time= current_time - xorriso->last_update_time;
@ -2055,19 +2077,24 @@ int Xorriso_pacifier_callback(struct XorrisO *xorriso, char *what_done,
(flag & (8 | 64)) ? "s" : "seconds");
}
speed= -1.0;
if(flag & 4)
amount= xorriso->pacifier_byte_count;
else
amount= count;
if((flag & 8)) {
if(flag & 32) {
if(since > 0)
speed= count / since;
} else if(count >= xorriso->pacifier_prev_count) {
speed= amount / since;
} else if(amount >= xorriso->pacifier_prev_count) {
if(interval_time > 0)
speed= (count - xorriso->pacifier_prev_count) / interval_time;
speed= (amount - xorriso->pacifier_prev_count) / interval_time;
}
}
if(speed >= 0.0) {
if(flag & 16)
speed*= 2048.0;
ret= Xorriso_get_profile(xorriso, &profile_number, profile_name, 0);
ret= Xorriso_get_profile(xorriso, &profile_number, profile_name,
(flag >> 6) & 2);
speed_factor= 1385000;
speed_unit= "D";
if(ret == 2) {
@ -2080,7 +2107,7 @@ int Xorriso_pacifier_callback(struct XorrisO *xorriso, char *what_done,
sprintf(xorriso->info_text+strlen(xorriso->info_text), " %s %.1fx%s",
(flag & 32 ? "=" : ","), speed / speed_factor, speed_unit);
}
xorriso->pacifier_prev_count= count;
xorriso->pacifier_prev_count= amount;
if(current_object[0]!=0)
sprintf(xorriso->info_text+strlen(xorriso->info_text),
", now at %s", current_object);

View File

@ -825,6 +825,10 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
ext|= isoburn_igopt_no_emul_toc;
isoburn_igopt_set_extensions(sopts, ext);
isoburn_igopt_set_relaxed(sopts, relax);
ret = isoburn_igopt_set_rr_reloc(sopts, xorriso->rr_reloc_dir,
xorriso->rr_reloc_flags);
if(ret <= 0)
{ret= 0; goto ex;}
ret= isoburn_igopt_set_untranslated_name_len(sopts,
xorriso->untranslated_name_len);
if(ret <= 0)
@ -2064,6 +2068,12 @@ int Xorriso_relax_compliance(struct XorrisO *xorriso, char *mode,
} else if(l == 14 && strncmp(cpt, "full_ascii_off", l) == 0) {
xorriso->relax_compliance&= ~isoburn_igopt_allow_full_ascii;
} else if((l == 10 && strncmp(cpt, "7bit_ascii", l) == 0) ||
(l == 13 && strncmp(cpt, "7bit_ascii_on", l) == 0)) {
xorriso->relax_compliance|= isoburn_igopt_allow_7bit_ascii;
} else if(l == 14 && strncmp(cpt, "7bit_ascii_off", l) == 0) {
xorriso->relax_compliance&= ~isoburn_igopt_allow_7bit_ascii;
} else if((l == 17 && strncmp(cpt, "joliet_long_paths", l) == 0) ||
(l == 20 && strncmp(cpt, "joliet_long_paths_on", l) == 0)) {
xorriso->relax_compliance|= isoburn_igopt_joliet_longer_paths;
@ -2218,6 +2228,8 @@ int Xorriso_get_relax_text(struct XorrisO *xorriso, char mode[1024],
strcat(mode, ":lowercase");
if(r & isoburn_igopt_allow_full_ascii)
strcat(mode, ":full_ascii");
else if(r & isoburn_igopt_allow_7bit_ascii)
strcat(mode, ":7bit_ascii");
if(r & isoburn_igopt_joliet_longer_paths)
strcat(mode, ":joliet_long_paths");
if(r & isoburn_igopt_joliet_long_names)
@ -2528,7 +2540,7 @@ int Xorriso_close_damaged(struct XorrisO *xorriso, int flag)
struct burn_drive *drive;
struct burn_write_opts *burn_options= NULL;
if(xorriso->volset_change_pending) {
if(Xorriso_change_is_pending(xorriso, 0)) {
sprintf(xorriso->info_text,
"Image changes pending. -commit or -rollback first");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);

View File

@ -9,7 +9,7 @@
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH XORRECORD 1 "Version 1.1.9, Dec 01, 2011"
.TH XORRECORD 1 "Version 1.2.2, Apr 02, 2012"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -743,7 +743,7 @@ Thomas Schmitt <scdbackup@gmx.net>
.br
for libburnia\-project.org
.SH COPYRIGHT
Copyright (c) 2011 Thomas Schmitt
Copyright (c) 2011 \- 2012 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

View File

@ -8,14 +8,14 @@ END-INFO-DIR-ENTRY
xorrecord - Emulation of CD/DVD/BD program cdrecord by program
xorriso
Copyright (C) 2011 - 2011 Thomas Schmitt
Copyright (C) 2011 - 2012 Thomas Schmitt
Permission is granted to distrubute this text freely.

File: xorrecord.info, Node: Top, Next: Overview, Up: (dir)
xorrecord 1.1.9
xorrecord 1.2.2
***************
xorrecord - Emulation of CD/DVD/BD program cdrecord by program xorriso
@ -784,7 +784,7 @@ for libburnia-project.org
10.2 Copyright
==============
Copyright (c) 2011 Thomas Schmitt
Copyright (c) 2011 - 2012 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
@ -933,7 +933,7 @@ Node: Files30439
Node: Seealso30986
Node: Bugreport31351
Node: Legal31932
Node: CommandIdx32852
Node: ConceptIdx35619
Node: CommandIdx32859
Node: ConceptIdx35626

End Tag Table

View File

@ -1,7 +1,7 @@
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename xorrecord.info
@settitle GNU xorrecord 1.1.9
@settitle GNU xorrecord 1.2.2
@c %**end of header
@c
@c man-ignore-lines begin
@ -50,7 +50,7 @@
@c man .\" First parameter, NAME, should be all caps
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
@c man .\" other parameters are allowed: see man(7), man(1)
@c man .TH XORRECORD 1 "Version 1.1.9, Dec 01, 2011"
@c man .TH XORRECORD 1 "Version 1.2.2, Apr 02, 2012"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -68,7 +68,7 @@
@copying
xorrecord - Emulation of CD/DVD/BD program cdrecord by program xorriso
Copyright @copyright{} 2011 - 2011 Thomas Schmitt
Copyright @copyright{} 2011 - 2012 Thomas Schmitt
@quotation
Permission is granted to distrubute this text freely.
@ -76,7 +76,7 @@ Permission is granted to distrubute this text freely.
@end copying
@c man-ignore-lines end
@titlepage
@title Manual of GNU xorriso personality xorrecord 1.1.9
@title Manual of GNU xorriso personality xorrecord 1.2.2
@author Thomas Schmitt
@page
@vskip 0pt plus 1filll
@ -85,7 +85,7 @@ Permission is granted to distrubute this text freely.
@contents
@ifnottex
@node Top
@top xorrecord 1.1.9
@top xorrecord 1.2.2
@c man-ignore-lines 1
@c man .SH NAME
@ -1038,7 +1038,7 @@ Thomas Schmitt <scdbackup@@gmx.net>
for libburnia-project.org
@c man .SH COPYRIGHT
@section Copyright
Copyright (c) 2011 Thomas Schmitt
Copyright (c) 2011 - 2012 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

File diff suppressed because it is too large Load Diff

View File

@ -15,7 +15,7 @@
dialog tool xorriso.
Alternatively to command interpreters it is possible to run all options of
xorriso directly via the calls of the "Options API".
xorriso directly via the calls of the "Command API".
The "Problem Status and Message API" shall then be used to obtain the
text output of the options.
@ -60,8 +60,8 @@ struct XorrisO;
@since 0.5.8
*/
#define Xorriso_header_version_majoR 1
#define Xorriso_header_version_minoR 1
#define Xorriso_header_version_micrO 9
#define Xorriso_header_version_minoR 2
#define Xorriso_header_version_micrO 2
/** If needed: Something like ".pl01" to indicate a bug fix. Normally empty.
@ -172,7 +172,7 @@ int Xorriso_new(struct XorrisO ** xorriso, char *progname, int flag);
Xorriso_prescan_args().
The other command interpreters may be used only after
Xorriso_startup_libraries(). The same restriction applies to the
calls of the Options API further below.
calls of the Command API further below.
*/
@ -191,7 +191,7 @@ int Xorriso_startup_libraries(struct XorrisO *xorriso, int flag);
/* Note: After library startup, you may run Command Interpreters or call
functions from the Options API.
functions from the Command API.
Wenn all desired activities are done, you may check whether there are
uncommited changes pending, compute an exit value, destroy the XorrisO
@ -236,6 +236,8 @@ int Xorriso_destroy(struct XorrisO **xorriso, int flag);
get into effect before the libraries get initialized:
-abort_on , -report_about , -return_with , -list_delimiter ,
-scsi_log , -signal_handling
This is the only occasion where command -x has an effect:
-x
Some commands get executed only if they are the only command in argv:
-prog_help , -help
The following is recognized only if it is the first of all arguments:
@ -298,9 +300,15 @@ int Xorriso_program_arg_bsl(struct XorrisO *xorriso, int argc, char ***argv,
/* Interpret argv as xorriso command options and their parameters.
(An alternative is to call functions of the options API directly and to
perform own error status evaluation. See below: Options API.)
perform own error status evaluation. See below: Command API.)
After the first command and its parameters there may be more commands and
parameters. All parameters must be given in the same call as their command.
@since 1.2.2:
Commands may get arranged in a sequence that is most likely to make sense.
E.g. image loading settings before drive aquiration, then commands fori
adding files, then settings for writing, then writing.
This feature may be enabled by command "-x" in Xorriso_prescan_args()
or by parameter flag of this call.
@param xorriso The context object in which to perform the commands.
@param argc Number of arguments.
@param argv The arguments. argv[0] contains the program name.
@ -308,10 +316,24 @@ int Xorriso_program_arg_bsl(struct XorrisO *xorriso, int argc, char ***argv,
@param idx Argument cursor. When this function is called, *idx must
be at least 1, argv[*idx] must be a command.
*idx will iterate over commands and parameters until this
function aborts or until argc is reached.
function aborts, or until argc is reached, or only once if
flag bit2 is set.
@param flag bit0= reserved. Indicates recursion. Submit 0.
bit1= Indicates that these are the main() program start
arguments
arguments. This enables their use with emulations
which where set with Xorriso_new(), or argument
arranging.
bit2= Only execute the one command argv[*idx] and advance
*idx to the next command if sucessful. Then return.
This prevents any argument arranging.
@since 1.2.2
bit3= With bit1 and not bit2:
Enable argument arranging as with
Xorriso_prescan_args() and command "-x".
@since 1.2.2
bit4= With bit1:
Surely disable argument arranging.
@since 1.2.2
@return <=0 = error
1 = success
2 = problem event ignored
@ -567,21 +589,21 @@ int Xorriso_lst_destroy_all(struct Xorriso_lsT **lstring, int flag);
/* ---------------------------- Options API ------------------------ */
/* See man 1 xorriso for explanation of the particular options */
/* ---------------------------- Command API ------------------------ */
/* See man 1 xorriso for explanation of the particular commands */
/*
Before each call to an option function, there should happen:
Before each call to a command function, there should happen:
Xorriso_set_problem_status() with empty severity text.
After each call to an option function, there should happen:
After each call to a command function, there should happen:
Xorriso_eval_problem_status()
One should follow its eventual advice to abort.
Options with a varying number of arguments get then passed like
Commands with a varying number of arguments get then passed like
Xorriso_interpreter(). E.g.:
int Xorriso_option_add(struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag);
The option functions will begin to read the arguments at position *idx
The command functions will begin to read the arguments at position *idx
and will see the list end either at the next argv which contains the
-list_delimiter text or at argv[argc-1].
After the call, *idx will be the index of the first not yet interpreted
@ -595,96 +617,101 @@ int Xorriso_lst_destroy_all(struct Xorriso_lsT **lstring, int flag);
*/
/* Option -abort_on */
/* Command -abort_on */
int Xorriso_option_abort_on(struct XorrisO *xorriso, char *severity, int flag);
/* Option -abstract_file */
/* Command -abstract_file */
/* @since 0.6.0 */
int Xorriso_option_abstract_file(struct XorrisO *xorriso, char *name,
int flag);
/* Option -acl "on"|"off" */
/* Command -acl "on"|"off" */
int Xorriso_option_acl(struct XorrisO *xorriso, char *mode, int flag);
/* Option -add */
/* Command -add */
/* @param flag bit0=do not report the added item
bit1=do not reset pacifier, no final pacifier message
*/
int Xorriso_option_add(struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag);
/* Option -add_plainly "on"|"off" */
/* Command -add_plainly "on"|"off" */
int Xorriso_option_add_plainly(struct XorrisO *xorriso, char *mode,
int flag);
/* Option -alter_date, alter_date_r */
/* Command -alter_date, alter_date_r */
/* @param flag bit0=recursive (-alter_date_r)
*/
int Xorriso_option_alter_date(struct XorrisO *xorriso,
char *time_type, char *timestring,
int argc, char **argv, int *idx, int flag);
/* Option -append_partition */
/* Command -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);
/* Option -application_id */
/* Command -application_id */
int Xorriso_option_application_id(struct XorrisO *xorriso, char *name,
int flag);
/* Option -as */
/* Command -as */
/* @param flag bit0=do not report the added item
bit1=do not reset pacifier, no final pacifier message
*/
int Xorriso_option_as(struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag);
/* Option -assert_volid */
/* Command -assert_volid */
int Xorriso_option_assert_volid(struct XorrisO *xorriso, char *pattern,
char *severity, int flag);
/* Option -auto_charset "on"|"off" */
/* Command -auto_charset "on"|"off" */
int Xorriso_option_auto_charset(struct XorrisO *xorriso, char *mode, int flag);
/* Option -backslash_codes */
/* Command -backslash_codes */
int Xorriso_option_backslash_codes(struct XorrisO *xorriso, char *mode,
int flag);
/* Option -ban_stdio_write */
/* Command -ban_stdio_write */
int Xorriso_option_ban_stdio_write(struct XorrisO *xorriso, int flag);
/* Option -biblio_file */
/* Command -biblio_file */
/* @since 0.6.0 */
int Xorriso_option_biblio_file(struct XorrisO *xorriso, char *name, int flag);
/* Option -blank and -format */
/* Command -blank and -format */
/* @param flag bit0= format rather than blank
@return <=0 error , 1 success, 2 revoked by -reassure
*/
int Xorriso_option_blank(struct XorrisO *xorriso, char *mode, int flag);
/* Option -boot_image */
/* Command -boot_image */
int Xorriso_option_boot_image(struct XorrisO *xorriso, char *form,
char *treatment, int flag);
/* Option -calm_drive */
/* Command -calm_drive */
int Xorriso_option_calm_drive(struct XorrisO *xorriso, char *which, int flag);
/* Option -cd alias -cdi */
/* Command -cd alias -cdi */
int Xorriso_option_cdi(struct XorrisO *xorriso, char *iso_rr_path, int flag);
/* Option -cdx */
/* Command -cdx */
int Xorriso_option_cdx(struct XorrisO *xorriso, char *disk_path, int flag);
/* Option -charset */
/* Command -changes_pending */
/* @since 1.2.2 */
int Xorriso_option_changes_pending(struct XorrisO *xorriso, char *state,
int flag);
/* Command -charset */
/* @param flag bit0= set in_charset
bit1= set out_charset
*/
int Xorriso_option_charset(struct XorrisO *xorriso, char *name, int flag);
/* Options -check_md5 and -check_md5_r
/* Command -check_md5 and -check_md5_r
@param flag bit0= issue summary message
bit1= do not reset pacifier, no final pacifier message
bit2= do not issue pacifier messages at all
@ -693,62 +720,62 @@ int Xorriso_option_charset(struct XorrisO *xorriso, char *name, int flag);
int Xorriso_option_check_md5(struct XorrisO *xorriso,
int argc, char **argv, int *idx, int flag);
/* Option -check_media */
/* Command -check_media */
int Xorriso_option_check_media(struct XorrisO *xorriso,
int argc, char **argv, int *idx, int flag);
/* Option -check_media_defaults */
/* Command -check_media_defaults */
int Xorriso_option_check_media_defaults(struct XorrisO *xorriso,
int argc, char **argv, int *idx, int flag);
/* Option -chgrp alias -chgrpi , chgrp_r alias chgrpi */
/* Command -chgrp alias -chgrpi , chgrp_r alias chgrpi */
/* @param flag bit0=recursive (-chgrp_r)
*/
int Xorriso_option_chgrpi(struct XorrisO *xorriso, char *gid,
int argc, char **argv, int *idx, int flag);
/* Option -chmod alias -chmodi , -chmod_r alias chmod_ri */
/* Command -chmod alias -chmodi , -chmod_r alias chmod_ri */
/* @param flag bit0=recursive (-chmod_r)
*/
int Xorriso_option_chmodi(struct XorrisO *xorriso, char *mode,
int argc, char **argv, int *idx, int flag);
/* Option -chown alias -chowni , chown_r alias chown_ri */
/* Command -chown alias -chowni , chown_r alias chown_ri */
/* @param flag bit0=recursive (-chown_r)
*/
int Xorriso_option_chowni(struct XorrisO *xorriso, char *uid,
int argc, char **argv, int *idx, int flag);
/* Option -clone */
/* Command -clone */
/* @since 1.0.2 */
int Xorriso_option_clone(struct XorrisO *xorriso, char *origin, char *dest,
int flag);
/* Option -close "on"|"off" */
/* Command -close "on"|"off" */
int Xorriso_option_close(struct XorrisO *xorriso, char *mode, int flag);
/* Option -close_damaged */
/* Command -close_damaged */
/* @since 1.1.0 */
int Xorriso_option_close_damaged(struct XorrisO *xorriso, char *mode,
int flag);
/* Option -close_filter_list */
/* Command -close_filter_list */
int Xorriso_option_close_filter_list(struct XorrisO *xorriso, int flag);
/* Option -commit */
/* @param flag bit0= leave indrive and outdrive aquired as they were,
i.e. do not aquire outdrive as new in-out-drive
/* Command -commit */
/* @param flag bit0= leave indrive and outdrive acquired as they were,
i.e. do not acquire outdrive as new in-out-drive
bit1= do not perform eventual -reassure
@return <=0 error , 1 success, 2 revoked by -reassure
*/
int Xorriso_option_commit(struct XorrisO *xorriso, int flag);
/* Option -commit_eject */
/* Command -commit_eject */
/* @return <=0 error , 1 success, 2 revoked by -reassure
*/
int Xorriso_option_commit_eject(struct XorrisO *xorriso, char *which, int flag);
/* Option -compare and -compare_r
/* Command -compare and -compare_r
@param flag bit0= issue summary message
bit1= do not reset pacifier, no final pacifier message
bit2= do not issue pacifier messages at all
@ -757,99 +784,104 @@ int Xorriso_option_commit_eject(struct XorrisO *xorriso, char *which, int flag);
int Xorriso_option_compare(struct XorrisO *xorriso, char *disk_path,
char *iso_path, int flag);
/* Option -compliance */
/* Command -compliance */
int Xorriso_option_compliance(struct XorrisO *xorriso, char *mode, int flag);
/* Option -copyright_file */
/* Command -copyright_file */
/* @since 0.6.0 */
int Xorriso_option_copyright_file(struct XorrisO *xorriso, char *name,
int flag);
/* Option -cp_clone */
/* Command -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 */
/* Command -cpr alias -cpri */
int Xorriso_option_cpri( struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag);
/* Options -cpx , -cpax, -cp_rx , -cp_rax */
/* Command -cpx , -cpax, -cp_rx , -cp_rax */
/* @param flag bit0= recursive (-cp_rx, -cp_rax)
bit1= full property restore (-cpax, -cp_rax)
*/
int Xorriso_option_cpx(struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag);
/* Option -cut_out */
/* Command -cut_out */
int Xorriso_option_cut_out(struct XorrisO *xorriso, char *disk_path,
char *start, char *count, char *iso_rr_path, int flag);
/* Options -dev , -indev, -outdev */
/* Command -dev , -indev, -outdev */
/* @param flag bit0=use as indev , bit1= use as outdev
@return <=0 error , 1 success, 2 revoked by -reassure
*/
int Xorriso_option_dev(struct XorrisO *xorriso, char *adr, int flag);
/* Option -devices */
/* Command -data_cache_size */
/* @since 1.2.2 */
int Xorriso_option_data_cache_size(struct XorrisO *xorriso, char *num_tiles,
char *tile_blocks, int flag);
/* Command -devices */
/* @param flag bit0= perform -device_links rather than -devices
@return <=0 error , 1 success, 2 revoked by -reassure
*/
int Xorriso_option_devices(struct XorrisO *xorriso, int flag);
/* Option -dialog "on"|"off" */
/* Command -dialog "on"|"off" */
int Xorriso_option_dialog(struct XorrisO *xorriso, char *mode, int flag);
/* Option -disk_dev_ino "on"|"off" */
/* Command -disk_dev_ino "on"|"off" */
int Xorriso_option_disk_dev_ino(struct XorrisO *xorriso, char *mode, int flag);
/* Option -disk_pattern "on"|"ls"|"off" */
/* Command -disk_pattern "on"|"ls"|"off" */
int Xorriso_option_disk_pattern(struct XorrisO *xorriso, char *mode, int flag);
/* Option -displacement [-]offset */
/* Command -displacement [-]offset */
/* @since 0.6.6 */
int Xorriso_option_displacement(struct XorrisO *xorriso, char *value,
int flag);
/* Option -drive_class */
/* Command -drive_class */
int Xorriso_option_drive_class(struct XorrisO *xorriso,
char *d_class, char *pattern, int flag);
/* Option -dummy "on"|"off" */
/* Command -dummy "on"|"off" */
int Xorriso_option_dummy(struct XorrisO *xorriso, char *mode, int flag);
/* Option -dvd_obs "default"|"32k"|"64k" */
/* Command -dvd_obs "default"|"32k"|"64k" */
int Xorriso_option_dvd_obs(struct XorrisO *xorriso, char *obs, int flag);
/* Option -early_stdio_test */
/* Command -early_stdio_test */
/* @since 1.0.6 */
int Xorriso_option_early_stdio_test(struct XorrisO *xorriso, char *mode,
int flag);
/* Option -eject */
/* Command -eject */
/* @param flag bit0=do not report toc of eventually remaining drives
*/
int Xorriso_option_eject(struct XorrisO *xorriso, char *which, int flag);
/* Options -end , and -rollback_end */
/* Command -end , and -rollback_end */
/* @param flag bit0= discard pending changes
@return <=0 error , 1 success, 2 revoked by -reassure
*/
int Xorriso_option_end(struct XorrisO *xorriso, int flag);
/* Option -errfile_log marked|plain path|-|"" */
/* Command -errfile_log marked|plain path|-|"" */
int Xorriso_option_errfile_log(struct XorrisO *xorriso,
char *mode, char *path, int flag);
/* Option -error_behavior */
/* Command -error_behavior */
int Xorriso_option_error_behavior(struct XorrisO *xorriso,
char *occasion, char *behavior, int flag);
/* Option -external_filter */
/* Command -external_filter */
int Xorriso_option_external_filter(struct XorrisO *xorriso,
int argc, char **argv, int *idx, int flag);
/* Options -extract , -extract_single */
/* Command -extract , -extract_single */
/* @param flag bit0=do not report the restored item
bit1=do not reset pacifier, no final pacifier message
bit5= -extract_single: do not insert directory tree
@ -857,16 +889,16 @@ int Xorriso_option_external_filter(struct XorrisO *xorriso,
int Xorriso_option_extract(struct XorrisO *xorriso, char *disk_path,
char *iso_path, int flag);
/* Option -extract_cut */
/* Command -extract_cut */
int Xorriso_option_extract_cut(struct XorrisO *xorriso, char *iso_rr_path,
char *start, char *count, char *disk_path, int flag);
/* Option -file_size_limit */
/* Command -file_size_limit */
int Xorriso_option_file_size_limit(struct XorrisO *xorriso,
int argc, char **argv, int *idx, int flag);
/* Option -find alias -findi, and -findx */
/* Command -find alias -findi, and -findx */
/* @param flag bit0= -findx rather than -findi
bit1= do not reset pacifier, no final pacifier message
do not reset find_compare_result
@ -874,79 +906,85 @@ int Xorriso_option_file_size_limit(struct XorrisO *xorriso,
int Xorriso_option_find(struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag);
/* Option -follow */
/* Command -follow */
int Xorriso_option_follow(struct XorrisO *xorriso, char *mode, int flag);
/* Option -fs */
/* Command -fs */
int Xorriso_option_fs(struct XorrisO *xorriso, char *size, int flag);
/* Option -getfacl alias -getfacli, -getfacl_r alias -getfacl_ri */
/* Command -getfacl alias -getfacli, -getfacl_r alias -getfacl_ri */
/* @param flag bit0=recursive -getfacl_r
*/
int Xorriso_option_getfacli(struct XorrisO *xorriso,
int argc, char **argv, int *idx, int flag);
/* Option -gid */
/* Command -gid */
int Xorriso_option_gid(struct XorrisO *xorriso, char *gid, int flag);
/* Option -grow_blindly */
/* Command -grow_blindly */
int Xorriso_option_grow_blindly(struct XorrisO *xorriso, char *msc2, int flag);
/* Option -hardlinks "on"|"off" */
/* Command -hardlinks "on"|"off" */
int Xorriso_option_hardlinks(struct XorrisO *xorriso, char *mode, int flag);
/* Option -help and part of -prog_help */
/* Command -help and part of -prog_help */
int Xorriso_option_help(struct XorrisO *xorriso, int flag);
/* Option -hide */
/* Command -hide */
/* @since 0.6.0 */
int Xorriso_option_hide(struct XorrisO *xorriso, char *hide_state,
int argc, char **argv, int *idx, int flag);
/* Option -history */
/* Command -history */
int Xorriso_option_history(struct XorrisO *xorriso, char *line, int flag);
/* Option -iso_rr_pattern "on"|"ls"|"off" */
/* Command -iso_rr_pattern "on"|"ls"|"off" */
int Xorriso_option_iso_rr_pattern(struct XorrisO *xorriso, char *mode,
int flag);
/* Option -jigdo aspect argument */
/* Command -jigdo aspect argument */
/* @since 0.6.4 */
int Xorriso_option_jigdo(struct XorrisO *xorriso, char *aspect, char *arg,
int flag);
/* Option -joliet "on"|"off" */
/* Command -joliet "on"|"off" */
int Xorriso_option_joliet(struct XorrisO *xorriso, char *mode, int flag);
/* Option -list_delimiter */
/* Command -list_arg_sorting */
/* @since 1.2.2 */
int Xorriso_option_list_arg_sorting(struct XorrisO *xorriso, int flag);
/* Command -list_delimiter */
int Xorriso_option_list_delimiter(struct XorrisO *xorriso, char *text,
int flag);
/* Option -list_extras */
/* Command -list_extras */
/* @since 1.1.6 */
int Xorriso_option_list_extras(struct XorrisO *xorriso, char *mode, int flag);
/* Option -list_formats */
/* Command -list_formats */
int Xorriso_option_list_formats(struct XorrisO *xorriso, int flag);
/* Option -list_profiles */
/* Command -list_profiles */
int Xorriso_option_list_profiles(struct XorrisO *xorriso, char *which,
int flag);
/* Option -list_speeds */
/* Command -list_speeds */
/* @since 1.1.2 */
int Xorriso_option_list_speeds(struct XorrisO *xorriso, int flag);
/* Option -load session|track|sbsector value */
/* Command -load session|track|sbsector value */
/* @param flag bit0= with adr_mode sbsector: adr_value is possibly 16 too high
@return <=0 error , 1 success, 2 revoked by -reassure
*/
int Xorriso_option_load(struct XorrisO *xorriso, char *adr_mode,
char *adr_value, int flag);
/* Option -logfile */
/* Command -logfile */
int Xorriso_option_logfile(struct XorrisO *xorriso, char *channel,
char *fileadr, int flag);
/* Options -ls alias -lsi and -lsl alias -lsli
/* Command -ls alias -lsi and -lsl alias -lsli
and -lsd alias -lsdi and -lsdl alias -lsdli
and -du alias -dui and -dus alias -dusi
@param flag bit0= long format (-lsl , -du)
@ -957,7 +995,7 @@ int Xorriso_option_logfile(struct XorrisO *xorriso, char *channel,
int Xorriso_option_lsi(struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag);
/* Options -lsx, -lslx, -lsdx , -lsdlx , -dux , -dusx
/* Command -lsx, -lslx, -lsdx , -lsdlx , -dux , -dusx
@param flag bit0= long format (-lslx , -dux)
bit1= do not expand patterns but use literally
bit2= du rather than ls
@ -966,14 +1004,14 @@ int Xorriso_option_lsi(struct XorrisO *xorriso, int argc, char **argv,
int Xorriso_option_lsx(struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag);
/* Option -map */
/* Command -map */
/* @param flag bit0=do not report the added item
bit1=do not reset pacifier, no final pacifier message
*/
int Xorriso_option_map(struct XorrisO *xorriso, char *disk_path,
char *iso_path, int flag);
/* Options -map_l , -compare_l , -update_l , -extract_l */
/* Command -map_l , -compare_l , -update_l , -extract_l */
/* @param flag bit8-11= mode 0= -map_l
1= -compare_l
2= -update_l
@ -982,17 +1020,17 @@ int Xorriso_option_map(struct XorrisO *xorriso, char *disk_path,
int Xorriso_option_map_l(struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag);
/* Option -mark */
/* Command -mark */
int Xorriso_option_mark(struct XorrisO *xorriso, char *mark, int flag);
/* Option -md5 */
/* Command -md5 */
int Xorriso_option_md5(struct XorrisO *xorriso, char *mode, int flag);
/* Option -mkdir alias -mkdiri */
/* Command -mkdir alias -mkdiri */
int Xorriso_option_mkdiri(struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag);
/* Options -mount , -mount_cmd , -session_string */
/* Command -mount , -mount_cmd , -session_string */
/* @param bit0= -mount_cmd: print mount command to result channel rather
than performing it
bit1= perform -session_string rather than -mount_cmd
@ -1000,17 +1038,17 @@ int Xorriso_option_mkdiri(struct XorrisO *xorriso, int argc, char **argv,
int Xorriso_option_mount(struct XorrisO *xorriso, char *dev, char *adr_mode,
char *adr, char *cmd, int flag);
/* Option -mount_opts option[:...] */
/* Command -mount_opts option[:...] */
int Xorriso_option_mount_opts(struct XorrisO *xorriso, char *mode, int flag);
/* Option -mv alias -mvi */
/* Command -mv alias -mvi */
int Xorriso_option_mvi(struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag);
/* Option -no_rc */
/* Command -no_rc */
int Xorriso_option_no_rc(struct XorrisO *xorriso, int flag);
/* Option -not_leaf , -as mkisofs -hide without '/' */
/* Command -not_leaf , -as mkisofs -hide without '/' */
/* @param flag bit0= add to iso_rr hide list rather than to disk exclusions
@since 0.6.0
bit1= add to joliet hide list rather than disk exclusions
@ -1018,14 +1056,14 @@ int Xorriso_option_no_rc(struct XorrisO *xorriso, int flag);
*/
int Xorriso_option_not_leaf(struct XorrisO *xorriso, char *pattern, int flag);
/* Option -not_list , -quoted_not_list */
/* Command -not_list , -quoted_not_list */
/* @param flag bit0= -quoted_not_list */
int Xorriso_option_not_list(struct XorrisO *xorriso, char *adr, int flag);
/* Option -not_mgt */
/* Command -not_mgt */
int Xorriso_option_not_mgt(struct XorrisO *xorriso, char *setting, int flag);
/* Option -not_paths , -as mkisofs -hide with '/' */
/* Command -not_paths , -as mkisofs -hide with '/' */
/* @param flag bit0= add to iso_rr hide list rather than to disk exclusions
@since 0.6.0
bit1= add to joliet hide list rather than disk exclusions
@ -1035,45 +1073,45 @@ int Xorriso_option_not_mgt(struct XorrisO *xorriso, char *setting, int flag);
int Xorriso_option_not_paths(struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag);
/* Option -options_from_file */
/* Command -options_from_file */
/* @return <=0 error , 1 = success , 3 = request to end program run */
int Xorriso_option_options_from_file(struct XorrisO *xorriso, char *adr,
int flag);
/* Option -osirrox "on"|"off" */
/* Command -osirrox "on"|"off" */
int Xorriso_option_osirrox(struct XorrisO *xorriso, char *mode, int flag);
/* Option -overwrite "on"|"nondir"|"off" */
/* Command -overwrite "on"|"nondir"|"off" */
int Xorriso_option_overwrite(struct XorrisO *xorriso, char *mode, int flag);
/* Option -pacifier */
/* Command -pacifier */
int Xorriso_option_pacifier(struct XorrisO *xorriso, char *style, int flag);
/* Option -padding */
/* Command -padding */
int Xorriso_option_padding(struct XorrisO *xorriso, char *size, int flag);
/* Option -page */
/* Command -page */
int Xorriso_option_page(struct XorrisO *xorriso, int len, int width, int flag);
/* Option -paste_in */
/* Command -paste_in */
int Xorriso_option_paste_in(struct XorrisO *xorriso, char *iso_rr_path,
char *disk_path, char *start, char *count, int flag);
/* Option -path_list , -quoted_path_list */
/* Command -path_list , -quoted_path_list */
/* @param flag bit0= -quoted_path_list */
int Xorriso_option_path_list(struct XorrisO *xorriso, char *adr, int flag);
/* Option -pathspecs */
/* Command -pathspecs */
int Xorriso_option_pathspecs(struct XorrisO *xorriso, char *mode, int flag);
/* Option -pkt_output */
/* Command -pkt_output */
int Xorriso_option_pkt_output(struct XorrisO *xorriso, char *mode, int flag);
/* Option -preparer_id */
/* Command -preparer_id */
/* @since 0.6.2 */
int Xorriso_option_preparer_id(struct XorrisO *xorriso, char *name, int flag);
/* Options -print, -print_info , -print_mark */
/* Command -print, -print_info , -print_mark */
/* @param flag bit0-1= output channel:
0= result channel
1= info channel @since 1.0.6
@ -1081,147 +1119,152 @@ int Xorriso_option_preparer_id(struct XorrisO *xorriso, char *name, int flag);
*/
int Xorriso_option_print(struct XorrisO *xorriso, char *text, int flag);
/* Option -print_size
/* Command -print_size
@param flag bit0= report in mkisofs compatible form on real stdout
*/
int Xorriso_option_print_size(struct XorrisO *xorriso, int flag);
/* Option -prog */
/* Command -prog */
int Xorriso_option_prog(struct XorrisO *xorriso, char *name, int flag);
/* Option -prompt */
/* Command -prompt */
int Xorriso_option_prompt(struct XorrisO *xorriso, char *text, int flag);
/* Option -prog_help */
/* Command -prog_help */
int Xorriso_option_prog_help(struct XorrisO *xorriso, char *name, int flag);
/* Option -publisher */
/* Command -publisher */
int Xorriso_option_publisher(struct XorrisO *xorriso, char *name, int flag);
/* Option -pvd_info */
/* Command -pvd_info */
int Xorriso_option_pvd_info(struct XorrisO *xorriso, int flag);
/* Option -pwd alias -pwdi */
/* Command -pwd alias -pwdi */
int Xorriso_option_pwdi(struct XorrisO *xorriso, int flag);
/* Option -pwdx */
/* Command -pwdx */
int Xorriso_option_pwdx(struct XorrisO *xorriso, int flag);
/* Option -read_mkisofsrc */
/* Command -read_mkisofsrc */
/* @since 0.6.0 */
int Xorriso_option_read_mkisofsrc(struct XorrisO *xorriso, int flag);
/* Option -reassure "on"|"tree"|"off" */
/* Command -reassure "on"|"tree"|"off" */
int Xorriso_option_reassure(struct XorrisO *xorriso, char *mode, int flag);
/* Option -report_about */
/* Command -report_about */
int Xorriso_option_report_about(struct XorrisO *xorriso, char *severity,
int flag);
/* Option -return_with */
/* Command -return_with */
int Xorriso_option_return_with(struct XorrisO *xorriso, char *severity,
int exit_value, int flag);
/* Options -rm alias -rmi , -rm_r alias -rm_ri , -rmdir alias -rmdiri */
/* Command -rm alias -rmi , -rm_r alias -rm_ri , -rmdir alias -rmdiri */
/* @param flag bit0=recursive , bit2= remove empty directory: rmdir */
int Xorriso_option_rmi(struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag);
/* Option -rollback */
/* Command -rollback */
/* @param flag bit0= do not -reassure
@return <=0 error , 1 success, 2 revoked by -reassure
*/
int Xorriso_option_rollback(struct XorrisO *xorriso, int flag);
/* Option -rom_toc_scan */
int Xorriso_option_rom_toc_scan(struct XorrisO *xorriso, char *mode,
int flag);
/* Command -rom_toc_scan */
int Xorriso_option_rom_toc_scan(struct XorrisO *xorriso, char *mode, int flag);
/* Option -scdbackup_tag */
/* Command -rr_reloc_dir */
/* @since 1.2.2 */
int Xorriso_option_rr_reloc_dir(struct XorrisO *xorriso, char *name, int flag);
/* Command -scdbackup_tag */
int Xorriso_option_scdbackup_tag(struct XorrisO *xorriso, char *list_path,
char *record_name, int flag);
/* Option -scsi_log */
/* Command -scsi_log */
int Xorriso_option_scsi_log(struct XorrisO *xorriso, char *mode, int flag);
/* Option -session_log */
/* Command -session_log */
int Xorriso_option_session_log(struct XorrisO *xorriso, char *path, int flag);
/* Option -setfacl_list alias -setfacl_listi */
/* Command -setfacl_list alias -setfacl_listi */
int Xorriso_option_setfacl_listi(struct XorrisO *xorriso, char *disk_path,
int flag);
/* Option -setfacl alias -setfacli , -setfacl_r alias -setfacl_ri */
/* Command -setfacl alias -setfacli , -setfacl_r alias -setfacl_ri */
/* @param flag bit0=recursive -setfacl_r
*/
int Xorriso_option_setfacli(struct XorrisO *xorriso, char *acl_text,
int argc, char **argv, int *idx, int flag);
/* Options -setfattr alias -setfattri, -setfattr_r alias -setfattr_ri */
/* Command -setfattr alias -setfattri, -setfattr_r alias -setfattr_ri */
/* @param flag bit0=recursive -setfattr_r
*/
int Xorriso_option_setfattri(struct XorrisO *xorriso, char *name, char *value,
int argc, char **argv, int *idx, int flag);
/* Option -setfattr_list alias -setfattr_listi */
/* Command -setfattr_list alias -setfattr_listi */
int Xorriso_option_setfattr_listi(struct XorrisO *xorriso, char *path,
int flag);
/* Options -set_filter , -set_filter_r */
/* Command -set_filter , -set_filter_r */
/* @param flag bit0=recursive -set_filter_r
*/
int Xorriso_option_set_filter(struct XorrisO *xorriso, char *name,
int argc, char **argv, int *idx, int flag);
/* Option -signal_handling */
/* Command -signal_handling */
/* @param flag bit0= do not yet install the eventual handler
@since 1.1.0
*/
int Xorriso_option_signal_handling(struct XorrisO *xorriso, char *mode,
int flag);
/* Option -sleep */
/* Command -sleep */
/* @since 1.1.8 */
int Xorriso_option_sleep(struct XorrisO *xorriso, char *duration, int flag);
/* Option -speed */
/* Command -speed */
int Xorriso_option_speed(struct XorrisO *xorriso, char *speed, int flag);
/* Option -split_size */
/* Command -split_size */
int Xorriso_option_split_size(struct XorrisO *xorriso, char *s, int flag);
/* Option -status */
/* Command -status */
int Xorriso_option_status(struct XorrisO *xorriso, char *mode, int flag);
/* Option -status_history_max */
/* Command -status_history_max */
int Xorriso_option_status_history_max(struct XorrisO *xorriso, int num1,
int flag);
/* Option -stdio_sync "on"|"off"|size */
/* Command -stdio_sync "on"|"off"|size */
int Xorriso_option_stdio_sync(struct XorrisO *xorriso, char *rythm, int flag);
/* Option -stream_recording */
/* Command -stream_recording */
int Xorriso_option_stream_recording(struct XorrisO *xorriso, char *mode,
int flag);
/* Option -system_id */
/* Command -system_id */
int Xorriso_option_system_id(struct XorrisO *xorriso, char *name, int flag);
/* Option -tell_media_space */
/* Command -tell_media_space */
int Xorriso_option_tell_media_space(struct XorrisO *xorriso, int flag);
/* Option -temp_mem_limit */
/* Command -temp_mem_limit */
int Xorriso_option_temp_mem_limit(struct XorrisO *xorriso, char *size,
int flag);
/* Option -toc */
/* Command -toc */
int Xorriso_option_toc(struct XorrisO *xorriso, int flag);
/* Option -uid */
/* Command -uid */
int Xorriso_option_uid(struct XorrisO *xorriso, char *uid, int flag);
/* Option -unregister_filter */
/* Command -unregister_filter */
int Xorriso_option_unregister_filter(struct XorrisO *xorriso, char *name,
int flag);
/* Options -update and -update_r
/* Command -update and -update_r
@param flag bit0= issue summary message
bit1= do not reset pacifier, no final pacifier message
bit2= do not issue pacifier messages at all
@ -1230,28 +1273,33 @@ int Xorriso_option_unregister_filter(struct XorrisO *xorriso, char *name,
int Xorriso_option_update(struct XorrisO *xorriso, char *disk_path,
char *iso_path, int flag);
/* Option -use_readline */
/* Command -use_readline */
int Xorriso_option_use_readline(struct XorrisO *xorriso, char *mode, int flag);
/* Option -version */
/* Command -version */
int Xorriso_option_version(struct XorrisO *xorriso, int flag);
/* Option -volid */
/* Command -volid */
/* @param flag bit0= do not warn of problematic volid
*/
int Xorriso_option_volid(struct XorrisO *xorriso, char *volid, int flag);
/* Option -volset_id */
/* Command -volset_id */
int Xorriso_option_volset_id(struct XorrisO *xorriso, char *name, int flag);
/* Option -volume_date */
/* Command -volume_date */
int Xorriso_option_volume_date(struct XorrisO *xorriso,
char *time_type, char *timestring, int flag);
/* Option -xattr "on"|"off" */
/* There is no Xorriso_option_x() because -x has an effect only in
Xorriso_prescan_args(). Use the flag bits of Xorriso_interpreter() if
you want to impose command sorting on your own.
*/
/* Command -xattr "on"|"off" */
int Xorriso_option_xattr(struct XorrisO *xorriso, char *mode, int flag);
/* Option -zisofs */
/* Command -zisofs */
int Xorriso_option_zisofs(struct XorrisO *xorriso, char *mode, int flag);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -170,8 +170,11 @@ Provides navigation commands for interactive ISO image manipulation.
<DD><KBD>...</KBD></DD>
<DT>Being superuser avoids permission problems with /dev/srN resp. /dev/hdX .
</DT>
<DT>Ordinary users should then get granted rw access to the /dev files
as listed by option -devices.</DT>
<DT>
Ordinary users should then get granted access to the /dev files
as listed by option --devices. GNU/Linux and FreeBSD demand rw-permission.
On Solaris it is r-permission and privileges "basic,sys_devices".
</DT>
<DT>&nbsp;</DT>
<DT>Options are either performed as program arguments or as dialog input.
@ -446,21 +449,21 @@ This can bring effective read performance near to the raw media reading speed.
<P>
<DL>
<DT><H3>Download as source code (see README):</H3></DT>
<DD><A HREF="xorriso-1.1.8.tar.gz">xorriso-1.1.8.tar.gz</A>
(2020 KB).
<DD><A HREF="xorriso-1.2.2.tar.gz">xorriso-1.2.2.tar.gz</A>
(2070 KB).
</DD>
<DD>(Released 21 Nov 2011)</DD>
<DD><A HREF="xorriso-1.1.8.tar.gz.sig">xorriso-1.1.8.tar.gz.sig</A></DD>
<DD>(Released 02 Apr 2012)</DD>
<DD><A HREF="xorriso-1.2.2.tar.gz.sig">xorriso-1.2.2.tar.gz.sig</A></DD>
<DD>
(detached GPG signature for verification by
<KBD>gpg --verify xorriso-1.1.8.tar.gz.sig xorriso-1.1.8.tar.gz</KBD>
<KBD>gpg --verify xorriso-1.2.2.tar.gz.sig xorriso-1.2.2.tar.gz</KBD>
<BR>
after <KBD>gpg --keyserver keys.gnupg.net --recv-keys ABC0A854</KBD>).
</DD>
<DD>
Also on <A HREF="http://www.gnu.org/prep/ftp.html">
mirrors of ftp://ftp.gnu.org/gnu/ </A>
as xorriso/xorriso-1.1.8.tar.gz
as xorriso/xorriso-1.2.2.tar.gz
</DD>
</DL>
</DD>
@ -497,9 +500,10 @@ describes the cdrecord emulation</DD>
<HR>
<P>
Bug fixes towards xorriso-1.1.6:
Bug fixes towards xorriso-1.2.0:
<UL>
<LI>- none -</LI>
<LI>-osirrox on:sort_lba_on -extract from / restored nearly nothing</LI>
<LI>-as mkisofs without -graft-points could not handle names with "="</LI>
<!--
<LI>- none -</LI>
-->
@ -518,12 +522,14 @@ Bug fixes in xorriso-1.1.0.pl01 towards xorriso-1.1.0:
-->
<P>
Enhancements towards previous stable version xorriso-1.1.6:
Enhancements towards previous stable version xorriso-1.2.0:
<UL>
<LI>New option -sleep</LI>
<LI>Info document and man page for xorrecord</LI>
<LI>Enabled recognition of QEMU DVD-ROM 0.12</LI>
<LI>Enabled out-of the box use of xorriso on Linux guest on qemu virtio-blk-pci
<LI>New commands -x, -list_arg_sorting</LI>
<LI>New command -data_cache_size</LI>
<LI>New command -rr_reloc_dir</LI>
<LI>New -as mkisofs option -rr_reloc, implemented option -hide-rr-moved</LI>
<LI>
Now ignoring -as mkisofs -no-split-symlink-components -no-split-symlink-fields
</LI>
<!--
<LI>- none -</LI>
@ -547,16 +553,16 @@ libburnia project and the legal intentions of
<A HREF="http://www.fsf.org/"> FSF </A> match completely.
</DT>
<DD>&nbsp;</DD>
<DT>libburn-1.1.8</DT>
<DT>libburn-1.2.2</DT>
<DD>reads and writes data from and to CD, DVD, BD.</DD>
<DD>(founded by Derek Foreman and Ben Jansens,
developed and maintained since August 2006 by
Thomas Schmitt from team of libburnia-project.org)</DD>
<DT>libisofs-1.1.7</DT>
<DT>libisofs-1.2.2</DT>
<DD>operates on ISO 9660 filesystem images.</DD>
<DD>(By Vreixo Formoso, Mario Danic and Thomas Schmitt
from team of libburnia-project.org)</DD>
<DT>libisoburn-1.1.8</DT>
<DT>libisoburn-1.2.2</DT>
<DD>coordinates libburn and libisofs, emulates multi-session where needed,
and hosts the original source code of program xorriso.</DD>
<DD>It provides the complete functionality of xorriso via
@ -577,16 +583,15 @@ cdrecord and mkisofs.</DT>
<P>
<DL>
<DT><H3>Development snapshot, version 1.1.9 :</H3></DT>
<DD>Bug fixes towards xorriso-1.1.8:
<DT><H3>Development snapshot, version 1.2.3 :</H3></DT>
<DD>Bug fixes towards xorriso-1.2.2:
<UL>
<LI>Solaris adapter mishandled write commands which failed on first try</LI>
<!--
<LI>- none yet -</LI>
<!--
-->
</UL>
</DD>
<DD>Enhancements towards stable version 1.1.8:
<DD>Enhancements towards stable version 1.2.2:
<UL>
<LI>- none yet -</LI>
<!--
@ -598,13 +603,13 @@ cdrecord and mkisofs.</DT>
<DD>&nbsp;</DD>
<DD><A HREF="README_xorriso_devel">README 1.1.9</A>
<DD><A HREF="xorriso_help_devel">xorriso-1.1.9 -help</A></DD>
<DD><A HREF="xorrisofs_help_devel">xorriso-1.1.9 -as mkisofs -help</A></DD>
<DD><A HREF="xorrecord_help_devel">xorriso-1.1.9 -as cdrecord -help</A></DD>
<DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 1.1.9)</A></DD>
<DD><A HREF="man_1_xorrisofs_devel.html">man xorrisofs (as of 1.1.9)</A></DD>
<DD><A HREF="man_1_xorrecord_devel.html">man xorrecord (as of 1.1.9)</A></DD>
<DD><A HREF="README_xorriso_devel">README 1.2.3</A>
<DD><A HREF="xorriso_help_devel">xorriso-1.2.3 -help</A></DD>
<DD><A HREF="xorrisofs_help_devel">xorriso-1.2.3 -as mkisofs -help</A></DD>
<DD><A HREF="xorrecord_help_devel">xorriso-1.2.3 -as cdrecord -help</A></DD>
<DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 1.2.3)</A></DD>
<DD><A HREF="man_1_xorrisofs_devel.html">man xorrisofs (as of 1.2.3)</A></DD>
<DD><A HREF="man_1_xorrecord_devel.html">man xorrecord (as of 1.2.3)</A></DD>
<DD>&nbsp;</DD>
<DT>If you want to distribute development versions of xorriso, then use
this tarball which produces static linking between xorriso and the
@ -614,8 +619,8 @@ libburnia libraries.
installation see README)
</DD>
<DD>
<A HREF="xorriso-1.1.9.tar.gz">xorriso-1.1.9.tar.gz</A>
(2020 KB).
<A HREF="xorriso-1.2.3.tar.gz">xorriso-1.2.3.tar.gz</A>
(2070 KB).
</DD>
<DT>A dynamically linked development version of xorriso can be obtained
from repositories of
@ -715,7 +720,7 @@ scdbackup, multi volume CD/DVD/BD backup</A></DD>
<BR>
Legal statement: This website does not serve any commercial purpose.
<BR><BR>
Copyright &copy; 2008 - 2011 Thomas Schmitt.
Copyright &copy; 2008 - 2012 Thomas Schmitt.
<BR>
This text is freely distributable. It shall only be modified in sync with
the factual properties of xorriso and its public storage locations.

View File

@ -2,7 +2,7 @@
/* xorriso - Command line oriented batch and dialog tool which creates, loads,
manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2012 Thomas Schmitt, <scdbackup@gmx.net>
Initial code of this program was derived from program src/askme.c out
of scdbackup-0.8.8, Copyright 2007 Thomas Schmitt, BSD-License.
@ -110,8 +110,8 @@
version of xorriso.
*/
#define Xorriso_req_majoR 1
#define Xorriso_req_minoR 1
#define Xorriso_req_micrO 9
#define Xorriso_req_minoR 2
#define Xorriso_req_micrO 2
static void yell_xorriso()

View File

@ -2,7 +2,7 @@
/* Command line oriented batch and dialog tool which creates, loads,
manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2012 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -102,6 +102,8 @@ struct XorrisO { /* the global context of xorriso */
char rc_filenames[Xorriso_rc_nuM][SfileadrL];
int rc_filename_count;
int arrange_args;
/* Whether .mkisofsrc has already been read */
int mkisofsrc_done;
@ -168,6 +170,8 @@ struct XorrisO { /* the global context of xorriso */
char scdbackup_tag_listname[SfileadrL];
int relax_compliance; /* opaque bitfield to be set by xorrisoburn */
char rr_reloc_dir[256];
int rr_reloc_flags;
int untranslated_name_len;
int do_follow_pattern;
int do_follow_param;
@ -263,6 +267,10 @@ struct XorrisO { /* the global context of xorriso */
burn_write_opts_set_start_byte().
*/
int cache_num_tiles; /* -data_cache_size */
int cache_tile_blocks;
int cache_default; /* bit0= cache_num_tiles, bit1= cache_tile_blocks */
int do_calm_drive; /* bit0= calm down drive after aquiring it */
char indev[SfileadrL];

View File

@ -1 +1 @@
#define Xorriso_timestamP "2012.01.25.153732"
#define Xorriso_timestamP "2012.04.02.133001"

View File

@ -4,7 +4,7 @@
a command line oriented batch and dialog tool which creates, loads,
manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2011 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2012 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -18,8 +18,8 @@
/* The minimum version of libisoburn to be used with this version of xorriso
*/
#define xorriso_libisoburn_req_major 1
#define xorriso_libisoburn_req_minor 1
#define xorriso_libisoburn_req_micro 9
#define xorriso_libisoburn_req_minor 2
#define xorriso_libisoburn_req_micro 2
struct SpotlisT; /* List of intervals with different read qualities */
@ -595,5 +595,8 @@ int Xorriso_close_damaged(struct XorrisO *xorriso, int flag);
int Xorriso_list_extras(struct XorrisO *xorriso, char *mode, int flag);
int Xorriso_set_data_cache(struct XorrisO *xorriso, void *ropts,
int num_tiles, int tile_blocks, int flag);
#endif /* Xorrisoburn_includeD */

View File

@ -9,7 +9,7 @@
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH XORRISOFS 1 "Version 1.1.9, Nov 21, 2011"
.TH XORRISOFS 1 "Version 1.2.2, Apr 02, 2012"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -441,6 +441,13 @@ Allow lowercase character in ISO file names.
.br
This violates ISO 9660 specs.
.TP
\fB\-relaxed-filenames\fR
Allow nearly all 7\-bit characters in ISO file names.
Not allowed are 0x0 and '/'. If not option \-allow\-lowercase is given,
then lowercase letters get converted to uppercase.
.br
This violates ISO 9660 specs.
.TP
\fB\-d\fR
.br
Do not add trailing dot to ISO file names without dot.
@ -452,15 +459,15 @@ Alias of \-d.
.TP
\fB\-l\fR
.br
Allow up to 37 characters in ISO file names.
.br
This violates ISO 9660 specs.
Allow up to 31 characters in ISO file names.
.TP
\fB\-full-iso9660-filenames\fR
Alias of \-l.
.TP
\fB\-max-iso9660-filenames\fR
Alias of \-l.
Allow up to 37 characters in ISO file names.
.br
This violates ISO 9660 specs.
.TP
\fB\-N\fR
.br
@ -492,6 +499,47 @@ Remove s\-bit and t\-bit.
\fB\-rational-rock\fR
Alias of \-r.
.TP
\fB\-D\fR
The standard ECMA\-119 demands that no path in the image shall have more
than 8 name components or 255 characters. Therefore it would be necessary
to move deeper directory trees to a higher directory. Rock Ridge offers an
opportunity to let these relocated directories appear at their orginal
deep position, but this feature might not be implemented properly by
operating systems which mount the image.
.br
Option \-D disables this deep directory relocation, and thus violates
ISO 9660 specs.
.br
xorrisofs has \-D set by default. If given explicitely then it overrides
the options \-rr_reloc_dir and \-hide\-rr\-moved.
.TP
\fB\-disable-deep-relocation\fR
Alias of \-D.
.TP
\fB\-rr_reloc_dir\fR name
Enable the relocation of deep directories and thus avoid ECMA\-119 file paths
of more than 8 name components or 255 characters. Directories which lead to
such file paths will get moved to a directory in the root directory of the
image. Its name gets set by this option.
It is permissible to use the root directory itself.
.br
The overall directory tree will appear originally deep when interpreted as
Rock Ridge tree. It will appear as re\-arranged if only ECMA\-119 information
is considered.
.br
If the given relocation target directory does not already exist when image
production begins, then it will get created and marked for Rock Ridge as
relocation artefact. At least on GNU/Linux it will not be displayed in
mounted Rock Ridge images.
.br
The name must not contain a '/' character after its first character and it
must not be longer than 255 bytes.
.br
This option has no effect if option \-D is present.
.TP
\fB\-hide-rr-moved\fR
Alias of \-rr_reloc_dir "/.rr_moved"
.TP
\fB--for_backup\fR
Enable options which improve backup fidelity:
\-\-acl, \-\-xattr, \-\-md5,
@ -1522,7 +1570,7 @@ Thomas Schmitt <scdbackup@gmx.net>
.br
for libburnia\-project.org
.SH COPYRIGHT
Copyright (c) 2011 Thomas Schmitt
Copyright (c) 2011 \- 2012 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

View File

@ -7,14 +7,14 @@ START-INFO-DIR-ENTRY
END-INFO-DIR-ENTRY
xorrisofs - Emulation of ISO 9660 program mkisofs by program xorriso
Copyright (C) 2011 - 2011 Thomas Schmitt
Copyright (C) 2011 - 2012 Thomas Schmitt
Permission is granted to distrubute this text freely.

File: xorrisofs.info, Node: Top, Next: Overview, Up: (dir)
xorrisofs 1.1.9
xorrisofs 1.2.2
***************
xorrisofs - Emulation of ISO 9660 program mkisofs by program xorriso
@ -459,6 +459,12 @@ File: xorrisofs.info, Node: SetCompl, Next: SetExtras, Prev: SetProduct, Up:
Allow lowercase character in ISO file names.
This violates ISO 9660 specs.
-relaxed-filenames
Allow nearly all 7-bit characters in ISO file names. Not allowed
are 0x0 and '/'. If not option -allow-lowercase is given, then
lowercase letters get converted to uppercase.
This violates ISO 9660 specs.
-d
Do not add trailing dot to ISO file names without dot.
This violates ISO 9660 specs.
@ -467,14 +473,14 @@ File: xorrisofs.info, Node: SetCompl, Next: SetExtras, Prev: SetProduct, Up:
Alias of -d.
-l
Allow up to 37 characters in ISO file names.
This violates ISO 9660 specs.
Allow up to 31 characters in ISO file names.
-full-iso9660-filenames
Alias of -l.
-max-iso9660-filenames
Alias of -l.
Allow up to 37 characters in ISO file names.
This violates ISO 9660 specs.
-N
Omit the semicolon and the version numbers at the end of ISO names.
@ -506,6 +512,42 @@ File: xorrisofs.info, Node: SetExtras, Next: SetHide, Prev: SetCompl, Up: Op
-rational-rock
Alias of -r.
-D
The standard ECMA-119 demands that no path in the image shall have
more than 8 name components or 255 characters. Therefore it would
be necessary to move deeper directory trees to a higher directory.
Rock Ridge offers an opportunity to let these relocated
directories appear at their orginal deep position, but this
feature might not be implemented properly by operating systems
which mount the image.
Option -D disables this deep directory relocation, and thus
violates ISO 9660 specs.
xorrisofs has -D set by default. If given explicitely then it
overrides the options -rr_reloc_dir and -hide-rr-moved.
-disable-deep-relocation
Alias of -D.
-rr_reloc_dir name
Enable the relocation of deep directories and thus avoid ECMA-119
file paths of more than 8 name components or 255 characters.
Directories which lead to such file paths will get moved to a
directory in the root directory of the image. Its name gets set by
this option. It is permissible to use the root directory itself.
The overall directory tree will appear originally deep when
interpreted as Rock Ridge tree. It will appear as re-arranged if
only ECMA-119 information is considered.
If the given relocation target directory does not already exist
when image production begins, then it will get created and marked
for Rock Ridge as relocation artefact. At least on GNU/Linux it
will not be displayed in mounted Rock Ridge images.
The name must not contain a '/' character after its first
character and it must not be longer than 255 bytes.
This option has no effect if option -D is present.
-hide-rr-moved
Alias of -rr_reloc_dir "/.rr_moved"
--for_backup
Enable options which improve backup fidelity: --acl, --xattr,
--md5, --hardlinks.
@ -1476,7 +1518,7 @@ for libburnia-project.org
10.2 Copyright
==============
Copyright (c) 2011 Thomas Schmitt
Copyright (c) 2011 - 2012 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
@ -1499,15 +1541,15 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
[index]
* Menu:
* --acl Recording of ACLs: SetExtras. (line 28)
* --acl Recording of ACLs: SetExtras. (line 64)
* --boot-catalog-hide Hide El Torito boot catalog: Bootable.
(line 95)
* --efi-boot El Torito EFI boot image: Bootable. (line 58)
* --embedded-boot Fill System Area e.g. by MBR: SystemArea. (line 27)
* --emul-toc enable table-of-content emulation: SetProduct. (line 35)
* --for_backup Enable backup fidelity: SetExtras. (line 24)
* --hardlinks Recording of hardlink relations: SetExtras. (line 49)
* --md5 Recording of MD5 checksums: SetExtras. (line 41)
* --for_backup Enable backup fidelity: SetExtras. (line 60)
* --hardlinks Recording of hardlink relations: SetExtras. (line 85)
* --md5 Recording of MD5 checksums: SetExtras. (line 77)
* --modification-date set ISO image timestamps: ImageId. (line 82)
* --no-emul-toc no table-of-content emulation: SetProduct. (line 44)
* --no_rc do not execute startup files: Miscellaneous. (line 16)
@ -1522,11 +1564,11 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
(line 41)
* --quoted_path_list read pathspecs from disk file: SetInsert.
(line 13)
* --scdbackup_tag Recording of MD5 checksum: SetExtras. (line 58)
* --scdbackup_tag Recording of MD5 checksum: SetExtras. (line 94)
* --sort-weight set output file address: SetProduct. (line 49)
* --stdio_sync control forced output to disk files: SetProduct.
(line 25)
* --xattr Recording of xattr: SetExtras. (line 34)
* --xattr Recording of xattr: SetExtras. (line 70)
* -A set Application Id: ImageId. (line 38)
* -abstract set Abstract File path: ImageId. (line 66)
* -allow-lowercase lowercase in ISO file names: SetCompl. (line 46)
@ -1546,9 +1588,12 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* -checksum_algorithm_template choose .template checksums: Jigdo.
(line 87)
* -copyright set Copyright File path: ImageId. (line 77)
* -d omit trailing dot in ISO file names: SetCompl. (line 50)
* -D allow deep directory hierachies: SetExtras. (line 24)
* -d omit trailing dot in ISO file names: SetCompl. (line 56)
* -dev set path for loading existing ISO image: Loading. (line 25)
* -dir-mode permissions for all directories: SetProduct. (line 60)
* -disable-deep-relocation allow deep directory hierachies: SetExtras.
(line 37)
* -disallow_dir_id_ext enforce ISO level 1 directory names: SetCompl.
(line 24)
* -e El Torito EFI boot image: Bootable. (line 50)
@ -1562,8 +1607,8 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* -f follow symbolic links on disk: SetInsert. (line 24)
* -file-mode permissions for all data files: SetProduct. (line 66)
* -follow-links follow symbolic links on disk: SetInsert. (line 28)
* -full-iso9660-filenames allow 37 characters in ISO file names: SetCompl.
(line 61)
* -full-iso9660-filenames allow 31 characters in ISO file names: SetCompl.
(line 66)
* -G Fill System Area e.g. by MBR: SystemArea. (line 17)
* -generic-boot Fill System Area e.g. by MBR: SystemArea. (line 24)
* -graft-points enable target=source pathspecs: SetInsert. (line 31)
@ -1576,12 +1621,14 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
(line 25)
* -hide-list keep matching files invisible in ISO tree: SetHide.
(line 16)
* -hide-rr-moved set deep directory relocation target: SetExtras.
(line 57)
* -input-charset set character set of disk file names: Charset.
(line 17)
* -iso-level define ISO 9660 limitations: SetCompl. (line 7)
* -isohybrid-mbr Install ISOLINUX isohybrid MBR: SystemArea.
(line 30)
* -J enable production of Joliet directory tree: SetExtras. (line 67)
* -J enable production of Joliet directory tree: SetExtras. (line 103)
* -jigdo-exclude add exclusion pattern for .md5: Jigdo. (line 59)
* -jigdo-force-md5 add check pattern for .md5: Jigdo. (line 52)
* -jigdo-jigdo set name of .jigdo file: Jigdo. (line 38)
@ -1591,17 +1638,17 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* -jigdo-template-compress choose compression algorithm: Jigdo.
(line 76)
* -joliet enable production of Joliet directory tree: SetExtras.
(line 71)
* -joliet-long allow longer Joliet names: SetExtras. (line 74)
* -l allow 37 characters in ISO file names: SetCompl. (line 57)
(line 107)
* -joliet-long allow longer Joliet names: SetExtras. (line 110)
* -l allow 31 characters in ISO file names: SetCompl. (line 63)
* -m exclude disk files from inserting: SetInsert. (line 35)
* -M set path for loading existing ISO image: Loading. (line 11)
* -max-iso9660-filenames allow 37 characters in ISO file names: SetCompl.
(line 64)
(line 69)
* -md5-list set path of readable .md5: Jigdo. (line 73)
* -mips-boot MIPS Big Endian boot image: SystemArea. (line 103)
* -mipsel-boot MIPS Little Endian boot image: SystemArea. (line 110)
* -N omit version number in ISO file names: SetCompl. (line 67)
* -N omit version number in ISO file names: SetCompl. (line 73)
* -no-emul-boot El Torito boot image emulation: Bootable. (line 72)
* -no-pad do not add zeros to ISO tree: SetProduct. (line 76)
* -o set output file address: SetProduct. (line 8)
@ -1609,9 +1656,9 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
(line 48)
* -old-root enable incremental insertion: SetInsert. (line 70)
* -omit-period omit trailing dot in ISO file names: SetCompl.
(line 54)
(line 60)
* -omit-version-number omit version number in ISO file names: SetCompl.
(line 71)
(line 77)
* -output set output file address: SetProduct. (line 22)
* -output-charset set character set of ISO file names: Charset.
(line 21)
@ -1635,8 +1682,12 @@ File: xorrisofs.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
(line 15)
* -rational-rock Rock Ridge with altered owner and permission: SetExtras.
(line 21)
* -relaxed-filenames 7-bit special characters in ISO file names: SetCompl.
(line 50)
* -rock Rock Ridge (is always enabled): SetExtras. (line 12)
* -root redirect ISO root directory: SetInsert. (line 64)
* -rr_reloc_dir set deep directory relocation target: SetExtras.
(line 40)
* -sparc-boot SUN SPARC boot images: SystemArea. (line 128)
* -sparc-label SUN Disk Label text: SystemArea. (line 131)
* -sysid set System Id: ImageId. (line 49)
@ -1665,9 +1716,9 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Menu:
* Abstract File, set path, -abstract: ImageId. (line 66)
* ACL, record and load, --acl: SetExtras. (line 28)
* ACL, record and load, --acl: SetExtras. (line 64)
* Application Id, set, -A, -appid: ImageId. (line 38)
* Backup, enable fidelity, --for_backup: SetExtras. (line 24)
* Backup, enable fidelity, --for_backup: SetExtras. (line 60)
* Biblio File, set path, -biblio: ImageId. (line 72)
* Block address, set sort weight, --sort-weight: SetProduct. (line 49)
* Bootability, boot catalog hidden, --boot-catalog-hide: Bootable.
@ -1703,12 +1754,18 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
(line 21)
* Character sets, _definition: Charset. (line 6)
* Copyright File, set path, -copyright: ImageId. (line 77)
* Deep directories, allow, -D, -disable-deep-relocation: SetExtras.
(line 24)
* Deep directories, relocation target, -hide-rr-moved: SetExtras.
(line 57)
* Deep directories, relocation target, -rr_reloc_dir: SetExtras.
(line 40)
* Disk files, exclude, -hide-list: SetInsert. (line 51)
* Disk files, exclude, -m, -exclude, -x, -old-exclude: SetInsert.
(line 35)
* disk_path, _definition: Insert. (line 8)
* ECMA-119, _definiton: Standards. (line 6)
* El Torito, _definiton: Bootable. (line 13)
* ECMA-119, _definition: Standards. (line 6)
* El Torito, _definition: Bootable. (line 13)
* Examples: Examples. (line 6)
* Forced output, control, --stdio_sync: SetProduct. (line 25)
* Hiding, from ISO and Rock Ridge, -hide: SetHide. (line 8)
@ -1723,16 +1780,20 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Incremental insertion, enable disk devno, --old-root-devno: SetInsert.
(line 97)
* Incremental insertion, enable, -old-root: SetInsert. (line 70)
* ISO 9660, _definiton: Standards. (line 6)
* ISO 9660:1999, _definiton: Standards. (line 26)
* ISO file names, allow 37 characters, -l, -full-iso9660-filenames, -max-iso9660-filenames: SetCompl.
(line 57)
* ISO 9660, _definition: Standards. (line 6)
* ISO 9660:1999, _definition: Standards. (line 26)
* ISO file names, 7-bit special characters, -relaxed-filenames: SetCompl.
(line 50)
* ISO file names, allow 31 characters, -l, -full-iso9660-filenames: SetCompl.
(line 63)
* ISO file names, allow 37 characters, -max-iso9660-filenames: SetCompl.
(line 69)
* ISO file names, allow lowercase, -allow-lowercase: SetCompl.
(line 46)
* ISO file names, omit trailing dot, -d, -omit-period: SetCompl.
(line 50)
(line 56)
* ISO file names, omit version number, -N, -omit-version-number: SetCompl.
(line 67)
(line 73)
* ISO file names, untranslated, -untranslated_name_len: SetCompl.
(line 39)
* ISO file names, very relaxed rules, -U, -untranslated-filenames: SetCompl.
@ -1756,15 +1817,15 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Jigdo Template Extraction, -jigdo-template-compress: Jigdo. (line 76)
* Jigdo Template Extraction, -md5-list: Jigdo. (line 73)
* Jigdo Template Extraction, _definition: Jigdo. (line 6)
* Joliet, _definiton: Standards. (line 21)
* Joliet, allows longer names, -joliet-long: SetExtras. (line 74)
* Joliet, enable, -J, -joliet: SetExtras. (line 67)
* Joliet, _definition: Standards. (line 21)
* Joliet, allows longer names, -joliet-long: SetExtras. (line 110)
* Joliet, enable, -J, -joliet: SetExtras. (line 103)
* Links, follow on disk, -f, -follow-links: SetInsert. (line 24)
* Links, record and load hard links, --hardlinks: SetExtras. (line 49)
* MBR, _definiton: SystemArea. (line 10)
* Links, record and load hard links, --hardlinks: SetExtras. (line 85)
* MBR, _definition: SystemArea. (line 10)
* MBR, append partition, -append_partition: SystemArea. (line 86)
* MBR, sectors per head, -partition_sec_hd: SystemArea. (line 58)
* MD5, record and load, --md5: SetExtras. (line 41)
* MD5, record and load, --md5: SetExtras. (line 77)
* Message output, suppress, -quiet: Miscellaneous. (line 24)
* Mountability, by non-trivial partition 1, -partition_offset: SystemArea.
(line 46)
@ -1784,22 +1845,22 @@ File: xorrisofs.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Program version, report, -version: Miscellaneous. (line 34)
* Publisher Id, set, -p, -publisher: ImageId. (line 30)
* Rock Ridge, (always enabled), -R, -rock: SetExtras. (line 8)
* Rock Ridge, _definiton: Standards. (line 14)
* Rock Ridge, _definition: Standards. (line 14)
* Rock Ridge, altered owner and permission, -r, -rational-rock: SetExtras.
(line 15)
* scdbackup, record checksum tag, --scdbackup_tag: SetExtras. (line 58)
* scdbackup, record checksum tag, --scdbackup_tag: SetExtras. (line 94)
* Session, select path, -M, -prev-session, -dev: Loading. (line 11)
* Session, set load and write address, -C, -cdrecord-params: Loading.
(line 28)
* Startup files, suppress, --no_rc: Miscellaneous. (line 16)
* System Area, _definiton: SystemArea. (line 6)
* System Area, _definition: SystemArea. (line 6)
* System Id, set, -sysid: ImageId. (line 49)
* Table-of-content, emulation off, --no-emul-toc: SetProduct. (line 44)
* Table-of-content, emulation, --emul-toc: SetProduct. (line 35)
* Verbosity, high, -v, -verbose: Miscellaneous. (line 28)
* Volume Id, set, -V, -volid: ImageId. (line 13)
* Volume Set Id, set, -volset: ImageId. (line 26)
* xattr, record and load, --xattr: SetExtras. (line 34)
* xattr, record and load, --xattr: SetExtras. (line 70)
* xorriso, mkisofs emulation: Xorriso. (line 6)
* xorriso, options: Options. (line 6)
* zisofs file, enable recognition, -z, -transparent-compression: SetInsert.
@ -1818,27 +1879,27 @@ Node: Loading6846
Node: SetInsert9142
Node: SetProduct13558
Node: SetCompl17265
Node: SetExtras19584
Node: SetHide22561
Node: ImageId23560
Node: Bootable27065
Node: SystemArea31130
Node: Charset37464
Node: Jigdo38490
Node: Miscellaneous42757
Node: Examples43921
Node: ExSimple44407
Node: ExGraft44886
Node: ExMkisofs46133
Node: ExGrowisofs47386
Node: ExIncBackup48558
Node: ExIncBckAcc51666
Node: ExBootable53342
Node: Files55434
Node: Seealso56508
Node: Bugreport57164
Node: Legal57745
Node: CommandIdx58553
Node: ConceptIdx69886
Node: SetExtras19861
Node: SetHide24593
Node: ImageId25592
Node: Bootable29097
Node: SystemArea33162
Node: Charset39496
Node: Jigdo40522
Node: Miscellaneous44789
Node: Examples45953
Node: ExSimple46439
Node: ExGraft46918
Node: ExMkisofs48165
Node: ExGrowisofs49418
Node: ExIncBackup50590
Node: ExIncBckAcc53698
Node: ExBootable55374
Node: Files57466
Node: Seealso58540
Node: Bugreport59196
Node: Legal59777
Node: CommandIdx60592
Node: ConceptIdx72575

End Tag Table

View File

@ -1,7 +1,7 @@
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename xorrisofs.info
@settitle GNU xorrisofs 1.1.9
@settitle GNU xorrisofs 1.2.2
@c %**end of header
@c
@c man-ignore-lines begin
@ -50,7 +50,7 @@
@c man .\" First parameter, NAME, should be all caps
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
@c man .\" other parameters are allowed: see man(7), man(1)
@c man .TH XORRISOFS 1 "Version 1.1.9, Nov 21, 2011"
@c man .TH XORRISOFS 1 "Version 1.2.2, Apr 02, 2012"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -68,7 +68,7 @@
@copying
xorrisofs - Emulation of ISO 9660 program mkisofs by program xorriso
Copyright @copyright{} 2011 - 2011 Thomas Schmitt
Copyright @copyright{} 2011 - 2012 Thomas Schmitt
@quotation
Permission is granted to distrubute this text freely.
@ -76,7 +76,7 @@ Permission is granted to distrubute this text freely.
@end copying
@c man-ignore-lines end
@titlepage
@title Manual of GNU xorriso personality xorrisofs 1.1.9
@title Manual of GNU xorriso personality xorrisofs 1.2.2
@author Thomas Schmitt
@page
@vskip 0pt plus 1filll
@ -85,7 +85,7 @@ Permission is granted to distrubute this text freely.
@contents
@ifnottex
@node Top
@top xorrisofs 1.1.9
@top xorrisofs 1.2.2
@c man-ignore-lines 1
@c man .SH NAME
@ -128,8 +128,8 @@ code with cdrtools.
@chapter ISO 9660, Rock Ridge, Joliet
@c man \fBISO 9660, Rock Ridge, Joliet:\fR
@c man .br
@cindex ISO 9660, _definiton
@cindex ECMA-119, _definiton
@cindex ISO 9660, _definition
@cindex ECMA-119, _definition
@strong{ISO 9660}
(aka @strong{ECMA-119}) is a read-only filesystem that is mainly used for
optical media CD, DVD, BD, but may also reside on other storage devices like
@ -140,7 +140,7 @@ ISO 9660 describes directories and data files by
very restricted filenames with no distinction of upper case and lower case.
Its metadata do not comply to fundamental POSIX specifications.
@*
@cindex Rock Ridge, _definiton
@cindex Rock Ridge, _definition
@strong{Rock Ridge}
is the name of a set of additional information which enhance
an ISO 9660 filesystem so that it can represent a POSIX compliant filesystem
@ -151,7 +151,7 @@ Rock Ridge allows filenames of up to 255 bytes and paths of up to
Rock Ridge information is produced unconditionally with any @command{xorrisofs}
image.
@*
@cindex Joliet, _definiton
@cindex Joliet, _definition
@strong{Joliet}
is the name of an additional directory tree which provides
filenames up to 64 characters encoded as UTF-16.
@ -159,7 +159,7 @@ A Joliet tree is mainly interesting for reading the ISO image by
operating systems of Microsoft Corporation.
Production of this directory tree may be enabled by option -J.
@*
@cindex ISO 9660:1999, _definiton
@cindex ISO 9660:1999, _definition
@strong{ISO 9660:1999}
is the name of an additional directory tree which provides longer
filenames. It allows single file names to have up to 207 characters.
@ -651,6 +651,15 @@ Allow lowercase character in ISO file names.
@*
This violates ISO 9660 specs.
@c man .TP
@item -relaxed-filenames
@kindex -relaxed-filenames 7-bit special characters in ISO file names
@cindex ISO file names, 7-bit special characters, -relaxed-filenames
Allow nearly all 7-bit characters in ISO file names.
Not allowed are 0x0 and '/'. If not option -allow-lowercase is given,
then lowercase letters get converted to uppercase.
@*
This violates ISO 9660 specs.
@c man .TP
@item -d
@kindex -d omit trailing dot in ISO file names
@cindex ISO file names, omit trailing dot, -d, -omit-period
@ -664,20 +673,21 @@ This violates ISO 9660 specs.
Alias of -d.
@c man .TP
@item -l
@kindex -l allow 37 characters in ISO file names
@cindex ISO file names, allow 37 characters, -l, -full-iso9660-filenames, -max-iso9660-filenames
@kindex -l allow 31 characters in ISO file names
@cindex ISO file names, allow 31 characters, -l, -full-iso9660-filenames
@*
Allow up to 37 characters in ISO file names.
@*
This violates ISO 9660 specs.
Allow up to 31 characters in ISO file names.
@c man .TP
@item -full-iso9660-filenames
@kindex -full-iso9660-filenames allow 37 characters in ISO file names
@kindex -full-iso9660-filenames allow 31 characters in ISO file names
Alias of -l.
@c man .TP
@item -max-iso9660-filenames
@kindex -max-iso9660-filenames allow 37 characters in ISO file names
Alias of -l.
@cindex ISO file names, allow 37 characters, -max-iso9660-filenames
Allow up to 37 characters in ISO file names.
@*
This violates ISO 9660 specs.
@c man .TP
@item -N
@kindex -N omit version number in ISO file names
@ -723,6 +733,54 @@ Remove s-bit and t-bit.
@kindex -rational-rock Rock Ridge with altered owner and permission
Alias of -r.
@c man .TP
@item -D
@kindex -D allow deep directory hierachies
@cindex Deep directories, allow, -D, -disable-deep-relocation
The standard ECMA-119 demands that no path in the image shall have more
than 8 name components or 255 characters. Therefore it would be necessary
to move deeper directory trees to a higher directory. Rock Ridge offers an
opportunity to let these relocated directories appear at their orginal
deep position, but this feature might not be implemented properly by
operating systems which mount the image.
@*
Option -D disables this deep directory relocation, and thus violates
ISO 9660 specs.
@*
xorrisofs has -D set by default. If given explicitely then it overrides
the options -rr_reloc_dir and -hide-rr-moved.
@c man .TP
@item -disable-deep-relocation
@kindex -disable-deep-relocation allow deep directory hierachies
Alias of -D.
@c man .TP
@item -rr_reloc_dir name
@kindex -rr_reloc_dir set deep directory relocation target
@cindex Deep directories, relocation target, -rr_reloc_dir
Enable the relocation of deep directories and thus avoid ECMA-119 file paths
of more than 8 name components or 255 characters. Directories which lead to
such file paths will get moved to a directory in the root directory of the
image. Its name gets set by this option.
It is permissible to use the root directory itself.
@*
The overall directory tree will appear originally deep when interpreted as
Rock Ridge tree. It will appear as re-arranged if only ECMA-119 information
is considered.
@*
If the given relocation target directory does not already exist when image
production begins, then it will get created and marked for Rock Ridge as
relocation artefact. At least on GNU/Linux it will not be displayed in
mounted Rock Ridge images.
@*
The name must not contain a '/' character after its first character and it
must not be longer than 255 bytes.
@*
This option has no effect if option -D is present.
@c man .TP
@item -hide-rr-moved
@kindex -hide-rr-moved set deep directory relocation target
@cindex Deep directories, relocation target, -hide-rr-moved
Alias of -rr_reloc_dir "/.rr_moved"
@c man .TP
@item @minus{}@minus{}for_backup
@kindex @minus{}@minus{}for_backup Enable backup fidelity
@cindex Backup, enable fidelity, @minus{}@minus{}for_backup
@ -980,7 +1038,7 @@ boot facility.
@*
@c man .PP
@sp 1
@cindex El Torito, _definiton
@cindex El Torito, _definition
An @strong{El Torito}
boot record points the bootstrapping facility to a boot catalog
with one or more boot images, which are binary program files stored in
@ -1101,13 +1159,13 @@ in the directory trees of the image.
@node SystemArea, Charset, Bootable, Options
@section System Area, MBR, other boot blocks
@c man .PP
@cindex System Area, _definiton
@cindex System Area, _definition
The first 16 blocks of an ISO image are the System Area.
It is reserved for system dependent boot software. This may be the
CD boot facilities of exotic hardware architectures or it may be
a MBR for booting via PC-BIOS from USB stick or hard disk.
@*
@cindex MBR, _definiton
@cindex MBR, _definition
A @strong{MBR} (Master Boot Record) contains boot code and a partition table.
It does not hamper El Torito booting from CDROM.
@*
@ -2067,7 +2125,7 @@ Thomas Schmitt <scdbackup@@gmx.net>
for libburnia-project.org
@c man .SH COPYRIGHT
@section Copyright
Copyright (c) 2011 Thomas Schmitt
Copyright (c) 2011 - 2012 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