Compare commits
66 Commits
Author | SHA1 | Date | |
---|---|---|---|
2a6d5d52b4 | |||
185be192b8 | |||
bd2e164f73 | |||
87501e2cb4 | |||
1e82214392 | |||
0d293c93f9 | |||
6557519066 | |||
d8ccc062a1 | |||
c5381ee1a2 | |||
712b012530 | |||
0f2d174156 | |||
eaefa189d0 | |||
c0e1f4f9f2 | |||
808ea834bb | |||
e48665cc44 | |||
f720a0b1b9 | |||
bd921d2d99 | |||
b406e8e93e | |||
d005e8f1c2 | |||
85bd616af1 | |||
118003067d | |||
7c34e7c255 | |||
ba571848fa | |||
3af66f3c8a | |||
deee733b0d | |||
c704c9c205 | |||
b42293cd05 | |||
8f48b854d8 | |||
0498f81865 | |||
5d00144aa6 | |||
1cd812e25a | |||
20afcce743 | |||
fa1ce420a8 | |||
43a4695b6a | |||
4ba706d8d2 | |||
aa63e1884a | |||
c6869a0925 | |||
2d52e9427d | |||
9836165089 | |||
005627b330 | |||
84cbbc4a57 | |||
26bfb48c39 | |||
dfb641b3b1 | |||
d5dd6c96cd | |||
f70299dae1 | |||
7c42bd8a17 | |||
7156827557 | |||
36d8e2bd62 | |||
1186e09ef1 | |||
d09ee8335e | |||
46293e457b | |||
d40b26e8bd | |||
661ae74800 | |||
67836d9721 | |||
3c0bc5bc16 | |||
719ef2a6d3 | |||
a61a461fa0 | |||
58486a4fdc | |||
5a0ab5533b | |||
2bdc22153e | |||
20ccd705f0 | |||
8ade912d76 | |||
ec01b598b9 | |||
fdeb97fc28 | |||
3bd7d5deee | |||
400a4f2add |
18
ChangeLog
18
ChangeLog
@ -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
18
README
@ -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
|
||||
|
22
configure.ac
22
configure.ac
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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.
|
||||
*/
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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))
|
||||
|
@ -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, §ors, §or_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:;
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -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++) {
|
||||
|
@ -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:
|
||||
|
@ -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>/\ <BR><b>Overview of features:<\/b>/' \
|
||||
-e 's/<b>General information paragraphs:<\/b>/\ <BR><b>General information paragraphs:<\/b>/' \
|
||||
-e 's/<b>Overview of features:<\/b>/\ <BR><A NAME="Overview"><\/A><b>Overview of features:<\/b>/' \
|
||||
-e 's/<b>General information paragraphs:<\/b>/\ <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>/\ <BR><b>Session model:<\/b>/' \
|
||||
-e 's/<b>Media types and states:<\/b>/\ <BR><b>Media types and states:<\/b>/' \
|
||||
-e 's/<b>Creating, Growing, Modifying, Blind/\ <BR><b>Creating, Growing, Modifying, Blind/' \
|
||||
-e 's/<b>Libburn drives:<\/b>/\ <BR><b>Libburn drives:<\/b>/' \
|
||||
-e 's/<b>Session model:<\/b>/\ <BR><A NAME="Model"><\/A><b>Session model:<\/b>/' \
|
||||
-e 's/<b>Media types and states:<\/b>/\ <BR><A NAME="Media"><\/A><b>Media types and states:<\/b>/' \
|
||||
-e 's/<b>Creating, Growing, Modifying, Blind/\ <BR><A NAME="Methods"><\/A><b>Creating, Growing, Modifying, Blind/' \
|
||||
-e 's/<b>Libburn drives:<\/b>/\ <BR><b>Libburn drives:<\/b><A NAME="Drives"><\/A>/' \
|
||||
-e 's/^-dev /\ \ -dev /' \
|
||||
-e 's/^-devices /\ \ -devices /' \
|
||||
-e 's/<b>Rock Ridge, POSIX, X\/Open, El Torito, ACL,/\ <BR><b>Rock Ridge, POSIX, X\/Open, El Torito, ACL,/' \
|
||||
-e 's/<b>Command processing:<\/b>/\ <BR><b>Command processing:<\/b>/' \
|
||||
-e 's/<b>Dialog, Readline, Result pager:<\/b>/\ <BR><b>Dialog, Readline, Result pager:<\/b>/' \
|
||||
-e 's/<b>Aquiring source and target drive:<\/b>/\ <BR><b>Aquiring source and target drive:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Influencing the behavior of image/\ <BR><b>Influencing the behavior of image/' \
|
||||
-e 's/<b>Inserting files into ISO image:<\/b>/\ <BR><b>Inserting files into ISO image:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>File manipulations:<\/b>/\ <BR><b>File manipulations:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Tree traversal command -find:<\/b>/\ <BR><b>Tree traversal command -find:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Rock Ridge, POSIX, X\/Open, El Torito, ACL,/\ <BR><A NAME="Extras"><\/A><b>Rock Ridge, POSIX, X\/Open, El Torito, ACL,/' \
|
||||
-e 's/<b>Command processing:<\/b>/\ <BR><A NAME="Processing"><\/A><b>Command processing:<\/b>/' \
|
||||
-e 's/<b>Dialog, Readline, Result pager:<\/b>/\ <BR><A NAME="Dialog"><\/A<b>Dialog, Readline, Result pager:<\/b>/' \
|
||||
-e 's/<b>Execution order of program arguments:<\/b>/\ <BR><A NAME="ArgSort"><\/A><b>Execution order of program arguments:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Acquiring source and target drive:<\/b>/\ <BR><A NAME="AqDrive"><\/A><b>Acquiring source and target drive:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Influencing the behavior of image/\ <BR><A NAME="Loading"><\/A><b>Influencing the behavior of image/' \
|
||||
-e 's/<b>Inserting files into ISO image:<\/b>/\ <BR><A NAME="Insert"><\/A><b>Inserting files into ISO image:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Settings for file insertion:<\/b>/\ <BR><A NAME="SetInsert"><\/A><b>Settings for file insertion:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>File manipulations:<\/b>/\ <BR><A NAME="Manip"><\/A><b>File manipulations:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Tree traversal command -find:<\/b>/\ <BR><A NAME="CmdFind"><\/A><b>Tree traversal command -find:<\/b><BR>\ <BR>/' \
|
||||
-e 's/^<p><b>−iso_rr_pattern/<p>\ <BR><b>\−iso_rr_pattern/' \
|
||||
-e 's/EXAMPLES):<br>/<A HREF="#EXAMPLES">EXAMPLES<\/A>):<br>/' \
|
||||
-e 's/<b>Filters for data file content:<\/b>/\ <BR><b>Filters for data file content:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Writing the result, drive control:<\/b>/\ <BR><b>Writing the result, drive control:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Filters for data file content:<\/b>/\ <BR><A NAME="Filter"><\/A><b>Filters for data file content:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Writing the result, drive control:<\/b>/\ <BR><A NAME="Writing"><\/A><b>Writing the result, drive control:<\/b><BR>\ <BR>/' \
|
||||
-e 's/^-find \/ /\ \ -find \/ /' \
|
||||
-e 's/<b>Settings for file insertion:<\/b>/\ <BR><b>Settings for file insertion:<\/b><BR>\ <BR>/' \
|
||||
-e 's/^$<\/b> ln -s/\ \ $<\/b> ln -s/' \
|
||||
-e 's/<b>Settings for result writing:<\/b>/\ <BR><b>Settings for result writing:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Settings for result writing:<\/b>/\ <BR><A NAME="SetWrite"><\/A><b>Settings for result writing:<\/b><BR>\ <BR>/' \
|
||||
-e 's/^706k = 706kB/\ \ 706k = 706kB/' \
|
||||
-e 's/^5540k = 5540kB/\ \ 5540k = 5540kB/' \
|
||||
-e 's/<b>Character sets:<\/b>/\ <BR><b>Character sets:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Exception processing:<\/b>/\ <BR><b>Exception processing:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>El Torito bootable ISO images:<\/b>/\ <BR><b>El Torito bootable ISO images:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Jigdo Template Extraction:<\/b>/\ <BR><b>Jigdo Template Extraction:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Dialog mode control:<\/b>/\ <BR><b>Dialog mode control:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Drive and media related inquiry actions:<\/b>/\ <BR><b>Drive and media related inquiry actions:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Navigation in ISO image/\ <BR><b>Navigation in ISO image/' \
|
||||
-e 's/<b>Bootable ISO images:<\/b>/\ <BR><A NAME="Bootable"><\/A><b>Bootable ISO images:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Jigdo Template Extraction:<\/b>/\ <BR><A NAME="Jigdo"><\/A><b>Jigdo Template Extraction:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Character sets:<\/b>/\ <BR><A NAME="Charset"><\/A><b>Character sets:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Exception processing:<\/b>/\ <BR><A NAME="Exception"><\/A><b>Exception processing:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Dialog mode control:<\/b>/\ <BR><A NAME="DialogCtl"><\/A><b>Dialog mode control:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Drive and media related inquiry actions:<\/b>/\ <BR><A NAME="Inquiry"><\/A><b>Drive and media related inquiry actions:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Navigation in ISO image/\ <BR><A NAME="Navigate"><\/A><b>Navigation in ISO image/' \
|
||||
-e 's/^filesystem:<\/b>/filesystem:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Evaluation of readability and recovery:<\/b>/\ <BR><b>Evaluation of readability and recovery:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>osirrox ISO-to-disk restore options:<\/b>/\ <BR><b>osirrox ISO-to-disk restore options:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Command compatibility emulations:<\/b>/\ <BR><b>Command compatibility emulations:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Evaluation of readability and recovery:<\/b>/\ <BR><A NAME="Verify"><\/A><b>Evaluation of readability and recovery:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>osirrox ISO-to-disk restore commands:<\/b>/\ <BR><A NAME="Restore"><\/A><b>osirrox ISO-to-disk restore commands:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Command compatibility emulations:<\/b>/\ <BR><A NAME="Emulation"><\/A><b>Command compatibility emulations:<\/b><BR>\ <BR>/' \
|
||||
-e 's/^<p><b>−as</<p>\ <BR><b>\−as</' \
|
||||
-e 's/<b>Scripting, dialog and/\ <BR><b>Scripting, dialog and/' \
|
||||
-e 's/<b>Scripting, dialog and/\ <BR><A NAME="Scripting"><\/A><b>Scripting, dialog and/' \
|
||||
-e 's/^features:<\/b>/features:<\/b><BR>\ <BR>/' \
|
||||
-e 's/<b>Support for frontend/\ <BR><b>Support for frontend/' \
|
||||
-e 's/<b>Support for frontend/\ <BR><A NAME="Frontend"><\/A><b>Support for frontend/' \
|
||||
-e 's/^listening at stdout:<\/b>/listening at stdout:<\/b><BR>\ <BR>/' \
|
||||
-e 's/xorriso -outdev \/dev\/sr2 \\ -blank fast \\ -pathspecs on/xorriso -outdev \/dev\/sr2 -blank fast -pathspecs on/' \
|
||||
-e 's/\\ -add \\ \/sounds=\/home\/me\/sounds \\ \/pictures \\ -- \\ -rm_r \\/ -add \/sounds=\/home\/me\/sounds \/pictures -- -rm_r /' \
|
||||
|
@ -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 */
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;}
|
||||
|
@ -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 */
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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;}
|
||||
}
|
||||
|
@ -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 */
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
@ -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
@ -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> </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> </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> </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> </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 © 2008 - 2011 Thomas Schmitt.
|
||||
Copyright © 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.
|
||||
|
@ -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()
|
||||
|
@ -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];
|
||||
|
@ -1 +1 @@
|
||||
#define Xorriso_timestamP "2012.01.25.153732"
|
||||
#define Xorriso_timestamP "2012.04.02.133001"
|
||||
|
@ -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 */
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|