New -find test -bad_outname, new -find action print_outname

This commit is contained in:
Thomas Schmitt 2013-12-29 12:02:10 +00:00
parent 61244da0bf
commit 784f8f7689
10 changed files with 514 additions and 240 deletions

View File

@ -864,8 +864,8 @@ int Findjob_set_damage_filter(struct FindjoB *o, int value, int flag)
} }
int Findjob_set_lba_range(struct FindjoB *o, int start_lba, int count, int Findjob_set_num_filter(struct FindjoB *o, int test_type,
int flag) int num1, int num2, int flag)
{ {
struct ExprtesT *t; struct ExprtesT *t;
int ret; int ret;
@ -875,20 +875,31 @@ int Findjob_set_lba_range(struct FindjoB *o, int start_lba, int count,
return(ret); return(ret);
t= o->cursor->test; t= o->cursor->test;
t->test_type= 4; t->test_type= test_type;
t->arg1= calloc(sizeof(int), 1); t->arg1= calloc(sizeof(int), 1);
t->arg2= calloc(sizeof(int), 1); t->arg2= calloc(sizeof(int), 1);
if(t->arg1 == NULL || t->arg2 == NULL) if(t->arg1 == NULL || t->arg2 == NULL)
return(-1); return(-1);
*((int *) t->arg1)= start_lba; *((int *) t->arg1)= num1;
if(start_lba > 0) *((int *) t->arg2)= num2;
*((int *) t->arg2)= start_lba + count - 1;
else
*((int *) t->arg2)= start_lba - count + 1;
return(1); return(1);
} }
int Findjob_set_lba_range(struct FindjoB *o, int start_lba, int count,
int flag)
{
int ret, end_lba;
if(start_lba > 0)
end_lba= start_lba + count - 1;
else
end_lba= start_lba - count + 1;
ret= Findjob_set_num_filter(o, 4, start_lba, end_lba, 0);
return(ret);
}
int Findjob_set_test_hidden(struct FindjoB *o, int mode, int flag) int Findjob_set_test_hidden(struct FindjoB *o, int mode, int flag)
{ {
struct ExprtesT *t; struct ExprtesT *t;

View File

@ -49,6 +49,7 @@ struct ExprtesT {
18= -has_hfs_crtp char *creator char *type 18= -has_hfs_crtp char *creator char *type
19= -has_hfs_bless int bless_index 19= -has_hfs_bless int bless_index
20= -disk_path char *arg1 20= -disk_path char *arg1
21= -bad_outname int namespace
*/ */
int test_type; int test_type;
@ -167,6 +168,7 @@ struct FindjoB {
47= set_hfs_bless blessing 47= set_hfs_bless blessing
48= get_hfs_bless 48= get_hfs_bless
49= internal: update creator, type, and blessings from persistent isofs.* 49= internal: update creator, type, and blessings from persistent isofs.*
50= print_outname namespace
*/ */
int action; int action;
int prune; int prune;
@ -218,6 +220,9 @@ int Findjob_get_start_path(struct FindjoB *o, char **start_path, int flag);
int Findjob_set_commit_filter_2(struct FindjoB *o, int flag); int Findjob_set_commit_filter_2(struct FindjoB *o, int flag);
int Findjob_set_num_filter(struct FindjoB *o, int test_type,
int num1, int num2, int flag);
int Findjob_set_lba_range(struct FindjoB *o, int start_lba, int count, int Findjob_set_lba_range(struct FindjoB *o, int start_lba, int count,
int flag); int flag);

View File

@ -34,6 +34,7 @@
#include "iso_manip.h" #include "iso_manip.h"
#include "sort_cmp.h" #include "sort_cmp.h"
#include "parse_exec.h" #include "parse_exec.h"
#include "write_run.h"
@ -2309,6 +2310,91 @@ int Xorriso_estimate_file_size(struct XorrisO *xorriso, struct FindjoB *job,
} }
/* @param flag bit0= do not compare but print input and back converted name
*/
int Xorriso_test_outchar(struct XorrisO *xorriso, void *node_pt,
int name_space, int flag)
{
IsoNode *node;
char *result= NULL, *name, *back= NULL;
int ret, relax_mem;
size_t result_len, back_len, i;
struct isoburn_imgen_opts *sopts= NULL;
relax_mem= xorriso->relax_compliance;
node= (IsoNode *) node_pt;
ret= isoburn_igopt_new(&sopts, 0);
if(ret<=0) {
Xorriso_process_msg_queues(xorriso, 0);
ret= -1; goto ex;
}
if(!(flag & 1))
xorriso->relax_compliance|= isoburn_igopt_omit_version_numbers;
ret= Xorriso_make_iso_write_opts(xorriso, NULL, sopts, 0);
if(ret <= 0) {
ret= -1; goto ex;
}
if(iso_node_get_type(node) == LIBISO_DIR)
name_space |= 256;
name_space|= 512; /* no error messages */
name= (char *) iso_node_get_name(node);
if(name == NULL) {
ret= 1; goto ex;
}
ret= isoburn_conv_name_chars(sopts, name, strlen(name), &result, &result_len,
name_space);
if(ret <= 0) {
Xorriso_process_msg_queues(xorriso, 0);
if(flag & 1)
goto print_outname;
ret= 0; goto ex;
}
/* Convert back and compare with original */
ret= isoburn_conv_name_chars(sopts, result, result_len, &back, &back_len,
name_space | (1 << 15));
if(ret <= 0) {
Xorriso_process_msg_queues(xorriso, 0);
if(flag & 1)
goto print_outname;
ret= 0; goto ex;
}
if(flag & 1) {
print_outname:;
Text_shellsafe(name, xorriso->result_line, 0);
strcat(xorriso->result_line, "\n");
Xorriso_result(xorriso, 0);
if(back == NULL)
strcpy(xorriso->result_line, "(file name conversion error)");
else
Text_shellsafe(back, xorriso->result_line, 0);
strcat(xorriso->result_line, "\n");
Xorriso_result(xorriso, 0);
strcpy(xorriso->result_line, "--\n");
Xorriso_result(xorriso, 0);
} else {
for(i= 0; i < back_len; i++)
if(name[i] != back[i])
{ret= 0; goto ex;}
if(name[i] != 0)
{ret= 0; goto ex;}
}
ret= 1;
ex:;
isoburn_igopt_destroy(&sopts, 0);
if(result != NULL)
free(result);
if(back != NULL)
free(back);
xorriso->relax_compliance= relax_mem;
return(ret);
}
int Xorriso_cannot_create_iter(struct XorrisO *xorriso, int iso_error,int flag) int Xorriso_cannot_create_iter(struct XorrisO *xorriso, int iso_error,int flag)
{ {
Xorriso_process_msg_queues(xorriso,0); Xorriso_process_msg_queues(xorriso,0);
@ -2676,6 +2762,11 @@ int Xorriso_findi_action(struct XorrisO *xorriso, struct FindjoB *job,
} }
ret= 1; ret= 1;
} else if(action == 50) {
ret= Xorriso_test_outchar(xorriso, (void *) node, type, 1);
if(ret <= 0)
return(ret);
} else { /* includes : 15 in_iso */ } else { /* includes : 15 in_iso */
Xorriso_esc_filepath(xorriso, show_path, xorriso->result_line, 0); Xorriso_esc_filepath(xorriso, show_path, xorriso->result_line, 0);
strcat(xorriso->result_line, "\n"); strcat(xorriso->result_line, "\n");
@ -2956,6 +3047,14 @@ return:
break; case 20: /* -disk_path */ break; case 20: /* -disk_path */
value= !! Exprtest_match_disk_name(xorriso, ftest, node, 1); value= !! Exprtest_match_disk_name(xorriso, ftest, node, 1);
break; case 21: /* -bad_outname */
ret= Xorriso_test_outchar(xorriso, node, *((int *) arg1), 0);
if(ret < 0) {
value= -1;
goto ex;
}
value= !ret; /* Xorriso_test_outchar() returns 1 for good and 0 for bad */
break; default: break; default:
/* >>> complain about unknown test type */; /* >>> complain about unknown test type */;

View File

@ -660,6 +660,23 @@ ex:;
} }
static int Xorriso_determine_name_space(struct XorrisO *xorriso,
char *space_name, int flag)
{
if(strcmp(space_name, "rockridge") == 0)
return(1);
else if(strcmp(space_name, "joliet") == 0)
return(2);
else if(strcmp(space_name, "ecma119") == 0 ||
strcmp(space_name, "iso9660") == 0)
return(3);
else if(strcmp(space_name, "hfsplus") == 0)
return(4);
sprintf(xorriso->info_text, "-find: Unknown output namespace identifier");
return(0);
}
/* Option -find alias -findi, and -findx */ /* Option -find alias -findi, and -findx */
/* @param flag bit0= -findx rather than -findi /* @param flag bit0= -findx rather than -findi
bit1= do not reset pacifier, no final pacifier message bit1= do not reset pacifier, no final pacifier message
@ -673,7 +690,7 @@ int Xorriso_option_find(struct XorrisO *xorriso, int argc, char **argv,
int *idx, int flag) int *idx, int flag)
{ {
int ret, i, end_idx, type= 0, action, deleter= 0, start_lba, count; int ret, i, end_idx, type= 0, action, deleter= 0, start_lba, count;
int list_extattr_head= 0, bsl_mem, disk_path; int list_extattr_head= 0, bsl_mem, disk_path, name_space;
struct FindjoB *job, *first_job= NULL, *new_job; struct FindjoB *job, *first_job= NULL, *new_job;
char *start_path, *path= NULL, *cpt, *other_path_start= NULL, *cd_pt; char *start_path, *path= NULL, *cpt, *other_path_start= NULL, *cd_pt;
char *access_acl_text= NULL, *default_acl_text= NULL, *list_extattr_mode; char *access_acl_text= NULL, *default_acl_text= NULL, *list_extattr_mode;
@ -831,6 +848,19 @@ not_enough_arguments:;
sprintf(xorriso->info_text, "-findi: cannot setup -has_hfs_bless test"); sprintf(xorriso->info_text, "-findi: cannot setup -has_hfs_bless test");
goto sorry_ex; goto sorry_ex;
} }
} else if(strcmp(argv[i], "-bad_outname")==0) {
if(i + 1 >= end_idx)
goto not_enough_arguments;
i+= 1;
name_space= Xorriso_determine_name_space(xorriso, argv[i], 0);
if(name_space < 0) {
ret= 0; goto sorry_ex;
}
ret= Findjob_set_num_filter(job, 21, name_space, 0, 0);
if(ret <= 0) {
sprintf(xorriso->info_text, "-findi: cannot setup -bad_outname test");
goto sorry_ex;
}
} else if(strcmp(argv[i], "-true") == 0) { } else if(strcmp(argv[i], "-true") == 0) {
ret= Findjob_set_false(job, -1, 0); ret= Findjob_set_false(job, -1, 0);
} else if(strcmp(argv[i], "-false") == 0) { } else if(strcmp(argv[i], "-false") == 0) {
@ -1139,6 +1169,16 @@ not_enough_exec_arguments:;
Findjob_set_action_target(job, 47, argv[i], 0); Findjob_set_action_target(job, 47, argv[i], 0);
} else if(strcmp(cpt, "get_hfs_bless")==0) { } else if(strcmp(cpt, "get_hfs_bless")==0) {
Findjob_set_action_target(job, 48, NULL, 0); Findjob_set_action_target(job, 48, NULL, 0);
} else if(strcmp(cpt, "print_outname")==0) {
if(i+1>=end_idx)
goto not_enough_exec_arguments;
i++;
name_space= Xorriso_determine_name_space(xorriso, argv[i], 0);
if(name_space < 0) {
ret= 0; goto sorry_ex;
}
Findjob_set_action_type(job, 50, name_space, 0);
} else { } else {
sprintf(xorriso->info_text, "-find -exec: unknown action "); sprintf(xorriso->info_text, "-find -exec: unknown action ");
Text_shellsafe(argv[i], xorriso->info_text, 1); Text_shellsafe(argv[i], xorriso->info_text, 1);
@ -1802,7 +1842,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" -type b|c|d|p|f|l|s|e, -pending_data, -hidden,", " -type b|c|d|p|f|l|s|e, -pending_data, -hidden,",
" -lba_range start count, -damaged, -has_acl, -has_xattr,", " -lba_range start count, -damaged, -has_acl, -has_xattr,",
" -has_aaip, -has_filter, -has_md5, -has_any_xattr,", " -has_aaip, -has_filter, -has_md5, -has_any_xattr,",
" -has_hfs_crtp, -has_hfs_bless,", " -has_hfs_crtp, -has_hfs_bless, -bad_outname,",
" -prune, -decision yes|no, -true, -false", " -prune, -decision yes|no, -true, -false",
" Operators: -not, -or, -and, -sub, (, -subend, ),", " Operators: -not, -or, -and, -sub, (, -subend, ),",
" -if, -then, -elseif, -else, -endif", " -if, -then, -elseif, -else, -endif",
@ -1812,7 +1852,8 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" getfacl, setfacl, getfattr, setfattr, get_any_xattr,", " getfacl, setfacl, getfattr, setfattr, get_any_xattr,",
" list_extattr, get_md5, check_md5, make_md5,", " list_extattr, get_md5, check_md5, make_md5,",
" set_hfs_crtp, get_hfs_crtp, set_hfs_bless, get_hfs_bless,", " set_hfs_crtp, get_hfs_crtp, set_hfs_bless, get_hfs_bless,",
" set_filter, show_stream, mkisofs_r, hide, find.", " set_filter, show_stream, mkisofs_r, hide, print_outname,",
" estimate_size, find",
" params are their parameters except iso_rr_path.", " params are their parameters except iso_rr_path.",
" -mkdir iso_rr_path [...]", " -mkdir iso_rr_path [...]",
" Create empty directories if they do not exist yet.", " Create empty directories if they do not exist yet.",

View File

@ -741,15 +741,171 @@ int Xorriso_retry_write_session(struct XorrisO *xorriso, int flag)
} }
int Xorriso_make_iso_write_opts(struct XorrisO *xorriso, IsoImage *image,
struct isoburn_imgen_opts *sopts, int flag)
{
int ext, i, ret, pad_by_libisofs= 0, is_bootable= 0, relax;
char *out_cs, *part_image;
IsoNode *root_node;
uint32_t padding;
relax= xorriso->relax_compliance;
if(image != NULL)
is_bootable= iso_image_get_boot_image(image, NULL, NULL, NULL);
if(xorriso->patch_isolinux_image & 1) {
if(is_bootable == 1)
relax|= isoburn_igopt_allow_full_ascii;
else if(xorriso->keep_boot_image && is_bootable == 1)
relax|= isoburn_igopt_allow_full_ascii;
}
out_cs= xorriso->out_charset;
if(out_cs == NULL)
Xorriso_get_local_charset(xorriso, &out_cs, 0);
isoburn_igopt_set_level(sopts, xorriso->iso_level);
ext= ((!!xorriso->do_rockridge) * isoburn_igopt_rockridge) |
((!!xorriso->do_joliet) * isoburn_igopt_joliet) |
((!!xorriso->do_hfsplus) * isoburn_igopt_hfsplus) |
((!!xorriso->do_fat) * isoburn_igopt_fat) |
((!!xorriso->do_iso1999) * isoburn_igopt_iso1999) |
(( !(xorriso->ino_behavior & 2)) * isoburn_igopt_hardlinks) |
(( (!(xorriso->ino_behavior & 2)) ||
(xorriso->do_aaip & (2 | 8 | 16 | 256)) ||
(xorriso->do_md5 & (2 | 4)) ||
xorriso->do_hfsplus
) * isoburn_igopt_aaip) |
((!!(xorriso->do_md5 & 2)) * isoburn_igopt_session_md5) |
((!!(xorriso->do_md5 & 4)) * isoburn_igopt_file_md5) |
((!!(xorriso->do_md5 & 8)) * isoburn_igopt_file_stability) |
((!!xorriso->do_old_empty) * isoburn_igopt_old_empty) |
((flag & 1) * isoburn_igopt_will_cancel);
if(xorriso->no_emul_toc & 1)
ext|= isoburn_igopt_no_emul_toc;
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)
{ret= 0; goto ex;}
isoburn_igopt_set_sort_files(sopts, 1);
isoburn_igopt_set_over_mode(sopts, 0, 0, (mode_t) 0, (mode_t) 0);
isoburn_igopt_set_over_ugid(sopts, 2 * !!xorriso->do_global_uid,
2 * !!xorriso->do_global_gid,
(uid_t) xorriso->global_uid,
(gid_t) xorriso->global_gid);
isoburn_igopt_set_out_charset(sopts, out_cs);
isoburn_igopt_set_fifo_size(sopts, xorriso->fs * 2048);
Ftimetxt(time(NULL), xorriso->scdbackup_tag_time, 8);
isoburn_igopt_set_scdbackup_tag(sopts, xorriso->scdbackup_tag_name,
xorriso->scdbackup_tag_time,
xorriso->scdbackup_tag_written);
if(xorriso->prep_partition[0]) {
ret= isoburn_igopt_set_prep_partition(sopts, xorriso->prep_partition, 0);
if(ret <= 0)
{ret= 0; goto ex;}
}
if(xorriso->efi_boot_partition[0]) {
ret= isoburn_igopt_set_efi_bootp(sopts, xorriso->efi_boot_partition, 0);
if(ret <= 0)
{ret= 0; goto ex;}
}
for(i= 0; i < Xorriso_max_appended_partitionS; i++) {
if(xorriso->appended_partitions[i] == NULL)
continue;
if(xorriso->appended_partitions[i][0] == 0)
continue;
if(strcmp(xorriso->appended_partitions[i], ".") == 0)
part_image= "";
else
part_image= xorriso->appended_partitions[i];
isoburn_igopt_set_partition_img(sopts, i + 1,
xorriso->appended_part_types[i], part_image);
}
isoburn_igopt_set_disc_label(sopts, xorriso->ascii_disc_label);
isoburn_igopt_set_hfsp_serial_number(sopts, xorriso->hfsp_serial_number);
isoburn_igopt_set_hfsp_block_size(sopts, xorriso->hfsp_block_size,
xorriso->apm_block_size);
isoburn_igopt_set_pvd_times(sopts,
xorriso->vol_creation_time, xorriso->vol_modification_time,
xorriso->vol_expiration_time, xorriso->vol_effective_time,
xorriso->vol_uuid);
#ifdef Xorriso_with_libjtE
if(xorriso->libjte_handle && (xorriso->libjte_params_given & (4 | 8))) {
/* >>> Check whether the mandatory parameters are set */;
ret= libjte_set_outfile(xorriso->libjte_handle, xorriso->outdev);
Xorriso_process_msg_queues(xorriso, 0);
if(ret <= 0)
goto ex;
isoburn_igopt_attach_jte(sopts, xorriso->libjte_handle);
pad_by_libisofs= 1;
}
#endif /* Xorriso_with_libjtE */
if(xorriso->do_padding_by_libisofs || pad_by_libisofs) {
/* Padding to be done by libisofs, not by libburn.
*/
padding= xorriso->padding / 2048;
if((uint32_t) xorriso->padding > padding * 2048)
padding++;
/*
fprintf(stderr, "XORRISO_DEBUG: isoburn_igopt_set_tail_blocks(%d)\n",
(int) padding);
*/
isoburn_igopt_set_tail_blocks(sopts, padding);
}
/* Make final abort check before starting expensive activities */
ret= Xorriso_eval_problem_status(xorriso, 1, 0);
if(ret<0)
{ret= 0; goto ex;}
if(xorriso->zisofs_by_magic && image != NULL) {
sprintf(xorriso->info_text,
"Checking disk file content for zisofs compression headers.");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "UPDATE", 0);
root_node= (IsoNode *) iso_image_get_root(image);
ret= iso_node_zf_by_magic(root_node,
(xorriso->out_drive_handle == xorriso->in_drive_handle) | 2 | 16);
if(ret<0) {
Xorriso_report_iso_error(xorriso, "", ret,
"Error when examining file content for zisofs headers",
0, "FAILURE", 1);
}
ret= Xorriso_eval_problem_status(xorriso, 1, 0);
if(ret<0)
{ret= 0; goto ex;}
sprintf(xorriso->info_text,
"Check for zisofs compression headers done.");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "UPDATE", 0);
}
ret = isoburn_igopt_set_write_type(sopts, xorriso->do_tao);
if(ret <= 0)
goto ex;
ret= 1;
ex:;
return(ret);
}
/* @param flag bit0= do not write but only prepare and return size in sectors /* @param flag bit0= do not write but only prepare and return size in sectors
@return <=0 error , 1= success @return <=0 error , 1= success
2= failure with DVD-RW, please call Xorriso_retry_write_session() 2= failure with DVD-RW, please call Xorriso_retry_write_session()
*/ */
int Xorriso_write_session(struct XorrisO *xorriso, int flag) int Xorriso_write_session(struct XorrisO *xorriso, int flag)
{ {
int ret, relax= 0, i, pacifier_speed= 0, data_lba, ext, is_bootable= 0; int ret, i, pacifier_speed= 0, data_lba, is_bootable= 0;
int freshly_bootable= 0, hide_attr, pad_by_libisofs= 0, signal_mode, role; int freshly_bootable= 0, hide_attr, signal_mode, role;
char *xorriso_id= NULL, *img_id, *sfe= NULL, *out_cs, *part_image; char *xorriso_id= NULL, *img_id, *sfe= NULL, *out_cs;
struct isoburn_imgen_opts *sopts= NULL; struct isoburn_imgen_opts *sopts= NULL;
struct burn_drive_info *dinfo, *source_dinfo; struct burn_drive_info *dinfo, *source_dinfo;
struct burn_drive *drive, *source_drive; struct burn_drive *drive, *source_drive;
@ -762,11 +918,9 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
enum burn_disc_status s; enum burn_disc_status s;
struct burn_multi_caps *caps= NULL; struct burn_multi_caps *caps= NULL;
IsoImage *image= NULL; IsoImage *image= NULL;
IsoNode *root_node;
int profile_number; int profile_number;
char *profile_name= NULL, *reasons= NULL; char *profile_name= NULL, *reasons= NULL;
IsoBoot *bootcat_node; IsoBoot *bootcat_node;
uint32_t padding;
Xorriso_alloc_meM(sfe, char, 5 * SfileadrL); Xorriso_alloc_meM(sfe, char, 5 * SfileadrL);
Xorriso_alloc_meM(xorriso_id, char, 256); Xorriso_alloc_meM(xorriso_id, char, 256);
@ -849,7 +1003,6 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
Xorriso_process_msg_queues(xorriso, 0); Xorriso_process_msg_queues(xorriso, 0);
goto ex; goto ex;
} }
relax= xorriso->relax_compliance;
xorriso->alignment= 0; xorriso->alignment= 0;
image= isoburn_get_attached_image(source_drive); image= isoburn_get_attached_image(source_drive);
@ -876,6 +1029,19 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
goto ex; goto ex;
} }
if(image!=NULL && 12+strlen(Xorriso_timestamP)<80) {
strcpy(xorriso_id, xorriso->preparer_id);
img_id= (char *) iso_image_get_data_preparer_id(image);
if(img_id!=NULL) {
for(i= strlen(img_id)-1; i>=0 && img_id[i]==' '; i--);
if(i>0) {
sprintf(xorriso->info_text, "Overwrote previous preparer id '%s'",
img_id);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "DEBUG", 0);
}
}
iso_image_set_data_preparer_id(image, xorriso_id);
}
ret= Xorriso_set_system_area(xorriso, source_drive, image, sopts, 0); ret= Xorriso_set_system_area(xorriso, source_drive, image, sopts, 0);
if(ret <= 0) if(ret <= 0)
goto ex; goto ex;
@ -914,7 +1080,7 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
iso_image_set_boot_catalog_hidden(image, hide_attr); iso_image_set_boot_catalog_hidden(image, hide_attr);
} else if(xorriso->patch_isolinux_image & 1) { } else if(xorriso->patch_isolinux_image & 1) {
if(is_bootable == 1) { if(is_bootable == 1) {
relax|= isoburn_igopt_allow_full_ascii; /* will imply isoburn_igopt_allow_full_ascii */
sprintf(xorriso->info_text, "Patching boot info table"); sprintf(xorriso->info_text, "Patching boot info table");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
@ -943,7 +1109,7 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
} }
} else if(xorriso->keep_boot_image && is_bootable == 1) { } else if(xorriso->keep_boot_image && is_bootable == 1) {
relax|= isoburn_igopt_allow_full_ascii; /* will imply isoburn_igopt_allow_full_ascii */
sprintf(xorriso->info_text, "Keeping boot image unchanged"); sprintf(xorriso->info_text, "Keeping boot image unchanged");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
} else if(is_bootable == 1) { } else if(is_bootable == 1) {
@ -965,143 +1131,9 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
&value_length, &value, 2 | 8); &value_length, &value, 2 | 8);
} }
isoburn_igopt_set_level(sopts, xorriso->iso_level); ret= Xorriso_make_iso_write_opts(xorriso, image, sopts, 0);
ext= ((!!xorriso->do_rockridge) * isoburn_igopt_rockridge) |
((!!xorriso->do_joliet) * isoburn_igopt_joliet) |
((!!xorriso->do_hfsplus) * isoburn_igopt_hfsplus) |
((!!xorriso->do_fat) * isoburn_igopt_fat) |
((!!xorriso->do_iso1999) * isoburn_igopt_iso1999) |
(( !(xorriso->ino_behavior & 2)) * isoburn_igopt_hardlinks) |
(( (!(xorriso->ino_behavior & 2)) ||
(xorriso->do_aaip & (2 | 8 | 16 | 256)) ||
(xorriso->do_md5 & (2 | 4)) ||
xorriso->do_hfsplus
) * isoburn_igopt_aaip) |
((!!(xorriso->do_md5 & 2)) * isoburn_igopt_session_md5) |
((!!(xorriso->do_md5 & 4)) * isoburn_igopt_file_md5) |
((!!(xorriso->do_md5 & 8)) * isoburn_igopt_file_stability) |
((!!xorriso->do_old_empty) * isoburn_igopt_old_empty) |
((flag & 1) * isoburn_igopt_will_cancel);
if(xorriso->no_emul_toc & 1)
ext|= isoburn_igopt_no_emul_toc;
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)
{ret= 0; goto ex;}
isoburn_igopt_set_sort_files(sopts, 1);
isoburn_igopt_set_over_mode(sopts, 0, 0, (mode_t) 0, (mode_t) 0);
isoburn_igopt_set_over_ugid(sopts, 2 * !!xorriso->do_global_uid,
2 * !!xorriso->do_global_gid,
(uid_t) xorriso->global_uid,
(gid_t) xorriso->global_gid);
isoburn_igopt_set_out_charset(sopts, out_cs);
isoburn_igopt_set_fifo_size(sopts, xorriso->fs * 2048);
Ftimetxt(time(NULL), xorriso->scdbackup_tag_time, 8);
isoburn_igopt_set_scdbackup_tag(sopts, xorriso->scdbackup_tag_name,
xorriso->scdbackup_tag_time,
xorriso->scdbackup_tag_written);
if(xorriso->prep_partition[0]) {
ret= isoburn_igopt_set_prep_partition(sopts, xorriso->prep_partition, 0);
if(ret <= 0)
{ret= 0; goto ex;}
}
if(xorriso->efi_boot_partition[0]) {
ret= isoburn_igopt_set_efi_bootp(sopts, xorriso->efi_boot_partition, 0);
if(ret <= 0)
{ret= 0; goto ex;}
}
for(i= 0; i < Xorriso_max_appended_partitionS; i++) {
if(xorriso->appended_partitions[i] == NULL)
continue;
if(xorriso->appended_partitions[i][0] == 0)
continue;
if(strcmp(xorriso->appended_partitions[i], ".") == 0)
part_image= "";
else
part_image= xorriso->appended_partitions[i];
isoburn_igopt_set_partition_img(sopts, i + 1,
xorriso->appended_part_types[i], part_image);
}
isoburn_igopt_set_disc_label(sopts, xorriso->ascii_disc_label);
isoburn_igopt_set_hfsp_serial_number(sopts, xorriso->hfsp_serial_number);
isoburn_igopt_set_hfsp_block_size(sopts, xorriso->hfsp_block_size,
xorriso->apm_block_size);
if(image!=NULL && 12+strlen(Xorriso_timestamP)<80) {
strcpy(xorriso_id, xorriso->preparer_id);
img_id= (char *) iso_image_get_data_preparer_id(image);
if(img_id!=NULL) {
for(i= strlen(img_id)-1; i>=0 && img_id[i]==' '; i--);
if(i>0) {
sprintf(xorriso->info_text, "Overwrote previous preparer id '%s'",
img_id);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "DEBUG", 0);
}
}
iso_image_set_data_preparer_id(image, xorriso_id);
}
isoburn_igopt_set_pvd_times(sopts,
xorriso->vol_creation_time, xorriso->vol_modification_time,
xorriso->vol_expiration_time, xorriso->vol_effective_time,
xorriso->vol_uuid);
#ifdef Xorriso_with_libjtE
if(xorriso->libjte_handle && (xorriso->libjte_params_given & (4 | 8))) {
/* >>> Check whether the mandatory parameters are set */;
ret= libjte_set_outfile(xorriso->libjte_handle, xorriso->outdev);
Xorriso_process_msg_queues(xorriso, 0);
if(ret <= 0) if(ret <= 0)
goto ex; goto ex;
isoburn_igopt_attach_jte(sopts, xorriso->libjte_handle);
pad_by_libisofs= 1;
}
#endif /* Xorriso_with_libjtE */
if(xorriso->do_padding_by_libisofs || pad_by_libisofs) {
/* Padding to be done by libisofs, not by libburn.
*/
padding= xorriso->padding / 2048;
if((uint32_t) xorriso->padding > padding * 2048)
padding++;
/*
fprintf(stderr, "XORRISO_DEBUG: isoburn_igopt_set_tail_blocks(%d)\n",
(int) padding);
*/
isoburn_igopt_set_tail_blocks(sopts, padding);
}
/* Make final abort check before starting expensive activities */
ret= Xorriso_eval_problem_status(xorriso, 1, 0);
if(ret<0)
{ret= 0; goto ex;}
if(xorriso->zisofs_by_magic) {
sprintf(xorriso->info_text,
"Checking disk file content for zisofs compression headers.");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "UPDATE", 0);
root_node= (IsoNode *) iso_image_get_root(image);
ret= iso_node_zf_by_magic(root_node,
(xorriso->out_drive_handle == xorriso->in_drive_handle) | 2 | 16);
if(ret<0) {
Xorriso_report_iso_error(xorriso, "", ret,
"Error when examining file content for zisofs headers",
0, "FAILURE", 1);
}
ret= Xorriso_eval_problem_status(xorriso, 1, 0);
if(ret<0)
{ret= 0; goto ex;}
sprintf(xorriso->info_text,
"Check for zisofs compression headers done.");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "UPDATE", 0);
}
/* >>> omit iso_image_update_sizes if the image was filled up very quickly */; /* >>> omit iso_image_update_sizes if the image was filled up very quickly */;
@ -1118,10 +1150,6 @@ fprintf(stderr, "XORRISO_DEBUG: isoburn_igopt_set_tail_blocks(%d)\n",
{ret= 0; goto ex;} {ret= 0; goto ex;}
} }
ret = isoburn_igopt_set_write_type(sopts, xorriso->do_tao);
if(ret <= 0)
goto ex;
Xorriso_set_abort_severity(xorriso, 1); Xorriso_set_abort_severity(xorriso, 1);
if (xorriso->grow_blindly_msc2 >= 0 && if (xorriso->grow_blindly_msc2 >= 0 &&
xorriso->out_drive_handle != xorriso->in_drive_handle) { xorriso->out_drive_handle != xorriso->in_drive_handle) {

View File

@ -48,6 +48,9 @@ int Xorriso_pacifier_loop(struct XorrisO *xorriso, struct burn_drive *drive,
int Xorriso_set_isolinux_options(struct XorrisO *xorriso, int Xorriso_set_isolinux_options(struct XorrisO *xorriso,
IsoImage *image, int flag); IsoImage *image, int flag);
int Xorriso_make_iso_write_opts(struct XorrisO *xorriso, IsoImage *image,
struct isoburn_imgen_opts *sopts, int flag);
#endif /* ! Xorriso_pvt_write_run_includeD */ #endif /* ! Xorriso_pvt_write_run_includeD */

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.3.5, Dec 16, 2013" .TH XORRISO 1 "Version 1.3.5, Dec 28, 2013"
.\" 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:
@ -1039,7 +1039,7 @@ is the Rock Ridge name of a file object in the ISO image.
If no Rock Ridge information is recorded in the loaded ISO image, then you If no Rock Ridge information is recorded in the loaded ISO image, then you
will see ISO 9660 names which are of limited length and character set. will see ISO 9660 names which are of limited length and character set.
If no Rock Ridge information shall be stored in an emerging ISO image, then If no Rock Ridge information shall be stored in an emerging ISO image, then
their names will get mapped to such restricted ISO 9660 names. their names will get mapped to such restricted ISO 9660 (aka ECMA\-119) names.
.PP .PP
Note that in the ISO image you are as powerful as the superuser. Access Note that in the ISO image you are as powerful as the superuser. Access
permissions of the existing files in the image do not apply to your write permissions of the existing files in the image do not apply to your write
@ -1793,6 +1793,22 @@ in "hfsplus" tree, in all trees ("on"), or not hidden in any tree ("off").
.br .br
Those which are hidden in some tree match \-not \-hidden "off". Those which are hidden in some tree match \-not \-hidden "off".
.br .br
\fB\-bad_outname\fR namespace :
Matches files with names which change when converted forth and back
between the local character set and one of the namespaces "rockridge",
"joliet", "ecma119", "hfsplus".
.br
All applicable \-compliance rules are taken into respect.
Rule "omit_version" is always enabled, because else
namespaces "joliet" and "ecma119" would cause changes with every
non\-directory name.
Consider to also enable rules "no_force_dots" resp. "no_j_force_dots".
.br
The namespaces use different character sets and apply further restrictions
to name length, permissible characters, and mandatory name components.
"rockridge" uses the character set defined by \-out_charset,
"joliet" uses UCS\-2BE, "ecma119" uses ASCII, "hfsplus" uses UTF\-16BE.
.br
\fB\-prune\fR : \fB\-prune\fR :
If this test is reached and the tested file is a directory then \-find will not If this test is reached and the tested file is a directory then \-find will not
dive into that directory. This test itself does always match. dive into that directory. This test itself does always match.
@ -2056,6 +2072,20 @@ E.g.:
.br .br
\-find / \-disk_name *_secret \-exec hide on \-find / \-disk_name *_secret \-exec hide on
.br .br
\fBprint_outname\fR
prints in the first line the filename as registered by the program model,
and in the second line the filename after conversion forth and back between
local character set and one of the namespaces "rockridge", "joliet", "ecma119",
or "hfsplus". The third output line is "\-\-" .
.br
The name conversion does not take into respect the possibility of name
collisions in the target namespace. Such collisions are most likely in "joliet"
and "ecma119", where they get resolved by automatic file name changes.
.br
E.g.:
.br
\-find / \-bad_outname joliet \-exec print_outname joliet
.br
\fBestimate_size\fR \fBestimate_size\fR
prints a lower and an upper estimation of the number of blocks which the prints a lower and an upper estimation of the number of blocks which the
found files together will occupy in the emerging ISO image. found files together will occupy in the emerging ISO image.

View File

@ -960,7 +960,8 @@ the Rock Ridge name of a file object in the ISO image. If no Rock
Ridge information is recorded in the loaded ISO image, then you will Ridge information is recorded in the loaded ISO image, then you will
see ISO 9660 names which are of limited length and character set. If see ISO 9660 names which are of limited length and character set. If
no Rock Ridge information shall be stored in an emerging ISO image, then no Rock Ridge information shall be stored in an emerging ISO image, then
their names will get mapped to such restricted ISO 9660 names. their names will get mapped to such restricted ISO 9660 (aka ECMA-119)
names.
Note that in the ISO image you are as powerful as the superuser. Note that in the ISO image you are as powerful as the superuser.
Access permissions of the existing files in the image do not apply to Access permissions of the existing files in the image do not apply to
@ -1608,6 +1609,20 @@ File: xorriso.info, Node: CmdFind, Next: Filter, Prev: Manip, Up: Commands
tree, in "hfsplus" tree, in all trees ("on"), or not hidden tree, in "hfsplus" tree, in all trees ("on"), or not hidden
in any tree ("off"). in any tree ("off").
Those which are hidden in some tree match -not -hidden "off". Those which are hidden in some tree match -not -hidden "off".
-bad_outname namespace :
Matches files with names which change when converted forth
and back between the local character set and one of the
namespaces "rockridge", "joliet", "ecma119", "hfsplus".
All applicable -compliance rules are taken into respect.
Rule "omit_version" is always enabled, because else
namespaces "joliet" and "ecma119" would cause changes with
every non-directory name. Consider to also enable rules
"no_force_dots" resp. "no_j_force_dots".
The namespaces use different character sets and apply further
restrictions to name length, permissible characters, and
mandatory name components. "rockridge" uses the character
set defined by -out_charset, "joliet" uses UCS-2BE, "ecma119"
uses ASCII, "hfsplus" uses UTF-16BE.
-prune : -prune :
If this test is reached and the tested file is a directory If this test is reached and the tested file is a directory
then -find will not dive into that directory. This test then -find will not dive into that directory. This test
@ -1816,6 +1831,18 @@ File: xorriso.info, Node: CmdFind, Next: Filter, Prev: Manip, Up: Commands
joliet:hfsplus joliet:hfsplus
E.g.: E.g.:
-find / -disk_name *_secret -exec hide on -find / -disk_name *_secret -exec hide on
print_outname
prints in the first line the filename as registered by the
program model, and in the second line the filename after
conversion forth and back between local character set and one
of the namespaces "rockridge", "joliet", "ecma119", or
"hfsplus". The third output line is "-" .
The name conversion does not take into respect the
possibility of name collisions in the target namespace. Such
collisions are most likely in "joliet" and "ecma119", where
they get resolved by automatic file name changes.
E.g.:
-find / -bad_outname joliet -exec print_outname joliet
estimate_size estimate_size
prints a lower and an upper estimation of the number of prints a lower and an upper estimation of the number of
blocks which the found files together will occupy in the blocks which the found files together will occupy in the
@ -4855,8 +4882,8 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -abort_on controls abort on error: Exception. (line 27) * -abort_on controls abort on error: Exception. (line 27)
* -abstract_file sets abstract file name: SetWrite. (line 237) * -abstract_file sets abstract file name: SetWrite. (line 237)
* -acl controls handling of ACLs: Loading. (line 170) * -acl controls handling of ACLs: Loading. (line 170)
* -add inserts one or more paths: Insert. (line 46) * -add inserts one or more paths: Insert. (line 47)
* -add_plainly inserts one or more paths: Insert. (line 65) * -add_plainly inserts one or more paths: Insert. (line 66)
* -alter_date sets timestamps in ISO image: Manip. (line 154) * -alter_date sets timestamps in ISO image: Manip. (line 154)
* -alter_date_r sets timestamps in ISO image: Manip. (line 187) * -alter_date_r sets timestamps in ISO image: Manip. (line 187)
* -append_partition adds arbitrary file after image end: Bootable. * -append_partition adds arbitrary file after image end: Bootable.
@ -4886,7 +4913,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -chmod_r sets permissions in ISO image: Manip. (line 77) * -chmod_r sets permissions in ISO image: Manip. (line 77)
* -chown sets ownership in ISO image: Manip. (line 49) * -chown sets ownership in ISO image: Manip. (line 49)
* -chown_r sets ownership in ISO image: Manip. (line 54) * -chown_r sets ownership in ISO image: Manip. (line 54)
* -clone copies ISO directory tree: Insert. (line 180) * -clone copies ISO directory tree: Insert. (line 181)
* -close controls media closing: SetWrite. (line 357) * -close controls media closing: SetWrite. (line 357)
* -close_damaged closes damaged track and session: Writing. (line 170) * -close_damaged closes damaged track and session: Writing. (line 170)
* -close_filter_list bans filter registration: Filter. (line 52) * -close_filter_list bans filter registration: Filter. (line 52)
@ -4897,19 +4924,19 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -compare_r reports ISO/disk differences: Navigate. (line 159) * -compare_r reports ISO/disk differences: Navigate. (line 159)
* -compliance controls standard compliance: SetWrite. (line 58) * -compliance controls standard compliance: SetWrite. (line 58)
* -copyright_file sets copyright file name: SetWrite. (line 231) * -copyright_file sets copyright file name: SetWrite. (line 231)
* -cp_clone copies ISO directory tree: Insert. (line 192) * -cp_clone copies ISO directory tree: Insert. (line 193)
* -cp_rx copies file trees to disk: Restore. (line 111) * -cp_rx copies file trees to disk: Restore. (line 111)
* -cpax copies files to disk: Restore. (line 107) * -cpax copies files to disk: Restore. (line 107)
* -cpr inserts like with cp -r: Insert. (line 156) * -cpr inserts like with cp -r: Insert. (line 157)
* -cpx copies files to disk: Restore. (line 95) * -cpx copies files to disk: Restore. (line 95)
* -cut_out inserts piece of data file: Insert. (line 130) * -cut_out inserts piece of data file: Insert. (line 131)
* -data_cache_size adjusts read cache size: Loading. (line 296) * -data_cache_size adjusts read cache size: Loading. (line 296)
* -dev acquires one drive for input and output: AqDrive. (line 12) * -dev acquires one drive for input and output: AqDrive. (line 12)
* -device_links gets list of drives: Inquiry. (line 18) * -device_links gets list of drives: Inquiry. (line 18)
* -devices gets list of drives: Inquiry. (line 7) * -devices gets list of drives: Inquiry. (line 7)
* -dialog enables dialog mode: DialogCtl. (line 7) * -dialog enables dialog mode: DialogCtl. (line 7)
* -disk_dev_ino fast incremental backup: Loading. (line 217) * -disk_dev_ino fast incremental backup: Loading. (line 217)
* -disk_pattern controls pattern expansion: Insert. (line 35) * -disk_pattern controls pattern expansion: Insert. (line 36)
* -displacement compensate altered image start address: Loading. * -displacement compensate altered image start address: Loading.
(line 60) (line 60)
* -drive_class controls drive accessability: Loading. (line 78) * -drive_class controls drive accessability: Loading. (line 78)
@ -4962,7 +4989,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -list_formats lists available formats: Writing. (line 134) * -list_formats lists available formats: Writing. (line 134)
* -list_profiles lists supported media: Writing. (line 184) * -list_profiles lists supported media: Writing. (line 184)
* -list_speeds lists available write speeds: Writing. (line 146) * -list_speeds lists available write speeds: Writing. (line 146)
* -lns creates ISO symbolic link: Insert. (line 175) * -lns creates ISO symbolic link: Insert. (line 176)
* -load addresses a particular session as input: Loading. (line 35) * -load addresses a particular session as input: Loading. (line 35)
* -local_charset sets terminal character set: Charset. (line 47) * -local_charset sets terminal character set: Charset. (line 47)
* -logfile logs output channels to file: Frontend. (line 20) * -logfile logs output channels to file: Frontend. (line 20)
@ -4974,12 +5001,12 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -lsl lists files in ISO image: Navigate. (line 38) * -lsl lists files in ISO image: Navigate. (line 38)
* -lslx lists files on disk: Navigate. (line 62) * -lslx lists files on disk: Navigate. (line 62)
* -lsx lists files on disk: Navigate. (line 51) * -lsx lists files on disk: Navigate. (line 51)
* -map inserts path: Insert. (line 89) * -map inserts path: Insert. (line 90)
* -map_l inserts paths from disk file: Insert. (line 98) * -map_l inserts paths from disk file: Insert. (line 99)
* -map_single inserts path: Insert. (line 94) * -map_single inserts path: Insert. (line 95)
* -mark sets synchronizing message: Frontend. (line 25) * -mark sets synchronizing message: Frontend. (line 25)
* -md5 controls handling of MD5 sums: Loading. (line 183) * -md5 controls handling of MD5 sums: Loading. (line 183)
* -mkdir creates ISO directory: Insert. (line 170) * -mkdir creates ISO directory: Insert. (line 171)
* -mount issues mount command for ISO session: Restore. (line 129) * -mount issues mount command for ISO session: Restore. (line 129)
* -mount_cmd composes mount command line: Inquiry. (line 52) * -mount_cmd composes mount command line: Inquiry. (line 52)
* -mount_cmd controls mount command: Inquiry. (line 68) * -mount_cmd controls mount command: Inquiry. (line 68)
@ -5001,7 +5028,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -padding sets amount or mode of image padding: SetWrite. (line 382) * -padding sets amount or mode of image padding: SetWrite. (line 382)
* -page set terminal geometry: DialogCtl. (line 19) * -page set terminal geometry: DialogCtl. (line 19)
* -paste_in copies file into disk file: Restore. (line 124) * -paste_in copies file into disk file: Restore. (line 124)
* -path_list inserts paths from disk file: Insert. (line 79) * -path_list inserts paths from disk file: Insert. (line 80)
* -pathspecs sets meaning of = with -add: SetInsert. (line 118) * -pathspecs sets meaning of = with -add: SetInsert. (line 118)
* -pkt_output consolidates text output: Frontend. (line 7) * -pkt_output consolidates text output: Frontend. (line 7)
* -preparer_id sets preparer id: SetWrite. (line 250) * -preparer_id sets preparer id: SetWrite. (line 250)
@ -5017,7 +5044,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -pwd tells working directory in ISO: Navigate. (line 20) * -pwd tells working directory in ISO: Navigate. (line 20)
* -pwdx tells working directory on disk: Navigate. (line 23) * -pwdx tells working directory on disk: Navigate. (line 23)
* -quoted_not_list sets exclusions: SetInsert. (line 72) * -quoted_not_list sets exclusions: SetInsert. (line 72)
* -quoted_path_list inserts paths from disk file: Insert. (line 84) * -quoted_path_list inserts paths from disk file: Insert. (line 85)
* -read_mkisofsrc searches and reads .mkisofsrc file: Emulation. * -read_mkisofsrc searches and reads .mkisofsrc file: Emulation.
(line 151) (line 151)
* -read_speed set read speed: Loading. (line 11) * -read_speed set read speed: Loading. (line 11)
@ -5065,9 +5092,9 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -toc shows list of sessions: Inquiry. (line 28) * -toc shows list of sessions: Inquiry. (line 28)
* -toc_of shows list of sessions: Inquiry. (line 43) * -toc_of shows list of sessions: Inquiry. (line 43)
* -uid sets global ownership: SetWrite. (line 282) * -uid sets global ownership: SetWrite. (line 282)
* -update inserts path if different: Insert. (line 103) * -update inserts path if different: Insert. (line 104)
* -update_l inserts paths if different: Insert. (line 125) * -update_l inserts paths if different: Insert. (line 126)
* -update_r inserts paths if different: Insert. (line 114) * -update_r inserts paths if different: Insert. (line 115)
* -use_readline enables readline for dialog: DialogCtl. (line 28) * -use_readline enables readline for dialog: DialogCtl. (line 28)
* -version prints help text: Scripting. (line 23) * -version prints help text: Scripting. (line 23)
* -volid sets volume id: SetWrite. (line 164) * -volid sets volume id: SetWrite. (line 164)
@ -5132,9 +5159,9 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Dialog, EOF resistant, -named_pipe_loop: Frontend. (line 123) * Dialog, EOF resistant, -named_pipe_loop: Frontend. (line 123)
* Dialog, line editing, -use_readline: DialogCtl. (line 28) * Dialog, line editing, -use_readline: DialogCtl. (line 28)
* Dialog, terminal geometry, -page: DialogCtl. (line 19) * Dialog, terminal geometry, -page: DialogCtl. (line 19)
* Directories, copy, -cp_clone: Insert. (line 192) * Directories, copy, -cp_clone: Insert. (line 193)
* Directory, copy, -clone: Insert. (line 180) * Directory, copy, -clone: Insert. (line 181)
* Directory, create, -mkdir: Insert. (line 170) * Directory, create, -mkdir: Insert. (line 171)
* Directory, delete, -rmdir: Manip. (line 32) * Directory, delete, -rmdir: Manip. (line 32)
* disk_path, _definition: Insert. (line 6) * disk_path, _definition: Insert. (line 6)
* Drive, _definition: Drives. (line 6) * Drive, _definition: Drives. (line 6)
@ -5206,22 +5233,22 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Insert, file exclusion pattern, -not_leaf: SetInsert. (line 62) * Insert, file exclusion pattern, -not_leaf: SetInsert. (line 62)
* Insert, file exclusion, -not_mgt: SetInsert. (line 23) * Insert, file exclusion, -not_mgt: SetInsert. (line 23)
* Insert, file exclusion, -quoted_not_list: SetInsert. (line 72) * Insert, file exclusion, -quoted_not_list: SetInsert. (line 72)
* Insert, if different, -update: Insert. (line 103) * Insert, if different, -update: Insert. (line 104)
* Insert, if different, -update_l: Insert. (line 125) * Insert, if different, -update_l: Insert. (line 126)
* Insert, if different, -update_r: Insert. (line 114) * Insert, if different, -update_r: Insert. (line 115)
* Insert, large file splitting, -split_size: SetInsert. (line 140) * Insert, large file splitting, -split_size: SetInsert. (line 140)
* Insert, limit data file size, -file_size_limit: SetInsert. (line 7) * Insert, limit data file size, -file_size_limit: SetInsert. (line 7)
* Insert, links or mount points, -follow: SetInsert. (line 76) * Insert, links or mount points, -follow: SetInsert. (line 76)
* Insert, meaning of = with -add, -pathspecs: SetInsert. (line 118) * Insert, meaning of = with -add, -pathspecs: SetInsert. (line 118)
* Insert, non-dashed arguments, -add_plainly: Insert. (line 65) * Insert, non-dashed arguments, -add_plainly: Insert. (line 66)
* Insert, path, -map: Insert. (line 89) * Insert, path, -map: Insert. (line 90)
* Insert, path, -map_single: Insert. (line 94) * Insert, path, -map_single: Insert. (line 95)
* Insert, paths from disk file, -map_l: Insert. (line 98) * Insert, paths from disk file, -map_l: Insert. (line 99)
* Insert, paths from disk file, -path_list: Insert. (line 79) * Insert, paths from disk file, -path_list: Insert. (line 80)
* Insert, paths from disk file, -quoted_path_list: Insert. (line 84) * Insert, paths from disk file, -quoted_path_list: Insert. (line 85)
* Insert, paths, -cpr: Insert. (line 156) * Insert, paths, -cpr: Insert. (line 157)
* Insert, pathspecs, -add: Insert. (line 46) * Insert, pathspecs, -add: Insert. (line 47)
* Insert, piece of data file, -cut_out: Insert. (line 130) * Insert, piece of data file, -cut_out: Insert. (line 131)
* ISO 9660, _definition: Model. (line 6) * ISO 9660, _definition: Model. (line 6)
* iso_rr_path, _definition: Insert. (line 7) * iso_rr_path, _definition: Insert. (line 7)
* Jigdo Template Extraction, -jigdo: Jigdo. (line 33) * Jigdo Template Extraction, -jigdo: Jigdo. (line 33)
@ -5265,7 +5292,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Partition table, _definition: Bootable. (line 138) * Partition table, _definition: Bootable. (line 138)
* Pathspec, _definition: SetInsert. (line 120) * Pathspec, _definition: SetInsert. (line 120)
* Pattern expansion, _definition: Processing. (line 24) * Pattern expansion, _definition: Processing. (line 24)
* Pattern expansion, for disk paths, -disk_pattern: Insert. (line 35) * Pattern expansion, for disk paths, -disk_pattern: Insert. (line 36)
* Pattern expansion, for ISO paths, -iso_rr_pattern: Manip. (line 10) * Pattern expansion, for ISO paths, -iso_rr_pattern: Manip. (line 10)
* Permissions, in ISO image, -chmod: Manip. (line 65) * Permissions, in ISO image, -chmod: Manip. (line 65)
* Permissions, in ISO image, -chmod_r: Manip. (line 77) * Permissions, in ISO image, -chmod_r: Manip. (line 77)
@ -5330,7 +5357,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Sorting order, for -x, -list_arg_sorting: ArgSort. (line 27) * Sorting order, for -x, -list_arg_sorting: ArgSort. (line 27)
* SUN Disk Label, production: Bootable. (line 220) * SUN Disk Label, production: Bootable. (line 220)
* SUN SPARC boot images, activation: Bootable. (line 270) * SUN SPARC boot images, activation: Bootable. (line 270)
* Symbolic link, create, -lns: Insert. (line 175) * Symbolic link, create, -lns: Insert. (line 176)
* System area, _definition: Bootable. (line 126) * System area, _definition: Bootable. (line 126)
* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 238) * Table-of-content, search sessions, -rom_toc_scan: Loading. (line 238)
* Table-of-content, show, -toc: Inquiry. (line 28) * Table-of-content, show, -toc: Inquiry. (line 28)
@ -5390,46 +5417,46 @@ Node: ArgSort26499
Node: AqDrive27991 Node: AqDrive27991
Node: Loading31036 Node: Loading31036
Node: Insert47965 Node: Insert47965
Node: SetInsert58164 Node: SetInsert58179
Node: Manip66741 Node: Manip66756
Node: CmdFind76521 Node: CmdFind76536
Node: Filter91563 Node: Filter93137
Node: Writing96119 Node: Writing97693
Node: SetWrite106250 Node: SetWrite107824
Node: Bootable126835 Node: Bootable128409
Node: Jigdo143225 Node: Jigdo144799
Node: Charset147472 Node: Charset149046
Node: Exception150234 Node: Exception151808
Node: DialogCtl156354 Node: DialogCtl157928
Node: Inquiry158952 Node: Inquiry160526
Node: Navigate165269 Node: Navigate166843
Node: Verify173567 Node: Verify175141
Node: Restore182599 Node: Restore184173
Node: Emulation189686 Node: Emulation191260
Node: Scripting199988 Node: Scripting201562
Node: Frontend207759 Node: Frontend209333
Node: Examples217366 Node: Examples218940
Node: ExDevices218544 Node: ExDevices220118
Node: ExCreate219203 Node: ExCreate220777
Node: ExDialog220488 Node: ExDialog222062
Node: ExGrowing221753 Node: ExGrowing223327
Node: ExModifying222558 Node: ExModifying224132
Node: ExBootable223062 Node: ExBootable224636
Node: ExCharset223614 Node: ExCharset225188
Node: ExPseudo224506 Node: ExPseudo226080
Node: ExCdrecord225404 Node: ExCdrecord226978
Node: ExMkisofs225721 Node: ExMkisofs227295
Node: ExGrowisofs227061 Node: ExGrowisofs228635
Node: ExException228196 Node: ExException229770
Node: ExTime228650 Node: ExTime230224
Node: ExIncBackup229109 Node: ExIncBackup230683
Node: ExRestore233089 Node: ExRestore234663
Node: ExRecovery234022 Node: ExRecovery235596
Node: Files234592 Node: Files236166
Node: Seealso235891 Node: Seealso237465
Node: Bugreport236614 Node: Bugreport238188
Node: Legal237195 Node: Legal238769
Node: CommandIdx238206 Node: CommandIdx239780
Node: ConceptIdx254868 Node: ConceptIdx256442
 
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.3.5, Dec 16, 2013" @c man .TH XORRISO 1 "Version 1.3.5, Dec 28, 2013"
@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:
@ -1299,7 +1299,7 @@ is the Rock Ridge name of a file object in the ISO image.
If no Rock Ridge information is recorded in the loaded ISO image, then you If no Rock Ridge information is recorded in the loaded ISO image, then you
will see ISO 9660 names which are of limited length and character set. will see ISO 9660 names which are of limited length and character set.
If no Rock Ridge information shall be stored in an emerging ISO image, then If no Rock Ridge information shall be stored in an emerging ISO image, then
their names will get mapped to such restricted ISO 9660 names. their names will get mapped to such restricted ISO 9660 (aka ECMA-119) names.
@c man .PP @c man .PP
@sp 1 @sp 1
Note that in the ISO image you are as powerful as the superuser. Access Note that in the ISO image you are as powerful as the superuser. Access
@ -2174,6 +2174,22 @@ in "hfsplus" tree, in all trees ("on"), or not hidden in any tree ("off").
@* @*
Those which are hidden in some tree match -not -hidden "off". Those which are hidden in some tree match -not -hidden "off".
@* @*
@item -bad_outname namespace :
Matches files with names which change when converted forth and back
between the local character set and one of the namespaces "rockridge",
"joliet", "ecma119", "hfsplus".
@*
All applicable -compliance rules are taken into respect.
Rule "omit_version" is always enabled, because else
namespaces "joliet" and "ecma119" would cause changes with every
non-directory name.
Consider to also enable rules "no_force_dots" resp. "no_j_force_dots".
@*
The namespaces use different character sets and apply further restrictions
to name length, permissible characters, and mandatory name components.
"rockridge" uses the character set defined by -out_charset,
"joliet" uses UCS-2BE, "ecma119" uses ASCII, "hfsplus" uses UTF-16BE.
@*
@item -prune : @item -prune :
If this test is reached and the tested file is a directory then -find will not If this test is reached and the tested file is a directory then -find will not
dive into that directory. This test itself does always match. dive into that directory. This test itself does always match.
@ -2455,6 +2471,20 @@ E.g.:
@* @*
-find / -disk_name *_secret -exec hide on -find / -disk_name *_secret -exec hide on
@* @*
@item print_outname
prints in the first line the filename as registered by the program model,
and in the second line the filename after conversion forth and back between
local character set and one of the namespaces "rockridge", "joliet", "ecma119",
or "hfsplus". The third output line is "--" .
@*
The name conversion does not take into respect the possibility of name
collisions in the target namespace. Such collisions are most likely in "joliet"
and "ecma119", where they get resolved by automatic file name changes.
@*
E.g.:
@*
-find / -bad_outname joliet -exec print_outname joliet
@*
@item estimate_size @item estimate_size
prints a lower and an upper estimation of the number of blocks which the prints a lower and an upper estimation of the number of blocks which the
found files together will occupy in the emerging ISO image. found files together will occupy in the emerging ISO image.

View File

@ -1 +1 @@
#define Xorriso_timestamP "2013.12.28.194725" #define Xorriso_timestamP "2013.12.29.120027"