New -find test -bad_outname, new -find action print_outname
This commit is contained in:
parent
a924b5cec0
commit
5483ac27f6
@ -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 flag)
|
||||
int Findjob_set_num_filter(struct FindjoB *o, int test_type,
|
||||
int num1, int num2, int flag)
|
||||
{
|
||||
struct ExprtesT *t;
|
||||
int ret;
|
||||
@ -875,20 +875,31 @@ int Findjob_set_lba_range(struct FindjoB *o, int start_lba, int count,
|
||||
return(ret);
|
||||
|
||||
t= o->cursor->test;
|
||||
t->test_type= 4;
|
||||
t->test_type= test_type;
|
||||
t->arg1= calloc(sizeof(int), 1);
|
||||
t->arg2= calloc(sizeof(int), 1);
|
||||
if(t->arg1 == NULL || t->arg2 == NULL)
|
||||
return(-1);
|
||||
*((int *) t->arg1)= start_lba;
|
||||
if(start_lba > 0)
|
||||
*((int *) t->arg2)= start_lba + count - 1;
|
||||
else
|
||||
*((int *) t->arg2)= start_lba - count + 1;
|
||||
*((int *) t->arg1)= num1;
|
||||
*((int *) t->arg2)= num2;
|
||||
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)
|
||||
{
|
||||
struct ExprtesT *t;
|
||||
|
@ -49,6 +49,7 @@ struct ExprtesT {
|
||||
18= -has_hfs_crtp char *creator char *type
|
||||
19= -has_hfs_bless int bless_index
|
||||
20= -disk_path char *arg1
|
||||
21= -bad_outname int namespace
|
||||
*/
|
||||
int test_type;
|
||||
|
||||
@ -167,6 +168,7 @@ struct FindjoB {
|
||||
47= set_hfs_bless blessing
|
||||
48= get_hfs_bless
|
||||
49= internal: update creator, type, and blessings from persistent isofs.*
|
||||
50= print_outname namespace
|
||||
*/
|
||||
int action;
|
||||
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_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 flag);
|
||||
|
||||
|
@ -34,6 +34,7 @@
|
||||
#include "iso_manip.h"
|
||||
#include "sort_cmp.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)
|
||||
{
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
@ -2676,6 +2762,11 @@ int Xorriso_findi_action(struct XorrisO *xorriso, struct FindjoB *job,
|
||||
}
|
||||
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 */
|
||||
Xorriso_esc_filepath(xorriso, show_path, xorriso->result_line, 0);
|
||||
strcat(xorriso->result_line, "\n");
|
||||
@ -2956,6 +3047,14 @@ return:
|
||||
break; case 20: /* -disk_path */
|
||||
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:
|
||||
|
||||
/* >>> complain about unknown test type */;
|
||||
|
@ -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 */
|
||||
/* @param flag bit0= -findx rather than -findi
|
||||
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 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;
|
||||
char *start_path, *path= NULL, *cpt, *other_path_start= NULL, *cd_pt;
|
||||
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");
|
||||
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) {
|
||||
ret= Findjob_set_false(job, -1, 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);
|
||||
} else if(strcmp(cpt, "get_hfs_bless")==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 {
|
||||
sprintf(xorriso->info_text, "-find -exec: unknown action ");
|
||||
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,",
|
||||
" -lba_range start count, -damaged, -has_acl, -has_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",
|
||||
" Operators: -not, -or, -and, -sub, (, -subend, ),",
|
||||
" -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,",
|
||||
" list_extattr, get_md5, check_md5, make_md5,",
|
||||
" 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.",
|
||||
" -mkdir iso_rr_path [...]",
|
||||
" Create empty directories if they do not exist yet.",
|
||||
|
@ -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
|
||||
@return <=0 error , 1= success
|
||||
2= failure with DVD-RW, please call Xorriso_retry_write_session()
|
||||
*/
|
||||
int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
||||
{
|
||||
int ret, relax= 0, i, pacifier_speed= 0, data_lba, ext, is_bootable= 0;
|
||||
int freshly_bootable= 0, hide_attr, pad_by_libisofs= 0, signal_mode, role;
|
||||
char *xorriso_id= NULL, *img_id, *sfe= NULL, *out_cs, *part_image;
|
||||
int ret, i, pacifier_speed= 0, data_lba, is_bootable= 0;
|
||||
int freshly_bootable= 0, hide_attr, signal_mode, role;
|
||||
char *xorriso_id= NULL, *img_id, *sfe= NULL, *out_cs;
|
||||
struct isoburn_imgen_opts *sopts= NULL;
|
||||
struct burn_drive_info *dinfo, *source_dinfo;
|
||||
struct burn_drive *drive, *source_drive;
|
||||
@ -762,11 +918,9 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
||||
enum burn_disc_status s;
|
||||
struct burn_multi_caps *caps= NULL;
|
||||
IsoImage *image= NULL;
|
||||
IsoNode *root_node;
|
||||
int profile_number;
|
||||
char *profile_name= NULL, *reasons= NULL;
|
||||
IsoBoot *bootcat_node;
|
||||
uint32_t padding;
|
||||
|
||||
Xorriso_alloc_meM(sfe, char, 5 * SfileadrL);
|
||||
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);
|
||||
goto ex;
|
||||
}
|
||||
relax= xorriso->relax_compliance;
|
||||
|
||||
xorriso->alignment= 0;
|
||||
image= isoburn_get_attached_image(source_drive);
|
||||
@ -876,6 +1029,19 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
||||
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);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
@ -914,7 +1080,7 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
||||
iso_image_set_boot_catalog_hidden(image, hide_attr);
|
||||
} else if(xorriso->patch_isolinux_image & 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");
|
||||
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);
|
||||
}
|
||||
} 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");
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
|
||||
} else if(is_bootable == 1) {
|
||||
@ -965,143 +1131,9 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag)
|
||||
&value_length, &value, 2 | 8);
|
||||
}
|
||||
|
||||
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);
|
||||
ret= Xorriso_make_iso_write_opts(xorriso, image, sopts, 0);
|
||||
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)
|
||||
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);
|
||||
}
|
||||
goto ex;
|
||||
|
||||
/* >>> 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 = isoburn_igopt_set_write_type(sopts, xorriso->do_tao);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
|
||||
Xorriso_set_abort_severity(xorriso, 1);
|
||||
if (xorriso->grow_blindly_msc2 >= 0 &&
|
||||
xorriso->out_drive_handle != xorriso->in_drive_handle) {
|
||||
|
@ -48,6 +48,9 @@ int Xorriso_pacifier_loop(struct XorrisO *xorriso, struct burn_drive *drive,
|
||||
int Xorriso_set_isolinux_options(struct XorrisO *xorriso,
|
||||
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 */
|
||||
|
||||
|
@ -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.3.5, Dec 16, 2013"
|
||||
.TH XORRISO 1 "Version 1.3.5, Dec 28, 2013"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" 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
|
||||
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
|
||||
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
|
||||
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
|
||||
@ -1793,6 +1793,22 @@ in "hfsplus" tree, in all trees ("on"), or not hidden in any tree ("off").
|
||||
.br
|
||||
Those which are hidden in some tree match \-not \-hidden "off".
|
||||
.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 :
|
||||
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.
|
||||
@ -2056,6 +2072,20 @@ E.g.:
|
||||
.br
|
||||
\-find / \-disk_name *_secret \-exec hide on
|
||||
.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
|
||||
prints a lower and an upper estimation of the number of blocks which the
|
||||
found files together will occupy in the emerging ISO image.
|
||||
|
@ -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
|
||||
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
|
||||
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.
|
||||
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
|
||||
in any tree ("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 :
|
||||
If this test is reached and the tested file is a directory
|
||||
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
|
||||
E.g.:
|
||||
-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
|
||||
prints a lower and an upper estimation of the number of
|
||||
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)
|
||||
* -abstract_file sets abstract file name: SetWrite. (line 237)
|
||||
* -acl controls handling of ACLs: Loading. (line 170)
|
||||
* -add inserts one or more paths: Insert. (line 46)
|
||||
* -add_plainly inserts one or more paths: Insert. (line 65)
|
||||
* -add inserts one or more paths: Insert. (line 47)
|
||||
* -add_plainly inserts one or more paths: Insert. (line 66)
|
||||
* -alter_date sets timestamps in ISO image: Manip. (line 154)
|
||||
* -alter_date_r sets timestamps in ISO image: Manip. (line 187)
|
||||
* -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)
|
||||
* -chown sets ownership in ISO image: Manip. (line 49)
|
||||
* -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_damaged closes damaged track and session: Writing. (line 170)
|
||||
* -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)
|
||||
* -compliance controls standard compliance: SetWrite. (line 58)
|
||||
* -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)
|
||||
* -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)
|
||||
* -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)
|
||||
* -dev acquires one drive for input and output: AqDrive. (line 12)
|
||||
* -device_links gets list of drives: Inquiry. (line 18)
|
||||
* -devices gets list of drives: Inquiry. (line 7)
|
||||
* -dialog enables dialog mode: DialogCtl. (line 7)
|
||||
* -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.
|
||||
(line 60)
|
||||
* -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_profiles lists supported media: Writing. (line 184)
|
||||
* -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)
|
||||
* -local_charset sets terminal character set: Charset. (line 47)
|
||||
* -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)
|
||||
* -lslx lists files on disk: Navigate. (line 62)
|
||||
* -lsx lists files on disk: Navigate. (line 51)
|
||||
* -map inserts path: Insert. (line 89)
|
||||
* -map_l inserts paths from disk file: Insert. (line 98)
|
||||
* -map_single inserts path: Insert. (line 94)
|
||||
* -map inserts path: Insert. (line 90)
|
||||
* -map_l inserts paths from disk file: Insert. (line 99)
|
||||
* -map_single inserts path: Insert. (line 95)
|
||||
* -mark sets synchronizing message: Frontend. (line 25)
|
||||
* -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_cmd composes mount command line: Inquiry. (line 52)
|
||||
* -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)
|
||||
* -page set terminal geometry: DialogCtl. (line 19)
|
||||
* -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)
|
||||
* -pkt_output consolidates text output: Frontend. (line 7)
|
||||
* -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)
|
||||
* -pwdx tells working directory on disk: Navigate. (line 23)
|
||||
* -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.
|
||||
(line 151)
|
||||
* -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_of shows list of sessions: Inquiry. (line 43)
|
||||
* -uid sets global ownership: SetWrite. (line 282)
|
||||
* -update inserts path if different: Insert. (line 103)
|
||||
* -update_l inserts paths if different: Insert. (line 125)
|
||||
* -update_r inserts paths if different: Insert. (line 114)
|
||||
* -update inserts path if different: Insert. (line 104)
|
||||
* -update_l inserts paths if different: Insert. (line 126)
|
||||
* -update_r inserts paths if different: Insert. (line 115)
|
||||
* -use_readline enables readline for dialog: DialogCtl. (line 28)
|
||||
* -version prints help text: Scripting. (line 23)
|
||||
* -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, line editing, -use_readline: DialogCtl. (line 28)
|
||||
* Dialog, terminal geometry, -page: DialogCtl. (line 19)
|
||||
* Directories, copy, -cp_clone: Insert. (line 192)
|
||||
* Directory, copy, -clone: Insert. (line 180)
|
||||
* Directory, create, -mkdir: Insert. (line 170)
|
||||
* Directories, copy, -cp_clone: Insert. (line 193)
|
||||
* Directory, copy, -clone: Insert. (line 181)
|
||||
* Directory, create, -mkdir: Insert. (line 171)
|
||||
* Directory, delete, -rmdir: Manip. (line 32)
|
||||
* disk_path, _definition: Insert. (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, -not_mgt: SetInsert. (line 23)
|
||||
* Insert, file exclusion, -quoted_not_list: SetInsert. (line 72)
|
||||
* Insert, if different, -update: Insert. (line 103)
|
||||
* Insert, if different, -update_l: Insert. (line 125)
|
||||
* Insert, if different, -update_r: Insert. (line 114)
|
||||
* Insert, if different, -update: Insert. (line 104)
|
||||
* Insert, if different, -update_l: Insert. (line 126)
|
||||
* Insert, if different, -update_r: Insert. (line 115)
|
||||
* Insert, large file splitting, -split_size: SetInsert. (line 140)
|
||||
* Insert, limit data file size, -file_size_limit: SetInsert. (line 7)
|
||||
* Insert, links or mount points, -follow: SetInsert. (line 76)
|
||||
* Insert, meaning of = with -add, -pathspecs: SetInsert. (line 118)
|
||||
* Insert, non-dashed arguments, -add_plainly: Insert. (line 65)
|
||||
* Insert, path, -map: Insert. (line 89)
|
||||
* Insert, path, -map_single: Insert. (line 94)
|
||||
* Insert, paths from disk file, -map_l: Insert. (line 98)
|
||||
* Insert, paths from disk file, -path_list: Insert. (line 79)
|
||||
* Insert, paths from disk file, -quoted_path_list: Insert. (line 84)
|
||||
* Insert, paths, -cpr: Insert. (line 156)
|
||||
* Insert, pathspecs, -add: Insert. (line 46)
|
||||
* Insert, piece of data file, -cut_out: Insert. (line 130)
|
||||
* Insert, non-dashed arguments, -add_plainly: Insert. (line 66)
|
||||
* Insert, path, -map: Insert. (line 90)
|
||||
* Insert, path, -map_single: Insert. (line 95)
|
||||
* Insert, paths from disk file, -map_l: Insert. (line 99)
|
||||
* Insert, paths from disk file, -path_list: Insert. (line 80)
|
||||
* Insert, paths from disk file, -quoted_path_list: Insert. (line 85)
|
||||
* Insert, paths, -cpr: Insert. (line 157)
|
||||
* Insert, pathspecs, -add: Insert. (line 47)
|
||||
* Insert, piece of data file, -cut_out: Insert. (line 131)
|
||||
* ISO 9660, _definition: Model. (line 6)
|
||||
* iso_rr_path, _definition: Insert. (line 7)
|
||||
* 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)
|
||||
* Pathspec, _definition: SetInsert. (line 120)
|
||||
* 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)
|
||||
* Permissions, in ISO image, -chmod: Manip. (line 65)
|
||||
* 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)
|
||||
* SUN Disk Label, production: Bootable. (line 220)
|
||||
* 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)
|
||||
* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 238)
|
||||
* Table-of-content, show, -toc: Inquiry. (line 28)
|
||||
@ -5390,46 +5417,46 @@ Node: ArgSort26499
|
||||
Node: AqDrive27991
|
||||
Node: Loading31036
|
||||
Node: Insert47965
|
||||
Node: SetInsert58164
|
||||
Node: Manip66741
|
||||
Node: CmdFind76521
|
||||
Node: Filter91563
|
||||
Node: Writing96119
|
||||
Node: SetWrite106250
|
||||
Node: Bootable126835
|
||||
Node: Jigdo143225
|
||||
Node: Charset147472
|
||||
Node: Exception150234
|
||||
Node: DialogCtl156354
|
||||
Node: Inquiry158952
|
||||
Node: Navigate165269
|
||||
Node: Verify173567
|
||||
Node: Restore182599
|
||||
Node: Emulation189686
|
||||
Node: Scripting199988
|
||||
Node: Frontend207759
|
||||
Node: Examples217366
|
||||
Node: ExDevices218544
|
||||
Node: ExCreate219203
|
||||
Node: ExDialog220488
|
||||
Node: ExGrowing221753
|
||||
Node: ExModifying222558
|
||||
Node: ExBootable223062
|
||||
Node: ExCharset223614
|
||||
Node: ExPseudo224506
|
||||
Node: ExCdrecord225404
|
||||
Node: ExMkisofs225721
|
||||
Node: ExGrowisofs227061
|
||||
Node: ExException228196
|
||||
Node: ExTime228650
|
||||
Node: ExIncBackup229109
|
||||
Node: ExRestore233089
|
||||
Node: ExRecovery234022
|
||||
Node: Files234592
|
||||
Node: Seealso235891
|
||||
Node: Bugreport236614
|
||||
Node: Legal237195
|
||||
Node: CommandIdx238206
|
||||
Node: ConceptIdx254868
|
||||
Node: SetInsert58179
|
||||
Node: Manip66756
|
||||
Node: CmdFind76536
|
||||
Node: Filter93137
|
||||
Node: Writing97693
|
||||
Node: SetWrite107824
|
||||
Node: Bootable128409
|
||||
Node: Jigdo144799
|
||||
Node: Charset149046
|
||||
Node: Exception151808
|
||||
Node: DialogCtl157928
|
||||
Node: Inquiry160526
|
||||
Node: Navigate166843
|
||||
Node: Verify175141
|
||||
Node: Restore184173
|
||||
Node: Emulation191260
|
||||
Node: Scripting201562
|
||||
Node: Frontend209333
|
||||
Node: Examples218940
|
||||
Node: ExDevices220118
|
||||
Node: ExCreate220777
|
||||
Node: ExDialog222062
|
||||
Node: ExGrowing223327
|
||||
Node: ExModifying224132
|
||||
Node: ExBootable224636
|
||||
Node: ExCharset225188
|
||||
Node: ExPseudo226080
|
||||
Node: ExCdrecord226978
|
||||
Node: ExMkisofs227295
|
||||
Node: ExGrowisofs228635
|
||||
Node: ExException229770
|
||||
Node: ExTime230224
|
||||
Node: ExIncBackup230683
|
||||
Node: ExRestore234663
|
||||
Node: ExRecovery235596
|
||||
Node: Files236166
|
||||
Node: Seealso237465
|
||||
Node: Bugreport238188
|
||||
Node: Legal238769
|
||||
Node: CommandIdx239780
|
||||
Node: ConceptIdx256442
|
||||
|
||||
End Tag Table
|
||||
|
@ -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.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 .\"
|
||||
@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
|
||||
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
|
||||
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
|
||||
@sp 1
|
||||
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".
|
||||
@*
|
||||
@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 :
|
||||
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.
|
||||
@ -2455,6 +2471,20 @@ E.g.:
|
||||
@*
|
||||
-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
|
||||
prints a lower and an upper estimation of the number of blocks which the
|
||||
found files together will occupy in the emerging ISO image.
|
||||
|
@ -1 +1 @@
|
||||
#define Xorriso_timestamP "2013.12.28.194725"
|
||||
#define Xorriso_timestamP "2013.12.29.120027"
|
||||
|
Loading…
Reference in New Issue
Block a user