diff --git a/xorriso/aux_objects.c b/xorriso/aux_objects.c index f0245bf7..9074c51c 100644 --- a/xorriso/aux_objects.c +++ b/xorriso/aux_objects.c @@ -42,6 +42,7 @@ #include "xorriso.h" #include "xorriso_private.h" +#include "xorrisoburn.h" /* ---------------------------- SplitparT ------------------------- */ @@ -939,10 +940,16 @@ int Linkitem_get_link_count(struct LinkiteM *item, int flag) struct PermiteM { char *disk_path; struct stat stbuf; + int immutable; /* bit0= set chattr immutable bit + bit1= only set immutable bit + */ struct PermiteM *next; }; +/* @param flag bit0= Linux chattr immutable bit is set + bit1= when popping only set immutable bit +*/ int Permstack_push(struct PermiteM **o, char *disk_path, struct stat *stbuf, int flag) { @@ -953,6 +960,7 @@ int Permstack_push(struct PermiteM **o, char *disk_path, struct stat *stbuf, return(-1); m->disk_path= NULL; memcpy(&(m->stbuf), stbuf, sizeof(struct stat)); + m->immutable= flag & 3; m->next= *o; m->disk_path= strdup(disk_path); @@ -971,6 +979,7 @@ failed:; /* @param flag bit0= minimal transfer: access permissions only bit1= do not set timestamps + bit2= do not set chattr flag i "immutable" */ int Permstack_pop(struct PermiteM **o, struct PermiteM *stopper, struct XorrisO *xorriso, int flag) @@ -992,18 +1001,21 @@ int Permstack_pop(struct PermiteM **o, struct PermiteM *stopper, } for(m= *o; m!=stopper; m= m_next) { - ret= chmod(m->disk_path, m->stbuf.st_mode); - if(ret==-1) { - if(xorriso!=NULL) { - sprintf(xorriso->info_text, - "Cannot change access permissions of disk directory: chmod %o ", - (unsigned int) (m->stbuf.st_mode & 07777)); - Text_shellsafe(m->disk_path, xorriso->info_text, 1); - Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE", - 0); + if(!(m->immutable & 2)) { + ret= chmod(m->disk_path, m->stbuf.st_mode); + if(ret==-1) { + if(xorriso!=NULL) { + sprintf(xorriso->info_text, + "Cannot change access permissions of disk directory: chmod %o ", + (unsigned int) (m->stbuf.st_mode & 07777)); + Text_shellsafe(m->disk_path, xorriso->info_text, 1); + Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE", + 0); + } } } - if(!(flag&1)) { + + if(!((flag & 1) || (m->immutable & 2))) { ret= chown(m->disk_path, m->stbuf.st_uid, m->stbuf.st_gid); /* don't complain if it fails */ if(!(flag&2)) { @@ -1019,6 +1031,10 @@ int Permstack_pop(struct PermiteM **o, struct PermiteM *stopper, } } } + + if((m->immutable & 1) && !(flag & 4)) + Xorriso_set_local_chattr_i(xorriso, m->disk_path, 0); + m_next= m->next; free(m->disk_path); free((char *) m); diff --git a/xorriso/iso_manip.c b/xorriso/iso_manip.c index ba09ee75..d494fa99 100644 --- a/xorriso/iso_manip.c +++ b/xorriso/iso_manip.c @@ -107,7 +107,7 @@ int Xorriso_transfer_properties(struct XorrisO *xorriso, struct stat *stbuf, "Error when obtaining file attribute flags", os_errno, "FAILURE", 1 | 2); ret= 0; goto ex; - } else if(ret > 0) { + } else if(ret == 1 || ret == 2) { ret= iso_node_set_lfa_flags(node, lfa_flags, 0); if(ret < 0) { Xorriso_process_msg_queues(xorriso, 0); diff --git a/xorriso/iso_tree.c b/xorriso/iso_tree.c index 54716202..85e00e9b 100644 --- a/xorriso/iso_tree.c +++ b/xorriso/iso_tree.c @@ -2919,7 +2919,9 @@ int Xorriso_warn_if_not_bootcat(struct XorrisO *xorriso, char *prefix, @param in_node if not NULL and not flag bit1: omit path resolution @param flag bit1= path is disk_path bit5= in case of symbolic link on disk: inquire link target - @return <0 = ok , 0= no lfa_flags at node , <0 = libisofs error + @return >0 = ok , + 0 = no lfa_flags at node or disk file, + <0 = libisofs error */ int Xorriso_get_lfa_flags(struct XorrisO *xorriso, void *in_node, char *path, uint64_t *lfa_flags, int *max_bit, int flag) @@ -2959,6 +2961,8 @@ from_disk:; os_errno, "WARNING", 1); return(-1); } - return(1); + if(ret == 1 || ret == 2) + return(1); + return(0); } diff --git a/xorriso/lib_mgt.c b/xorriso/lib_mgt.c index 15595c95..0772abb7 100644 --- a/xorriso/lib_mgt.c +++ b/xorriso/lib_mgt.c @@ -448,6 +448,8 @@ int Xorriso_report_iso_error(struct XorrisO *xorriso, char *victim, Xorriso_alloc_meM(sfe, char, 6 * SfileadrL); + Xorriso_process_msg_queues(xorriso, 0); + if(sorry_sev<0) Xorriso__text_to_sev("SORRY", &sorry_sev, 0); diff --git a/xorriso/read_run.c b/xorriso/read_run.c index d5b31727..f469a6d0 100644 --- a/xorriso/read_run.c +++ b/xorriso/read_run.c @@ -303,6 +303,105 @@ ex:; } +int Xorriso_report_chattr_outcome(struct XorrisO *xorriso, char *disk_path, + uint64_t lfa_flags, uint64_t lfa_mask, + int iso_ret, int os_errno, int flag) +{ + int ret; + char msg[101], *lfa_text= NULL; + + if(iso_ret == 1) + {ret= 1; goto ex;} + + ret= iso_util_encode_lfa_flags(lfa_flags & lfa_mask, &lfa_text, 0); + if(lfa_text == NULL) + lfa_text= strdup("-unknown-attributes-"); + if(iso_ret < 0) { + strcpy(msg, "Could not set chattr '"); + if(lfa_text != NULL) + strcat(msg, lfa_text); + strcat(msg, "'"); + Xorriso_report_iso_error(xorriso, disk_path, iso_ret, msg, os_errno, + "FAILURE", 2); + ret= 0; goto ex; + } else if(iso_ret == 2) { + sprintf(xorriso->info_text, + "Could not map all of chattr '%s' to local file attributes of ", + lfa_text); + } else if(iso_ret == 3) { + sprintf(xorriso->info_text, "Will not apply chattr '%s' to symbolic link ", + lfa_text); + } else { + sprintf(xorriso->info_text, + "Unknown return value %d from iso_local_set_lfa_flags() with chattr '%s' to ", + iso_ret, lfa_text); + } + Text_shellsafe(disk_path, xorriso->info_text, 1); + Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE", 0); + ret= 0; +ex:; + if(lfa_text != NULL) + free(lfa_text); + return(ret); +} + + +uint64_t Xorriso__lfa_bits(char *lfa_text) +{ + int ret; + uint64_t lfa_bits; + + ret= iso_util_decode_lfa_flags(lfa_text, &lfa_bits, 0); + if(ret < 0) + lfa_bits= 0; + return(lfa_bits); +} + + +int Xorriso_set_local_chattr_i(struct XorrisO *xorriso, char *disk_path, + int flag) +{ + int ret, max_bit= 31, os_errno; + static uint64_t lfa_i= 0xffffffff; + + if(lfa_i == 0xffffffff) + lfa_i= Xorriso__lfa_bits("i"); + + ret= iso_local_set_lfa_flags(disk_path, lfa_i, max_bit, lfa_i, &os_errno, 0); + ret= Xorriso_report_chattr_outcome(xorriso, disk_path, lfa_i, lfa_i, + ret, os_errno, 0); + if(ret <= 0) + return(ret); + return(1); +} + + +/* If present and enabled: restore chattr i */ +int Xorriso_restore_chattr_i(struct XorrisO *xorriso, IsoNode *node, + char *disk_path, int flag) +{ + int ret, max_bit; + uint64_t lfa_flags; + static uint64_t lfa_i= 0xffffffff; + + if(lfa_i == 0xffffffff) + lfa_i= Xorriso__lfa_bits("i"); + + if((xorriso->do_aaip & (1 << 12)) && !(xorriso->do_aaip & (1 << 13))) { + ret= iso_node_get_lfa_flags(node, &lfa_flags, &max_bit, 0); + if(ret > 0) { + if(lfa_flags & lfa_i & xorriso->lfa_restore_mask) { + ret= Xorriso_set_local_chattr_i(xorriso, disk_path, 0); + if(ret <= 0) + return(ret); + return(1); + } + } + } + return(2); +} + + /* @param flag bit0= minimal transfer: access permissions only bit1= keep directory open: keep owner, allow rwx for owner and push directory onto xorriso->perm_stack @@ -319,8 +418,14 @@ int Xorriso_restore_properties(struct XorrisO *xorriso, char *disk_path, size_t num_attrs= 0, *value_lengths= NULL; char **names= NULL, **values= NULL; int *errnos= NULL; - uint64_t lfa_flags; + uint64_t lfa_flags, mask; int max_bit, os_errno; + static uint64_t lfa_C= 0xffffffff, lfa_i= 0xffffffff; + + if(lfa_C == 0xffffffff) { + lfa_C= Xorriso__lfa_bits("C"); + lfa_i= Xorriso__lfa_bits("i"); + } ret= lstat(disk_path, &stbuf); if(ret==-1) { @@ -474,16 +579,25 @@ cannot_set_perm:; Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0); {ret= 0; goto ex;} } else if(ret > 0) { - ret= iso_local_set_lfa_flags(disk_path, lfa_flags, max_bit, - xorriso->lfa_restore_mask, &os_errno, - (!!(xorriso->do_aaip & (1 << 13))) | - ((!!(xorriso->do_aaip & (1 << 14))) << 1)); - if(ret < 0) { + /* Do not set lfa_flag 'C' here. It would be too late. */ + mask= xorriso->lfa_restore_mask & ~lfa_C; + /* Do not set lfa_flag 'i' of a directory here. It would be too early. */ + if(is_dir) + mask&= ~lfa_i; + if(mask != 0) { + ret= iso_local_set_lfa_flags(disk_path, lfa_flags, max_bit, mask, + &os_errno, + (!!(xorriso->do_aaip & (1 << 13))) | + ((!!(xorriso->do_aaip & (1 << 14))) << 1)); /* >>> Need adjustable graceful error handling */; - Xorriso_process_msg_queues(xorriso, 0); - {ret= 0; goto ex;} + ret= Xorriso_report_chattr_outcome(xorriso, disk_path, + lfa_flags, + xorriso->lfa_restore_mask & ~lfa_C, + ret, os_errno, 0); + if(ret <= 0) + goto ex; } } } @@ -850,7 +964,7 @@ int Xorriso_tree_restore_node(struct XorrisO *xorriso, IsoNode *node, int flag) { 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, new_empty= 0; char *what= "[unknown filetype]"; char *buf= NULL, type_text[5], *temp_path= NULL, *buf_pt, *reason; char *link_target, *open_path_pt= NULL; @@ -867,12 +981,17 @@ int Xorriso_tree_restore_node(struct XorrisO *xorriso, IsoNode *node, off_t catsize, iso_node_size, wanted_size, cap; char disk_md5[16], iso_md5[16]; void *ctx= NULL; - int use_md5= 0, i, sparse_ret= 3; + int use_md5= 0, i, sparse_ret= 3, max_bit, os_errno; struct Xorriso_sparse_statE *sparse_state= NULL; + uint64_t lfa_flags; + static uint64_t lfa_C= 0xffffffff; Xorriso_alloc_meM(buf, char, buf_size); Xorriso_alloc_meM(temp_path, char, SfileadrL); + if(lfa_C == 0xffffffff) + lfa_C= Xorriso__lfa_bits("C"); + if(!(flag & 2)) img_offset= bytes= 0; if(LIBISO_ISDIR(node)) { @@ -911,8 +1030,11 @@ int Xorriso_tree_restore_node(struct XorrisO *xorriso, IsoNode *node, } open_path_pt= disk_path; ret= stat(open_path_pt, &stbuf); - if(ret == -1 && errno == EACCES && (flag & 128)) - {ret= 4; goto ex;} + if(ret == -1) { + if(errno == EACCES && (flag & 128)) + {ret= 4; goto ex;} + new_empty= 1; + } if(flag&2) { if(ret != -1) { wanted_size= disk_offset + bytes; @@ -959,6 +1081,7 @@ int Xorriso_tree_restore_node(struct XorrisO *xorriso, IsoNode *node, if(ret <= 0 || ret == 4) goto ex; open_path_pt= temp_path; + new_empty= 1; } } if(write_fd==-1) { @@ -972,6 +1095,25 @@ int Xorriso_tree_restore_node(struct XorrisO *xorriso, IsoNode *node, if(write_fd==-1) goto cannot_restore; } + + if(new_empty) { + /* If chattr 'C' "no copy-on-write" is present on node and enabled for + restoring, then set it as long as the file is empty, because man chattr + says so for btrfs. + */ + ret= iso_node_get_lfa_flags(node, &lfa_flags, &max_bit, 0); + if(ret > 0) { + if(lfa_flags & lfa_C & xorriso->lfa_restore_mask) { + ret= iso_local_set_lfa_flags(open_path_pt, lfa_C, max_bit, lfa_C, + &os_errno, 0); + ret= Xorriso_report_chattr_outcome(xorriso, open_path_pt, + lfa_C, lfa_C, ret, os_errno, 0); + if(ret <= 0) + goto cannot_restore; + } + } + } + if(ISO_NODE_IS_BOOTCAT(node)) { ret= Xorriso_get_volume(xorriso, &volume, 0); if(ret<=0) @@ -1479,6 +1621,8 @@ int Xorriso_restore_disk_object(struct XorrisO *xorriso, goto restoring_failed; if(ret == 4) goto ex; + if(ret == 2) + {ret= 3; goto ex;} } if(first_part_node != NULL && !no_props) Xorriso_restore_properties(xorriso, disk_path, first_part_node, @@ -1526,6 +1670,8 @@ int Xorriso_restore_disk_object(struct XorrisO *xorriso, | (no_props << 3)); if(ret == 4) goto ex; + if(ret == 2) + {ret= 3; goto ex;} if(ret > 0 && (flag & 8) && !no_props) ret= Xorriso_restore_properties(xorriso, disk_path, node, 2 | !!(flag&64)); if(ret<=0) { @@ -1537,8 +1683,6 @@ restoring_failed:; Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0); {ret= 0; goto ex;} } - if(ret==2) - {ret= 3; goto ex;} if(record_hl_path) { /* Start of a disk hardlink family */ ret= Xorriso_register_node_target(xorriso, node_idx, disk_path, 0); if(ret < 0) @@ -1659,7 +1803,7 @@ int Xorriso_restore_tree(struct XorrisO *xorriso, IsoDir *dir, IsoDirIter *iter= NULL; IsoNode **node_array= NULL; int node_count= 0, node_idx; - int ret, source_is_dir, fret, was_failure= 0; + int ret, source_is_dir, fret, was_failure= 0, sret; int do_not_dive, source_is_split= 0, len_dp, len_ip, stbuf_ret, hflag, hret; char *name, *disk_name, *leaf_name, *srcpt, *stbuf_src= ""; struct LinkiteM *own_link_stack; @@ -1667,8 +1811,9 @@ int Xorriso_restore_tree(struct XorrisO *xorriso, IsoDir *dir, char *disk_path= NULL, *img_path= NULL, *link_target= NULL; off_t mem; struct PermiteM *perm_stack_mem; - struct stat stbuf; + struct stat stbuf, disk_stbuf; int dir_create= 0, node_register= 0, do_node_count= 0, normal_mode= 0; + int target_was_no_dir, dir_is_new; perm_stack_mem= xorriso->perm_stack; switch((flag >> 7) & 3) { @@ -1759,6 +1904,8 @@ much_too_long:; while(1) { /* loop over ISO directory content */ stbuf_src= ""; + target_was_no_dir= 0; + dir_is_new= 0; #ifdef Osirrox_not_yeT @@ -1862,26 +2009,49 @@ much_too_long:; } else if(node_register || do_node_count) { ret= 1; } else { + if(source_is_dir) { + ret= lstat(disk_path, &disk_stbuf); + if(ret == -1) { + target_was_no_dir= 1; + } else { + if(!S_ISDIR(disk_stbuf.st_mode)) + target_was_no_dir= 1; + } + } ret= Xorriso_restore_disk_object(xorriso, img_path, node, disk_path, (off_t) 0, (off_t) 0, hflag); if(ret == 3) /* intentionally not restored */ do_not_dive= 1; + if(target_was_no_dir) { + sret= lstat(disk_path, &disk_stbuf); + if(sret != -1) + if(S_ISDIR(disk_stbuf.st_mode)) + dir_is_new= 1; + } } if(ret<=0) goto was_problem; } + ret= 1; if(source_is_dir && !do_not_dive) { ret= Xorriso_restore_tree(xorriso, (IsoDir *) node, img_path, disk_path, mem, own_link_stack, 1 | (flag & (2 | (3 << 7)))); - /* eventually restore exact access permissions of directory */ + } + if(source_is_dir) { + /* Restore exact access permissions of directory */ hret= Permstack_pop(&(xorriso->perm_stack), perm_stack_mem, xorriso, !!(flag&64)); if(hret<=0 && hretperm_stack), perm_stack_mem, xorriso, + 2 | !!(flag&64)); + if(hret <= 0 && hret < ret) + ret= hret; + hret= Xorriso_restore_chattr_i(xorriso, node, disk_path, 0); + if(hret <= 0 && hret < ret) + ret= hret; + if(ret <= 0) + goto ex; + } + Xorriso_process_msg_queues(xorriso,0); ret= 1 + (is_dir && !leaf_is_split); ex:; @@ -2419,6 +2608,8 @@ int Xorriso_extract_cut(struct XorrisO *xorriso, eff_disk_path, (off_t) 0, bytes, 2 | 8); if(ret<=0) goto ex; + if(ret != 1) + {ret= 0; goto ex;} } ret= Xorriso_restore_properties(xorriso, eff_disk_path, node, 0); diff --git a/xorriso/xorriso.1 b/xorriso/xorriso.1 index 5c61e9af..6e365611 100644 --- a/xorriso/xorriso.1 +++ b/xorriso/xorriso.1 @@ -9,7 +9,7 @@ .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) -.TH XORRISO 1 "Version 1.5.7, Jul 23, 2024" +.TH XORRISO 1 "Version 1.5.7, Aug 05, 2024" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -1093,6 +1093,10 @@ changeable by the bearer of superuser capabilities. "no_restore_su" disables restoring of these attributes. "restore_su_auto" enables it only if the effective user id is 0. .br +The attribute "i" (for "immutable") gets restored to directories only if they +have been created freshly by the same file restoring xorriso command. +A directory which already existed on disk will not be made immutable. +.br Mode "restore_only_known" restricts restoring to the known settable attribute flags "aAcCdDFijmPsStTux". "restore_unknown" enables the attempt to restore unknown flags or even those which are known to be unchangeable, if they are @@ -4805,11 +4809,14 @@ drive can be "indev" or "outdev" to indicate already acquired drives, or it can be the path of a not yet acquired drive. Prefix "stdio:" for non\-MMC drives is not mandatory. .br -For entity and id, see also command \-load. They must be either "sbsector" with -the superblock sector address as id, -or "track" with a track number as id, or "session" with a session number, -or "volid" with a search pattern for the volume id, or "auto" with which -any text as id mounts the first track of the last session. +See command \fB\-load\fR for the meaning of entity and id. +.br +Entities are: "auto", "session", "track", "lba", "sbsector", "volid", +"at_time", "before", "not_after", "after", and "not_before". +.br +Each is to be used with its appropriate kind of id string: "auto", +session number, track number, block number, search expression for volume id, +or time string. .br path will be used as mount point and must already exist as a directory on disk. .br @@ -5916,6 +5923,9 @@ Code "codes" lists them. They share names with related commands .br "xattr" tells whether xorriso has an adapter for local filesystems EA. .br +"lfa_flags" tells whether xorriso has an adapter for local Linux file +attributes (see man 1 chattr). +.br "jigdo" tells whether production of Jigdo files is possible. .br "zisofs" tells whether zisofs and built\-in gzip filters are enabled. diff --git a/xorriso/xorriso.info b/xorriso/xorriso.info index a1cae750..e151c0dc 100644 --- a/xorriso/xorriso.info +++ b/xorriso/xorriso.info @@ -978,6 +978,10 @@ activate them only after image loading. are only changeable by the bearer of superuser capabilities. "no_restore_su" disables restoring of these attributes. "restore_su_auto" enables it only if the effective user id is 0. + The attribute "i" (for "immutable") gets restored to directories + only if they have been created freshly by the same file restoring + xorriso command. A directory which already existed on disk will + not be made immutable. Mode "restore_only_known" restricts restoring to the known settable attribute flags "aAcCdDFijmPsStTux". "restore_unknown" enables the attempt to restore unknown flags or even those which are known to @@ -4030,11 +4034,13 @@ File: xorriso.info, Node: Inquiry, Next: Navigate, Prev: DialogCtl, Up: Comm drive can be "indev" or "outdev" to indicate already acquired drives, or it can be the path of a not yet acquired drive. Prefix "stdio:" for non-MMC drives is not mandatory. - For entity and id, see also command -load. They must be either - "sbsector" with the superblock sector address as id, or "track" - with a track number as id, or "session" with a session number, or - "volid" with a search pattern for the volume id, or "auto" with - which any text as id mounts the first track of the last session. + See command '-load' for the meaning of entity and id. + Entities are: "auto", "session", "track", "lba", "sbsector", + "volid", "at_time", "before", "not_after", "after", and + "not_before". + Each is to be used with its appropriate kind of id string: "auto", + session number, track number, block number, search expression for + volume id, or time string. path will be used as mount point and must already exist as a directory on disk. The command gets printed to the result channel. See command -mount @@ -4967,6 +4973,8 @@ File: xorriso.info, Node: Scripting, Next: Frontend, Prev: Emulation, Up: Co ACLs. "xattr" tells whether xorriso has an adapter for local filesystems EA. + "lfa_flags" tells whether xorriso has an adapter for local Linux + file attributes (see man 1 chattr). "jigdo" tells whether production of Jigdo files is possible. "zisofs" tells whether zisofs and built-in gzip filters are enabled. @@ -5907,7 +5915,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top [index] * Menu: -* # starts a comment line: Scripting. (line 156) +* # starts a comment line: Scripting. (line 158) * -abort_on controls abort on error: Exception. (line 27) * -abstract_file sets abstract file name: SetWrite. (line 271) * -acl controls handling of ACLs: Loading. (line 189) @@ -5923,12 +5931,12 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -assert_volid rejects undesired images: Loading. (line 129) * -assess_indev_features shows filesystem features: Inquiry. (line 61) * -auto_charset learns character set from image: Loading. (line 141) -* -backslash_codes enables backslash conversion: Scripting. (line 71) -* -ban_stdio_write demands real drive: Loading. (line 424) +* -backslash_codes enables backslash conversion: Scripting. (line 73) +* -ban_stdio_write demands real drive: Loading. (line 428) * -biblio_file sets biblio file name: SetWrite. (line 277) * -blank erases media: Writing. (line 57) * -boot_image controls bootability: Bootable. (line 75) -* -calm_drive reduces drive activity: Loading. (line 414) +* -calm_drive reduces drive activity: Loading. (line 418) * -cd sets working directory in ISO: Navigate. (line 7) * -cdx sets working directory on disk: Navigate. (line 15) * -changes_pending overrides change status: Writing. (line 12) @@ -5964,12 +5972,12 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -cp_rx copies file trees to disk: Restore. (line 131) * -cp_rx copies file trees to disk <1>: Restore. (line 139) * -cut_out inserts piece of data file or device: Insert. (line 139) -* -data_cache_size adjusts read cache size: Loading. (line 440) +* -data_cache_size adjusts read cache size: Loading. (line 444) * -dev acquires one drive for input and output: AqDrive. (line 12) * -devices gets list of drives: Inquiry. (line 7) * -device_links gets list of drives: Inquiry. (line 17) * -dialog enables dialog mode: DialogCtl. (line 7) -* -disk_dev_ino fast incremental backup: Loading. (line 334) +* -disk_dev_ino fast incremental backup: Loading. (line 338) * -disk_pattern controls pattern expansion: Insert. (line 34) * -displacement compensate altered image start address: Loading. (line 102) @@ -5981,11 +5989,11 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -dusx show directory size on disk: Navigate. (line 96) * -dux show directory size on disk: Navigate. (line 92) * -dvd_obs set write block size and end alignment: SetWrite. (line 421) -* -early_stdio_test classifies stdio drives: Loading. (line 428) -* -ecma119_map names w/o Rock Ridge, Joliet: Loading. (line 307) +* -early_stdio_test classifies stdio drives: Loading. (line 432) +* -ecma119_map names w/o Rock Ridge, Joliet: Loading. (line 311) * -eject ejects drive tray: Writing. (line 50) -* -end writes pending session and ends program: Scripting. (line 151) -* -errfile_log logs problematic disk files: Scripting. (line 116) +* -end writes pending session and ends program: Scripting. (line 153) +* -errfile_log logs problematic disk files: Scripting. (line 118) * -error_behavior controls error workarounds: Exception. (line 92) * -external_filter registers data filter: Filter. (line 20) * -external_filter unregisters data filter: Filter. (line 47) @@ -5995,13 +6003,13 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -extract_cut copies file piece to disk: Restore. (line 108) * -extract_l copies files to disk: Restore. (line 104) * -extract_single copies file to disk: Restore. (line 101) -* -file_name_limit curbs length of file names: Loading. (line 354) +* -file_name_limit curbs length of file names: Loading. (line 358) * -file_size_limit limits data file size: SetInsert. (line 7) * -find traverses and alters ISO tree: CmdFind. (line 7) * -findx traverses disk tree: Navigate. (line 99) * -follow softlinks and mount points: SetInsert. (line 77) * -format formats media: Writing. (line 87) -* -for_backup acl,xattr,hardlinks,md5,lfa_flags: Loading. (line 283) +* -for_backup acl,xattr,hardlinks,md5,lfa_flags: Loading. (line 287) * -fs sets size of fifo: SetWrite. (line 500) * -getfacl shows ACL in ISO image: Navigate. (line 60) * -getfacl_r shows ACL in ISO image: Navigate. (line 66) @@ -6013,21 +6021,21 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -help prints help text: Scripting. (line 19) * -hfsplus enables production of HFS+ partition: SetWrite. (line 14) * -hide excludes file names from directory trees: Manip. (line 204) -* -history brings text into readline history: Scripting. (line 42) +* -history brings text into readline history: Scripting. (line 44) * -indev acquires a drive for input: AqDrive. (line 23) * -in_charset sets input character set: Loading. (line 136) * -iso_nowtime fixed "now" time for ISO 9660 objects: Loading. - (line 328) + (line 332) * -iso_rr_pattern controls pattern expansion: Manip. (line 10) * -jigdo clears JTE or or adds parameter to JTE: Jigdo. (line 37) * -joliet enables production of Joliet tree: SetWrite. (line 10) -* -joliet_map Joliet names: Loading. (line 320) +* -joliet_map Joliet names: Loading. (line 324) * -launch_frontend starts frontend program at pipes: Frontend. (line 141) * -lfa_flags controls handling of Linux file attributes: Loading. (line 207) * -list_arg_sorting prints sorting order of -x: ArgSort. (line 26) -* -list_delimiter replaces '--': Scripting. (line 55) +* -list_delimiter replaces '--': Scripting. (line 57) * -list_extras lists compile time extra features: Scripting. (line 24) * -list_formats lists available formats: Writing. (line 128) * -list_profiles lists supported media: Writing. (line 163) @@ -6049,12 +6057,12 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -map_l inserts paths from disk file: Insert. (line 96) * -map_single inserts path: Insert. (line 93) * -mark sets synchronizing message: Frontend. (line 23) -* -md5 controls handling of MD5 sums: Loading. (line 252) +* -md5 controls handling of MD5 sums: Loading. (line 256) * -mkdir creates ISO directory: Insert. (line 188) * -modesty_on_drive keep drive buffer hungry: SetWrite. (line 440) * -mount issues mount command for ISO session: Restore. (line 204) * -mount_cmd composes mount command line: Inquiry. (line 95) -* -mount_cmd controls mount command: Inquiry. (line 111) +* -mount_cmd controls mount command: Inquiry. (line 113) * -msg_op perform operations on program messages: Frontend. (line 27) * -mv renames files in ISO image: Manip. (line 37) * -mv renames single file in ISO image: Manip. (line 31) @@ -6077,15 +6085,15 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -path_list inserts paths from disk file: Insert. (line 81) * -pkt_output consolidates text output: Frontend. (line 7) * -preparer_id sets preparer id: SetWrite. (line 282) -* -print prints result text line: Scripting. (line 102) -* -print_info prints message text line: Scripting. (line 104) -* -print_mark prints synchronizing text line: Scripting. (line 106) -* -print_size predicts image size: Inquiry. (line 132) +* -print prints result text line: Scripting. (line 104) +* -print_info prints message text line: Scripting. (line 106) +* -print_mark prints synchronizing text line: Scripting. (line 108) +* -print_size predicts image size: Inquiry. (line 134) * -prog sets program name: Frontend. (line 176) * -prog_help prints help text: Frontend. (line 178) -* -prompt prompts for enter key: Scripting. (line 110) +* -prompt prompts for enter key: Scripting. (line 112) * -publisher sets publisher id: SetWrite. (line 213) -* -pvd_info shows image id strings: Inquiry. (line 154) +* -pvd_info shows image id strings: Inquiry. (line 156) * -pwd tells working directory in ISO: Navigate. (line 19) * -pwdx tells working directory on disk: Navigate. (line 21) * -quoted_not_list sets exclusions: SetInsert. (line 74) @@ -6096,8 +6104,8 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -read_speed set read speed: Loading. (line 11) * -reassure enables confirmation question: DialogCtl. (line 29) * -report_about controls verbosity: Exception. (line 53) -* -report_el_torito shows Boot Catalog: Inquiry. (line 164) -* -report_system_area shows MBR, GPT, and alike: Inquiry. (line 199) +* -report_el_torito shows Boot Catalog: Inquiry. (line 166) +* -report_system_area shows MBR, GPT, and alike: Inquiry. (line 201) * -return_with controls exit value: Exception. (line 38) * -rm deletes files from ISO image: Manip. (line 20) * -rmdir deletes ISO directory: Manip. (line 29) @@ -6105,14 +6113,14 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -rockridge disables production of Rock Ridge info: SetWrite. (line 57) * -rollback discards pending changes: Writing. (line 9) -* -rollback_end ends program without writing: Scripting. (line 154) -* -rom_toc_scan searches for sessions: Loading. (line 386) +* -rollback_end ends program without writing: Scripting. (line 156) +* -rom_toc_scan searches for sessions: Loading. (line 390) * -rr_reloc_dir sets name of relocation directory: SetWrite. (line 171) * -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 179) * -scsi_dev_family choose Linux device file type: AqDrive. (line 95) -* -scsi_log reports SCSI commands: Scripting. (line 143) -* -session_log logs written sessions: Scripting. (line 134) -* -session_string composes session info line: Inquiry. (line 120) +* -scsi_log reports SCSI commands: Scripting. (line 145) +* -session_log logs written sessions: Scripting. (line 136) +* -session_string composes session info line: Inquiry. (line 122) * -setfacl sets ACL in ISO image: Manip. (line 68) * -setfacl_list sets ACL in ISO image: Manip. (line 94) * -setfacl_r sets ACL in ISO image: Manip. (line 92) @@ -6124,19 +6132,19 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -show_stream shows data source and filters: Navigate. (line 159) * -show_stream_r shows data source and filters: Navigate. (line 177) * -sh_style_result makes results look more like shell: Scripting. - (line 61) + (line 63) * -signal_handling controls handling of system signals: Exception. (line 66) -* -sleep waits for a given time span: Scripting. (line 113) +* -sleep waits for a given time span: Scripting. (line 115) * -speed set write speed: SetWrite. (line 392) * -split_size enables large file splitting: SetInsert. (line 154) -* -status shows current settings: Scripting. (line 44) -* -status_history_max curbs -status history: Scripting. (line 52) +* -status shows current settings: Scripting. (line 46) +* -status_history_max curbs -status history: Scripting. (line 54) * -stdio_sync controls stdio buffer: SetWrite. (line 490) * -stream_recording controls defect management: SetWrite. (line 410) * -system_id sets system id: SetWrite. (line 226) -* -tell_media_space reports free space: Inquiry. (line 144) -* -temp_mem_limit curbs memory consumption: Scripting. (line 96) +* -tell_media_space reports free space: Inquiry. (line 146) +* -temp_mem_limit curbs memory consumption: Scripting. (line 98) * -toc shows list of sessions: Inquiry. (line 27) * -toc_info_type shows list of sessions: Inquiry. (line 49) * -toc_of shows list of sessions: Inquiry. (line 41) @@ -6184,8 +6192,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Appended partitions, MBR: Bootable. (line 480) * Automatic execution order, of arguments, -x: ArgSort. (line 16) * Backslash Interpretation, _definition: Processing. (line 57) -* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 334) -* Backup, enable features, -for_backup: Loading. (line 283) +* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 338) +* Backup, enable features, -for_backup: Loading. (line 287) * Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 179) * Blank media, _definition: Media. (line 34) * Blank, format, Immed bit, -use_immed_bit: SetWrite. (line 478) @@ -6201,7 +6209,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Character Set, _definition: Charset. (line 6) * CHRP partition, _definition: Bootable. (line 333) * Closed media, _definition: Media. (line 49) -* Comment, #: Scripting. (line 156) +* Comment, #: Scripting. (line 158) * Control, signal handling, -signal_handling: Exception. (line 66) * Create, new ISO image, _definition: Methods. (line 7) * Cylinder alignment, _definition: Bootable. (line 377) @@ -6212,7 +6220,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Delete, from ISO image, -rm_r: Manip. (line 26) * Delete, ISO directory, -rmdir: Manip. (line 29) * Device file locking, -drive_access: AqDrive. (line 72) -* Dialog, bring text into history, -history: Scripting. (line 42) +* Dialog, bring text into history, -history: Scripting. (line 44) * Dialog, confirmation question, -reassure: DialogCtl. (line 29) * Dialog, enable dialog mode, -dialog: DialogCtl. (line 7) * Dialog, EOF resistant, -named_pipe_loop: Frontend. (line 119) @@ -6224,8 +6232,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Directory, delete, -rmdir: Manip. (line 29) * disk_path, _definition: Insert. (line 6) * Drive, accessability, -drive_class: AqDrive. (line 43) -* Drive, classify stdio, -early_stdio_test: Loading. (line 428) -* Drive, demand real MMC, -ban_stdio_write: Loading. (line 424) +* Drive, classify stdio, -early_stdio_test: Loading. (line 432) +* Drive, demand real MMC, -ban_stdio_write: Loading. (line 428) * Drive, eject tray, -eject: Writing. (line 50) * Drive, for input and output, -dev: AqDrive. (line 12) * Drive, for input, -indev: AqDrive. (line 23) @@ -6233,8 +6241,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Drive, get drive list, -devices: Inquiry. (line 7) * Drive, get drive list, -device_links: Inquiry. (line 17) * Drive, list supported media, -list_profiles: Writing. (line 163) -* Drive, reduce activity, -calm_drive: Loading. (line 414) -* Drive, report SCSI commands, -scsi_log: Scripting. (line 143) +* Drive, reduce activity, -calm_drive: Loading. (line 418) +* Drive, report SCSI commands, -scsi_log: Scripting. (line 145) * Drive, write and eject, -commit_eject: Writing. (line 53) * Drive, _definition: Drives. (line 6) * EA, _definition: Extras. (line 66) @@ -6249,9 +6257,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Examples: Examples. (line 6) * extattr, _definition: Extras. (line 66) * File content, copy, -concat: Restore. (line 148) -* File names, curb length, -file_name_limit: Loading. (line 354) -* File names, if Joliet is loaded: Loading. (line 320) -* File names, if neither Rock Ridge nor Joliet: Loading. (line 307) +* File names, curb length, -file_name_limit: Loading. (line 358) +* File names, if Joliet is loaded: Loading. (line 324) +* File names, if neither Rock Ridge nor Joliet: Loading. (line 311) * Filesytem features, show, -assess_indev_features: Inquiry. (line 61) * Filter, apply to file tree, -set_filter_r: Filter. (line 84) * Filter, apply to file, -set_filter: Filter. (line 58) @@ -6277,7 +6285,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * HFS+ serial number: Bootable. (line 455) * hidden, set in ISO image, -hide: Manip. (line 204) * HP-PA boot sector, production: Bootable. (line 430) -* Image reading, cache size, -data_cache_size: Loading. (line 440) +* Image reading, cache size, -data_cache_size: Loading. (line 444) * Image, demand volume ID, -assert_volid: Loading. (line 129) * Image, discard pending changes, -rollback: Writing. (line 9) * Image, filesystem to load, -read_fs: Loading. (line 120) @@ -6294,9 +6302,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Image, set volume id, -volid: SetWrite. (line 189) * Image, set volume set id, -volset_id: SetWrite. (line 209) * Image, set volume timestamp, -volume_date: SetWrite. (line 232) -* Image, show Boot Catalog: Inquiry. (line 164) -* Image, show id strings, -pvd_info: Inquiry. (line 154) -* Image, show MBR, GPT, and alike, -pvd_info: Inquiry. (line 199) +* Image, show Boot Catalog: Inquiry. (line 166) +* Image, show id strings, -pvd_info: Inquiry. (line 156) +* Image, show MBR, GPT, and alike, -pvd_info: Inquiry. (line 201) * Image, _definition: Model. (line 9) * Input Character Set, _definition: Charset. (line 25) * Insert, enable overwriting, -overwrite: SetInsert. (line 140) @@ -6329,7 +6337,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Jigdo Template Extraction, -jigdo: Jigdo. (line 37) * Jigdo Template Extraction, _definition: Jigdo. (line 6) * LBA, _definition: Drives. (line 17) -* libisofs, fixed "now" time: Loading. (line 328) +* libisofs, fixed "now" time: Loading. (line 332) * Linux device type, -scsi_dev_family: AqDrive. (line 95) * Linux file attributes, control handling, -lfa_flags: Loading. (line 207) @@ -6343,7 +6351,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * MBR bootable/active flag, enforce: Bootable. (line 388) * MBR, set, -boot_image system_area=: Bootable. (line 227) * MBR, _definition: Extras. (line 27) -* MD5, control handling, -md5: Loading. (line 252) +* MD5, control handling, -md5: Loading. (line 256) * Media, erase, -blank: Writing. (line 57) * Media, format, -format: Writing. (line 87) * Media, list formats, -list_formats: Writing. (line 128) @@ -6391,31 +6399,31 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Process, control exit value, -return_with: Exception. (line 38) * Process, control verbosity, -report_about: Exception. (line 53) * Process, disable startup files, -no_rc: Scripting. (line 7) -* Process, end program and write, -end: Scripting. (line 151) -* Process, end program, no writing, -rollback_end: Scripting. (line 154) +* Process, end program and write, -end: Scripting. (line 153) +* Process, end program, no writing, -rollback_end: Scripting. (line 156) * Process, error workarounds, -error_behavior: Exception. (line 92) * Process, log output channels to file, -logfile: Frontend. (line 19) * Process, read command file, -options_from_file: Scripting. (line 12) * Process, set synchronizing message, -mark: Frontend. (line 23) * Program messages, perform operations, -msg_op: Frontend. (line 27) -* Program, backslash conversion, -backslash_codes: Scripting. (line 71) -* Program, curb memory, -temp_mem_limit: Scripting. (line 96) -* Program, end and write, -end: Scripting. (line 151) -* Program, end without writing, -rollback_end: Scripting. (line 154) +* Program, backslash conversion, -backslash_codes: Scripting. (line 73) +* Program, curb memory, -temp_mem_limit: Scripting. (line 98) +* Program, end and write, -end: Scripting. (line 153) +* Program, end without writing, -rollback_end: Scripting. (line 156) * Program, list extra features, -list_extras: Scripting. (line 24) * Program, print help text, -help: Scripting. (line 19) * Program, print help text, -prog_help: Frontend. (line 178) -* Program, print message text line, -print_info: Scripting. (line 104) -* Program, print result text line, -print: Scripting. (line 102) +* Program, print message text line, -print_info: Scripting. (line 106) +* Program, print result text line, -print: Scripting. (line 104) * Program, print synchronizing text line, -print_mark: Scripting. - (line 106) + (line 108) * Program, print version, -version: Scripting. (line 22) -* Program, prompt for enter key, -prompt: Scripting. (line 110) -* Program, replace --, -list_delimiter: Scripting. (line 55) +* Program, prompt for enter key, -prompt: Scripting. (line 112) +* Program, replace --, -list_delimiter: Scripting. (line 57) * Program, set name, -prog: Frontend. (line 176) -* Program, show current settings, -status: Scripting. (line 44) -* Program, status history, -status_history_max: Scripting. (line 52) -* Program, wait a time span, -sleep: Scripting. (line 113) +* Program, show current settings, -status: Scripting. (line 46) +* Program, status history, -status_history_max: Scripting. (line 54) +* Program, wait a time span, -sleep: Scripting. (line 115) * Quoted input, _definition: Processing. (line 51) * Read, set speed, -read_speed: Loading. (line 11) * Recovery, retrieve blocks, -check_media: Verify. (line 21) @@ -6435,14 +6443,14 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Restore, copy files to disk, -extract_l: Restore. (line 104) * Restore, enable ISO-to-disk, -osirrox: Restore. (line 25) * Result layout, more shell-like, -sh_style_result: Scripting. - (line 61) + (line 63) * Rock Ridge, _definition: Extras. (line 6) * Session, altered start address, -displacement: Loading. (line 102) -* Session, info string, -session_string: Inquiry. (line 120) +* Session, info string, -session_string: Inquiry. (line 122) * 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 136) * Session, mount command line, -mount_cmd: Inquiry. (line 95) -* Session, mount parameters, -mount_opts: Inquiry. (line 111) +* Session, mount parameters, -mount_opts: Inquiry. (line 113) * Session, select as input, -load: Loading. (line 54) * Session, _definition: Model. (line 6) * Sorting order, for -x, -list_arg_sorting: ArgSort. (line 26) @@ -6452,7 +6460,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * System area, _definition: Bootable. (line 227) * Table-of-content, choose info to show, -toc_info_type: Inquiry. (line 49) -* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 386) +* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 390) * Table-of-content, show parts of, -toc_of: Inquiry. (line 41) * Table-of-content, show, -toc: Inquiry. (line 27) * Timestamps, set in ISO image, -alter_date: Manip. (line 166) @@ -6479,12 +6487,12 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Write, enable HFS+, -hfsplus: SetWrite. (line 14) * Write, enable Joliet, -joliet: SetWrite. (line 10) * Write, fifo size, -fs: SetWrite. (line 500) -* Write, free space, -tell_media_space: Inquiry. (line 144) -* Write, log problematic disk files, -errfile_log: Scripting. (line 116) -* Write, log written sessions, -session_log: Scripting. (line 134) +* Write, free space, -tell_media_space: Inquiry. (line 146) +* Write, log problematic disk files, -errfile_log: Scripting. (line 118) +* Write, log written sessions, -session_log: Scripting. (line 136) * Write, padding image, -padding: SetWrite. (line 528) * Write, pending ISO image, -commit: Writing. (line 27) -* Write, predict image size, -print_size: Inquiry. (line 132) +* Write, predict image size, -print_size: Inquiry. (line 134) * Write, set speed, -speed: SetWrite. (line 392) * Write, simulation, -dummy: SetWrite. (line 497) * Write, TAO or SAO/DAO, -write_type: SetWrite. (line 521) @@ -6512,48 +6520,48 @@ Node: Commands26634 Node: ArgSort28311 Node: AqDrive29805 Node: Loading36962 -Node: Insert63604 -Node: SetInsert75799 -Node: Manip85973 -Node: CmdFind97637 -Node: Filter118440 -Node: Writing123062 -Node: SetWrite135556 -Node: Bootable166831 -Node: Jigdo198113 -Node: Charset203116 -Node: Exception206445 -Node: DialogCtl212574 -Node: Inquiry215176 -Node: Navigate227709 -Node: Verify236864 -Node: Restore248013 -Node: Emulation260220 -Node: Scripting270676 -Node: Frontend278459 -Node: Examples288085 -Node: ExDevices289263 -Node: ExCreate289924 -Node: ExDialog291224 -Node: ExGrowing292495 -Node: ExModifying293304 -Node: ExBootable293814 -Node: ExCharset294369 -Node: ExPseudo295265 -Node: ExCdrecord296192 -Node: ExMkisofs296512 -Node: ExGrowisofs298409 -Node: ExException299562 -Node: ExTime300020 -Node: ExIncBackup300478 -Node: ExRestore304504 -Node: ExRecovery305450 -Node: Files306022 -Node: Environ307356 -Node: Seealso308104 -Node: Bugreport308868 -Node: Legal309459 -Node: CommandIdx310471 -Node: ConceptIdx328800 +Node: Insert63843 +Node: SetInsert76038 +Node: Manip86212 +Node: CmdFind97876 +Node: Filter118679 +Node: Writing123301 +Node: SetWrite135795 +Node: Bootable167070 +Node: Jigdo198352 +Node: Charset203355 +Node: Exception206684 +Node: DialogCtl212813 +Node: Inquiry215415 +Node: Navigate227980 +Node: Verify237135 +Node: Restore248284 +Node: Emulation260491 +Node: Scripting270947 +Node: Frontend278841 +Node: Examples288467 +Node: ExDevices289645 +Node: ExCreate290306 +Node: ExDialog291606 +Node: ExGrowing292877 +Node: ExModifying293686 +Node: ExBootable294196 +Node: ExCharset294751 +Node: ExPseudo295647 +Node: ExCdrecord296574 +Node: ExMkisofs296894 +Node: ExGrowisofs298791 +Node: ExException299944 +Node: ExTime300402 +Node: ExIncBackup300860 +Node: ExRestore304886 +Node: ExRecovery305832 +Node: Files306404 +Node: Environ307738 +Node: Seealso308486 +Node: Bugreport309250 +Node: Legal309841 +Node: CommandIdx310853 +Node: ConceptIdx329182  End Tag Table diff --git a/xorriso/xorriso.texi b/xorriso/xorriso.texi index 7a229357..a8ca6d2e 100644 --- a/xorriso/xorriso.texi +++ b/xorriso/xorriso.texi @@ -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 XORRISO 1 "Version 1.5.7, Jul 23, 2024" +@c man .TH XORRISO 1 "Version 1.5.7, Aug 05, 2024" @c man .\" Please adjust this date whenever revising the manpage. @c man .\" @c man .\" Some roff macros, for reference: @@ -1345,6 +1345,10 @@ changeable by the bearer of superuser capabilities. "no_restore_su" disables restoring of these attributes. "restore_su_auto" enables it only if the effective user id is 0. @* +The attribute "i" (for "immutable") gets restored to directories only if they +have been created freshly by the same file restoring xorriso command. +A directory which already existed on disk will not be made immutable. +@* Mode "restore_only_known" restricts restoring to the known settable attribute flags "aAcCdDFijmPsStTux". "restore_unknown" enables the attempt to restore unknown flags or even those which are known to be unchangeable, if they are @@ -5464,11 +5468,14 @@ drive can be "indev" or "outdev" to indicate already acquired drives, or it can be the path of a not yet acquired drive. Prefix "stdio:" for non-MMC drives is not mandatory. @* -For entity and id, see also command -load. They must be either "sbsector" with -the superblock sector address as id, -or "track" with a track number as id, or "session" with a session number, -or "volid" with a search pattern for the volume id, or "auto" with which -any text as id mounts the first track of the last session. +See command @command{-load} for the meaning of entity and id. +@* +Entities are: "auto", "session", "track", "lba", "sbsector", "volid", +"at_time", "before", "not_after", "after", and "not_before". +@* +Each is to be used with its appropriate kind of id string: "auto", +session number, track number, block number, search expression for volume id, +or time string. @* path will be used as mount point and must already exist as a directory on disk. @* @@ -6736,6 +6743,9 @@ Code "codes" lists them. They share names with related commands @* "xattr" tells whether xorriso has an adapter for local filesystems EA. @* +"lfa_flags" tells whether xorriso has an adapter for local Linux file +attributes (see man 1 chattr). +@* "jigdo" tells whether production of Jigdo files is possible. @* "zisofs" tells whether zisofs and built-in gzip filters are enabled. diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 38a29189..46fe7433 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2024.07.23.165442" +#define Xorriso_timestamP "2024.08.06.193209" diff --git a/xorriso/xorrisoburn.h b/xorriso/xorrisoburn.h index 9bfe6722..27ba2703 100644 --- a/xorriso/xorrisoburn.h +++ b/xorriso/xorrisoburn.h @@ -710,6 +710,8 @@ int Xorriso_set_lfa_flags(struct XorrisO *xorriso, void *in_node, char *path, int Xorriso_remove_all_lfa_flags(struct XorrisO *xorriso, int flag); +int Xorriso_set_local_chattr_i(struct XorrisO *xorriso, char *disk_path, + int flag); #endif /* Xorrisoburn_includeD */