Allowed lseekable device files with -paste_in

This commit is contained in:
Thomas Schmitt 2022-05-30 18:48:05 +02:00
parent 0c0d542591
commit 865115f779
5 changed files with 123 additions and 74 deletions

View File

@ -2,7 +2,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images. /* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2021 Thomas Schmitt, <scdbackup@gmx.net> Copyright 2007-2022 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later. Provided under GPL version 2 or later.
@ -41,6 +41,7 @@
#include "iso_manip.h" #include "iso_manip.h"
#include "read_run.h" #include "read_run.h"
#include "sort_cmp.h" #include "sort_cmp.h"
#include "disk_ops.h"
int Xorriso__read_pacifier(IsoImage *image, IsoFileSource *filesource) int Xorriso__read_pacifier(IsoImage *image, IsoFileSource *filesource)
@ -824,7 +825,7 @@ int Xorriso_tree_restore_node(struct XorrisO *xorriso, IsoNode *node,
int ret= 0, write_fd= -1, wanted, wret, open_flags, l_errno= 0; int ret= 0, write_fd= -1, wanted, wret, open_flags, l_errno= 0;
int target_deleted= 0, buf_size= 32 * 1024; int target_deleted= 0, buf_size= 32 * 1024;
char *what= "[unknown filetype]"; char *what= "[unknown filetype]";
char *buf= NULL, type_text[5], *temp_path= NULL, *buf_pt; char *buf= NULL, type_text[5], *temp_path= NULL, *buf_pt, *reason;
char *link_target, *open_path_pt= NULL; char *link_target, *open_path_pt= NULL;
off_t todo= 0, size, seek_ret, last_p_count= 0, already_done, read_count= 0; off_t todo= 0, size, seek_ret, last_p_count= 0, already_done, read_count= 0;
void *data_stream= NULL; void *data_stream= NULL;
@ -836,7 +837,7 @@ int Xorriso_tree_restore_node(struct XorrisO *xorriso, IsoNode *node,
IsoBoot *bootcat; IsoBoot *bootcat;
uint32_t lba; uint32_t lba;
char *catcontent = NULL; char *catcontent = NULL;
off_t catsize; off_t catsize, iso_node_size, wanted_size, cap;
char disk_md5[16], iso_md5[16]; char disk_md5[16], iso_md5[16];
void *ctx= NULL; void *ctx= NULL;
int use_md5= 0, i, sparse_ret= 3; int use_md5= 0, i, sparse_ret= 3;
@ -886,13 +887,30 @@ int Xorriso_tree_restore_node(struct XorrisO *xorriso, IsoNode *node,
if(ret == -1 && errno == EACCES && (flag & 128)) if(ret == -1 && errno == EACCES && (flag & 128))
{ret= 4; goto ex;} {ret= 4; goto ex;}
if(flag&2) { if(flag&2) {
if(ret!=-1 && !S_ISREG(stbuf.st_mode)) { if(ret != -1) {
sprintf(xorriso->info_text, wanted_size= disk_offset + bytes;
"Restore offset demanded. But filesystem path leads to non-data file "); iso_node_size= iso_file_get_size((IsoFile *) node);
Text_shellsafe(disk_path, xorriso->info_text, 1); if(wanted_size > disk_offset + iso_node_size)
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE",0); wanted_size= disk_offset + iso_node_size;
l_errno= 0; cap= wanted_size;
goto cannot_restore; ret= Xorriso_determine_capacity(xorriso, open_path_pt, &cap, &reason,
3);
if(ret <= 0 || (cap <= 0 && !S_ISREG(stbuf.st_mode))) {
if(ret > 0)
reason= "has addressable range 0";
sprintf(xorriso->info_text,
"Restore offset demanded. But target file (%s) ",
Ftypetxt(stbuf.st_mode, 0));
Text_shellsafe(disk_path, xorriso->info_text, 1);
strcat(xorriso->info_text, reason);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE",0); l_errno= 0;
goto cannot_restore;
}
if(cap < wanted_size && !S_ISREG(stbuf.st_mode)) {
/* >>> non-regular file might be too small to take the interval */;
}
} }
} else { } else {
/* If source and target are the same disk file then do not copy content */ /* If source and target are the same disk file then do not copy content */
@ -1378,6 +1396,7 @@ int Xorriso_register_node_target(struct XorrisO *xorriso, int node_idx,
bit6= this is a copy action: do not fake times and ownership bit6= this is a copy action: do not fake times and ownership
bit7= return 4 if restore fails from denied permission bit7= return 4 if restore fails from denied permission
do not issue error message do not issue error message
bit10= do not restore properties
@return <=0 = error , 1 = added leaf file object , 2 = added directory , @return <=0 = error , 1 = added leaf file object , 2 = added directory ,
3= regularly not installed (disallowed device, UNIX domain socket) 3= regularly not installed (disallowed device, UNIX domain socket)
4 = with bit7: permission to restore was denied 4 = with bit7: permission to restore was denied
@ -1388,7 +1407,7 @@ int Xorriso_restore_disk_object(struct XorrisO *xorriso,
off_t offset, off_t bytes, int flag) off_t offset, off_t bytes, int flag)
{ {
int ret, i, split_count= 0, partno, total_parts, leaf_is_split= 0; int ret, i, split_count= 0, partno, total_parts, leaf_is_split= 0;
int record_hl_path= 0, node_idx, cannot_register= 0; int record_hl_path= 0, node_idx, cannot_register= 0, no_props;
off_t total_bytes; off_t total_bytes;
char *part_name, *part_path= NULL, *img_path_pt= NULL; char *part_name, *part_path= NULL, *img_path_pt= NULL;
IsoImage *volume; IsoImage *volume;
@ -1398,6 +1417,8 @@ int Xorriso_restore_disk_object(struct XorrisO *xorriso,
Xorriso_alloc_meM(part_path, char, SfileadrL); Xorriso_alloc_meM(part_path, char, SfileadrL);
no_props= !!(flag & 1024);
ret= Xorriso_get_volume(xorriso, &volume, 0); ret= Xorriso_get_volume(xorriso, &volume, 0);
if(ret<=0) if(ret<=0)
goto ex; goto ex;
@ -1432,7 +1453,7 @@ int Xorriso_restore_disk_object(struct XorrisO *xorriso,
if(ret == 4) if(ret == 4)
goto ex; goto ex;
} }
if(first_part_node!=NULL) if(first_part_node != NULL && !no_props)
Xorriso_restore_properties(xorriso, disk_path, first_part_node, Xorriso_restore_properties(xorriso, disk_path, first_part_node,
!!(flag&64)); !!(flag&64));
goto went_well; goto went_well;
@ -1474,10 +1495,11 @@ int Xorriso_restore_disk_object(struct XorrisO *xorriso,
ret= Xorriso_tree_restore_node(xorriso, node, img_path_pt, (off_t) 0, ret= Xorriso_tree_restore_node(xorriso, node, img_path_pt, (off_t) 0,
disk_path, offset, bytes, disk_path, offset, bytes,
(flag&(4 | 8 | 128)) | (!!(flag&64)) | ((flag&1)<<1) | ( 16 * !(flag&2))); (flag&(4 | 8 | 128)) | (!!(flag&64)) | ((flag&1)<<1) | ( 16 * !(flag&2))
| (no_props << 3));
if(ret == 4) if(ret == 4)
goto ex; goto ex;
if(ret>0 && (flag&8)) if(ret > 0 && (flag & 8) && !no_props)
ret= Xorriso_restore_properties(xorriso, disk_path, node, 2 | !!(flag&64)); ret= Xorriso_restore_properties(xorriso, disk_path, node, 2 | !!(flag&64));
if(ret<=0) { if(ret<=0) {
restoring_failed:; restoring_failed:;
@ -1891,6 +1913,7 @@ ex:
3= count nodes in xorriso->node_counter, 3= count nodes in xorriso->node_counter,
create no directory create no directory
bit9= with operation mode 1 do net register prefixes bit9= with operation mode 1 do net register prefixes
bit10= with bit3: do not restore properties to leaf file
@return <=0 = error , 1 = added leaf file object , 2 = added directory , @return <=0 = error , 1 = added leaf file object , 2 = added directory ,
3 = rejected 3 = rejected
*/ */
@ -1903,7 +1926,7 @@ int Xorriso_restore(struct XorrisO *xorriso,
IsoNode *node= NULL; IsoNode *node= NULL;
int done= 0, is_dir= 0, ret, source_is_dir, stbuf_ret, hret; int done= 0, is_dir= 0, ret, source_is_dir, stbuf_ret, hret;
int dir_create= 0, node_count= 0, node_register= 0, path_size; int dir_create= 0, node_count= 0, node_register= 0, path_size;
int leaf_is_split= 0, source_is_split= 0, new_dir_made= 0; int leaf_is_split= 0, source_is_split= 0, new_dir_made= 0, no_props;
struct stat stbuf; struct stat stbuf;
struct PermiteM *perm_stack_mem; struct PermiteM *perm_stack_mem;
@ -1917,6 +1940,7 @@ int Xorriso_restore(struct XorrisO *xorriso,
break; case 2: node_register= 1; break; case 2: node_register= 1;
break; case 3: node_count= 1; break; case 3: node_count= 1;
} }
no_props= (!!(flag & 8)) * (flag & 1024);
if(dir_create && !(flag & (1 << 9))) { if(dir_create && !(flag & (1 << 9))) {
ret= Xorriso_lst_append_binary(&(xorriso->node_disk_prefixes), ret= Xorriso_lst_append_binary(&(xorriso->node_disk_prefixes),
@ -2005,7 +2029,7 @@ int Xorriso_restore(struct XorrisO *xorriso,
if((flag&8) && done) { if((flag&8) && done) {
/* ??? move down from Xorriso_paste_in() : /* ??? move down from Xorriso_paste_in() :
check whether target does not exist or both are regular */; check whether target does not exist or both are suitable */;
} else if(source_is_dir || !(dir_create || node_count || node_register)) { } else if(source_is_dir || !(dir_create || node_count || node_register)) {
ret= Xorriso_handle_collision(xorriso, node, img_path, path, disk_path, ret= Xorriso_handle_collision(xorriso, node, img_path, path, disk_path,
@ -2078,7 +2102,7 @@ attach_source:;
} }
} else { } else {
ret= Xorriso_restore_disk_object(xorriso, img_path, node, path, ret= Xorriso_restore_disk_object(xorriso, img_path, node, path,
offset, bytes, (flag & (2|4|64)) | !!(flag&8)); offset, bytes, (flag & (2|4|64)) | no_props | !!(flag&8));
if(ret <= 0) { if(ret <= 0) {
hret= Xorriso_eval_problem_status(xorriso, ret, 1 | 2); hret= Xorriso_eval_problem_status(xorriso, ret, 1 | 2);
if(hret < 0) if(hret < 0)
@ -2218,9 +2242,10 @@ ex:;
int Xorriso_paste_in(struct XorrisO *xorriso, char *disk_path, int Xorriso_paste_in(struct XorrisO *xorriso, char *disk_path,
off_t startbyte, off_t bytecount, char *iso_rr_path, int flag) off_t startbyte, off_t bytecount, char *iso_rr_path, int flag)
{ {
int ret; int ret, no_props= 0;
char *eff_source= NULL, *eff_dest= NULL; off_t wanted_size, cap;
struct stat stbuf; char *eff_source= NULL, *eff_dest= NULL, *reason;
struct stat stbuf, disk_stbuf;
IsoNode *node; IsoNode *node;
Xorriso_alloc_meM(eff_source, char, SfileadrL); Xorriso_alloc_meM(eff_source, char, SfileadrL);
@ -2240,16 +2265,6 @@ int Xorriso_paste_in(struct XorrisO *xorriso, char *disk_path,
if(ret!=0) if(ret!=0)
{ret= 0; goto ex;} {ret= 0; goto ex;}
ret= stat(eff_dest, &stbuf);
if(ret!=-1 && !S_ISREG(stbuf.st_mode)) {
Xorriso_msgs_submit(xorriso, 0, eff_dest, 0, "ERRFILE", 0);
sprintf(xorriso->info_text, "-paste_in: DISK file ");
Text_shellsafe(eff_source, xorriso->info_text, 1);
strcat(xorriso->info_text, " exists and is not a data file");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE", 0);
{ret= 0; goto ex;}
}
ret= Xorriso_normalize_img_path(xorriso, xorriso->wdi, iso_rr_path, ret= Xorriso_normalize_img_path(xorriso, xorriso->wdi, iso_rr_path,
eff_source, 2); eff_source, 2);
if(ret<=0) if(ret<=0)
@ -2266,9 +2281,37 @@ int Xorriso_paste_in(struct XorrisO *xorriso, char *disk_path,
{ret= 0; goto ex;} {ret= 0; goto ex;}
} }
/* >>> eventually obtain parameters from file name */; /* >>> ??? flag bit to obtain startbyte and bytecount from file name */;
ret= Xorriso_restore(xorriso, eff_source, eff_dest, startbyte, bytecount, 8); ret= lstat(eff_dest, &disk_stbuf);
if(ret != -1) {
no_props= 1 << 10;
wanted_size= startbyte + bytecount;
if(wanted_size > stbuf.st_size)
wanted_size= stbuf.st_size;
cap= wanted_size;
ret= Xorriso_determine_capacity(xorriso, eff_dest, &cap, &reason, 3);
if(ret <= 0 || (cap <= 0 && !S_ISREG(disk_stbuf.st_mode))) {
Xorriso_msgs_submit(xorriso, 0, eff_dest, 0, "ERRFILE", 0);
if(ret > 0)
reason= "has addressable range 0";
sprintf(xorriso->info_text, "-paste_in: DISK file (%s) ",
Ftypetxt(disk_stbuf.st_mode, 0));
Text_shellsafe(eff_dest, xorriso->info_text, 1);
sprintf(xorriso->info_text + strlen(xorriso->info_text),
" exists but %s", reason);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
{ret= 0; goto ex;}
}
if(cap < wanted_size && !S_ISREG(disk_stbuf.st_mode)) {
/* >>> non-regular file might be too small to take the interval */;
}
}
ret= Xorriso_restore(xorriso, eff_source, eff_dest, startbyte, bytecount,
8 | no_props);
ex:; ex:;
Xorriso_free_meM(eff_source); Xorriso_free_meM(eff_source);
Xorriso_free_meM(eff_dest); Xorriso_free_meM(eff_dest);

View File

@ -9,7 +9,7 @@
.\" First parameter, NAME, should be all caps .\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1) .\" other parameters are allowed: see man(7), man(1)
.TH XORRISO 1 "Version 1.5.5, Apr 26, 2022" .TH XORRISO 1 "Version 1.5.5, May 30, 2022"
.\" Please adjust this date whenever revising the manpage. .\" Please adjust this date whenever revising the manpage.
.\" .\"
.\" Some roff macros, for reference: .\" Some roff macros, for reference:
@ -5164,8 +5164,10 @@ Like \-cp_rx but restoring mtime, atime as in ISO image and trying to set
ownership and group as in ISO image. ownership and group as in ISO image.
.TP .TP
\fB\-paste_in\fR iso_rr_path disk_path byte_offset byte_count \fB\-paste_in\fR iso_rr_path disk_path byte_offset byte_count
Read the content of a ISO data file and write it into a data file on disk Read the content of a ISO data file and write it into a data file or device
beginning at the byte_offset. Write at most byte_count bytes. file on disk beginning at the byte_offset. Write at most byte_count bytes.
The file depicted by disk_path has to support random write access.
.br
This is the inverse of command \-cut_out. This is the inverse of command \-cut_out.
.TP .TP
\fB\-concat\fR mode [target | lim prog [args [...]] lim] iso_rr_path [***] \fB\-concat\fR mode [target | lim prog [args [...]] lim] iso_rr_path [***]

View File

@ -4354,8 +4354,10 @@ The directory permissions on disk have to allow rwx.
to set ownership and group as in ISO image. to set ownership and group as in ISO image.
-paste_in iso_rr_path disk_path byte_offset byte_count -paste_in iso_rr_path disk_path byte_offset byte_count
Read the content of a ISO data file and write it into a data file Read the content of a ISO data file and write it into a data file
on disk beginning at the byte_offset. Write at most byte_count or device file on disk beginning at the byte_offset. Write at most
bytes. This is the inverse of command -cut_out. byte_count bytes. The file depicted by disk_path has to support
random write access.
This is the inverse of command -cut_out.
-concat mode [target | lim prog [args [...]] lim] iso_rr_path [***] -concat mode [target | lim prog [args [...]] lim] iso_rr_path [***]
Copy the data content of one or more data files of the ISO image Copy the data content of one or more data files of the ISO image
into a disk file object, into a file descriptor, or start a program into a disk file object, into a file descriptor, or start a program
@ -5626,7 +5628,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -compare_l reports ISO/disk differences: Navigate. (line 147) * -compare_l reports ISO/disk differences: Navigate. (line 147)
* -compare_r reports ISO/disk differences: Navigate. (line 143) * -compare_r reports ISO/disk differences: Navigate. (line 143)
* -compliance controls standard compliance: SetWrite. (line 62) * -compliance controls standard compliance: SetWrite. (line 62)
* -concat copies ISO file content: Restore. (line 146) * -concat copies ISO file content: Restore. (line 148)
* -copyright_file sets copyright file name: SetWrite. (line 245) * -copyright_file sets copyright file name: SetWrite. (line 245)
* -cpax copies files to disk: Restore. (line 128) * -cpax copies files to disk: Restore. (line 128)
* -cpr inserts like with cp -r: Insert. (line 171) * -cpr inserts like with cp -r: Insert. (line 171)
@ -5662,7 +5664,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -external_filter unregisters data filter: Filter. (line 47) * -external_filter unregisters data filter: Filter. (line 47)
* -extract copies file tree to disk: Restore. (line 90) * -extract copies file tree to disk: Restore. (line 90)
* -extract_boot_images copies boot equipment to disk: Restore. * -extract_boot_images copies boot equipment to disk: Restore.
(line 174) (line 176)
* -extract_cut copies file piece to disk: Restore. (line 108) * -extract_cut copies file piece to disk: Restore. (line 108)
* -extract_l copies files to disk: Restore. (line 104) * -extract_l copies files to disk: Restore. (line 104)
* -extract_single copies file to disk: Restore. (line 101) * -extract_single copies file to disk: Restore. (line 101)
@ -5720,7 +5722,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -md5 controls handling of MD5 sums: Loading. (line 184) * -md5 controls handling of MD5 sums: Loading. (line 184)
* -mkdir creates ISO directory: Insert. (line 184) * -mkdir creates ISO directory: Insert. (line 184)
* -modesty_on_drive keep drive buffer hungry: SetWrite. (line 419) * -modesty_on_drive keep drive buffer hungry: SetWrite. (line 419)
* -mount issues mount command for ISO session: Restore. (line 202) * -mount issues mount command for ISO session: Restore. (line 204)
* -mount_cmd composes mount command line: Inquiry. (line 49) * -mount_cmd composes mount command line: Inquiry. (line 49)
* -mount_cmd controls mount command: Inquiry. (line 65) * -mount_cmd controls mount command: Inquiry. (line 65)
* -msg_op perform operations on program messages: Frontend. (line 27) * -msg_op perform operations on program messages: Frontend. (line 27)
@ -5913,7 +5915,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Emulation, pacifier form, -pacifier: Emulation. (line 166) * Emulation, pacifier form, -pacifier: Emulation. (line 166)
* Examples: Examples. (line 6) * Examples: Examples. (line 6)
* extattr, _definition: Extras. (line 66) * extattr, _definition: Extras. (line 66)
* File content, copy, -concat: Restore. (line 146) * File content, copy, -concat: Restore. (line 148)
* File names, curb length, -file_name_limit: Loading. (line 276) * File names, curb length, -file_name_limit: Loading. (line 276)
* File names, if Joliet is loaded: Loading. (line 242) * File names, if Joliet is loaded: Loading. (line 242)
* File names, if neither Rock Ridge nor Joliet: Loading. (line 229) * File names, if neither Rock Ridge nor Joliet: Loading. (line 229)
@ -6080,7 +6082,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Rename, in ISO image, -move: Manip. (line 31) * Rename, in ISO image, -move: Manip. (line 31)
* Rename, in ISO image, -mv: Manip. (line 37) * Rename, in ISO image, -mv: Manip. (line 37)
* Restore, copy boot equipment to disk, -extract_boot_images: Restore. * Restore, copy boot equipment to disk, -extract_boot_images: Restore.
(line 174) (line 176)
* Restore, copy file into disk file, -paste_in: Restore. (line 142) * Restore, copy file into disk file, -paste_in: Restore. (line 142)
* Restore, copy file piece to disk, -extract_cut: Restore. (line 108) * Restore, copy file piece to disk, -extract_cut: Restore. (line 108)
* Restore, copy file to disk, -extract_single: Restore. (line 101) * Restore, copy file to disk, -extract_single: Restore. (line 101)
@ -6096,7 +6098,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Rock Ridge, _definition: Extras. (line 6) * Rock Ridge, _definition: Extras. (line 6)
* Session, altered start address, -displacement: Loading. (line 78) * Session, altered start address, -displacement: Loading. (line 78)
* Session, info string, -session_string: Inquiry. (line 74) * Session, info string, -session_string: Inquiry. (line 74)
* Session, issue mount command, -mount: Restore. (line 202) * Session, issue mount command, -mount: Restore. (line 204)
* Session, log when written, -session_log: Scripting. (line 134) * Session, log when written, -session_log: Scripting. (line 134)
* Session, mount command line, -mount_cmd: Inquiry. (line 49) * Session, mount command line, -mount_cmd: Inquiry. (line 49)
* Session, mount parameters, -mount_opts: Inquiry. (line 65) * Session, mount parameters, -mount_opts: Inquiry. (line 65)
@ -6182,32 +6184,32 @@ Node: Inquiry200783
Node: Navigate209665 Node: Navigate209665
Node: Verify218372 Node: Verify218372
Node: Restore229521 Node: Restore229521
Node: Emulation241637 Node: Emulation241729
Node: Scripting252093 Node: Scripting252185
Node: Frontend259876 Node: Frontend259968
Node: Examples269502 Node: Examples269594
Node: ExDevices270680 Node: ExDevices270772
Node: ExCreate271341 Node: ExCreate271433
Node: ExDialog272641 Node: ExDialog272733
Node: ExGrowing273912 Node: ExGrowing274004
Node: ExModifying274721 Node: ExModifying274813
Node: ExBootable275231 Node: ExBootable275323
Node: ExCharset275786 Node: ExCharset275878
Node: ExPseudo276682 Node: ExPseudo276774
Node: ExCdrecord277609 Node: ExCdrecord277701
Node: ExMkisofs277929 Node: ExMkisofs278021
Node: ExGrowisofs279826 Node: ExGrowisofs279918
Node: ExException280979 Node: ExException281071
Node: ExTime281437 Node: ExTime281529
Node: ExIncBackup281895 Node: ExIncBackup281987
Node: ExRestore285921 Node: ExRestore286013
Node: ExRecovery286867 Node: ExRecovery286959
Node: Files287439 Node: Files287531
Node: Environ288773 Node: Environ288865
Node: Seealso289521 Node: Seealso289613
Node: Bugreport290238 Node: Bugreport290330
Node: Legal290829 Node: Legal290921
Node: CommandIdx291841 Node: CommandIdx291933
Node: ConceptIdx309666 Node: ConceptIdx309758
 
End Tag Table End Tag Table

View File

@ -50,7 +50,7 @@
@c man .\" First parameter, NAME, should be all caps @c man .\" First parameter, NAME, should be all caps
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection @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 .\" other parameters are allowed: see man(7), man(1)
@c man .TH XORRISO 1 "Version 1.5.5, Apr 26, 2022" @c man .TH XORRISO 1 "Version 1.5.5, May 30, 2022"
@c man .\" Please adjust this date whenever revising the manpage. @c man .\" Please adjust this date whenever revising the manpage.
@c man .\" @c man .\"
@c man .\" Some roff macros, for reference: @c man .\" Some roff macros, for reference:
@ -5923,8 +5923,10 @@ ownership and group as in ISO image.
@item -paste_in iso_rr_path disk_path byte_offset byte_count @item -paste_in iso_rr_path disk_path byte_offset byte_count
@kindex -paste_in copies file into disk file @kindex -paste_in copies file into disk file
@cindex Restore, copy file into disk file, -paste_in @cindex Restore, copy file into disk file, -paste_in
Read the content of a ISO data file and write it into a data file on disk Read the content of a ISO data file and write it into a data file or device
beginning at the byte_offset. Write at most byte_count bytes. file on disk beginning at the byte_offset. Write at most byte_count bytes.
The file depicted by disk_path has to support random write access.
@*
This is the inverse of command -cut_out. This is the inverse of command -cut_out.
@c man .TP @c man .TP
@item -concat mode [target | lim prog [args [...]] lim] iso_rr_path [***] @item -concat mode [target | lim prog [args [...]] lim] iso_rr_path [***]

View File

@ -1 +1 @@
#define Xorriso_timestamP "2022.05.30.164422" #define Xorriso_timestamP "2022.05.30.164747"