Browse Source

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

master
Thomas Schmitt 9 years ago
parent
commit
784f8f7689
  1. 25
      xorriso/findjob.c
  2. 5
      xorriso/findjob.h
  3. 99
      xorriso/iso_manip.c
  4. 47
      xorriso/opts_d_h.c
  5. 324
      xorriso/write_run.c
  6. 3
      xorriso/write_run.h
  7. 34
      xorriso/xorriso.1
  8. 179
      xorriso/xorriso.info
  9. 34
      xorriso/xorriso.texi
  10. 2
      xorriso/xorriso_timestamp.h

25
xorriso/findjob.c

@ -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,17 +875,28 @@ 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;
*((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)
*((int *) t->arg2)= start_lba + count - 1;
end_lba= start_lba + count - 1;
else
*((int *) t->arg2)= start_lba - count + 1;
return(1);
end_lba= start_lba - count + 1;
ret= Findjob_set_num_filter(o, 4, start_lba, end_lba, 0);
return(ret);
}

5
xorriso/findjob.h

@ -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);

99
xorriso/iso_manip.c

@ -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 */;

47
xorriso/opts_d_h.c

@ -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.",

324
xorriso/write_run.c

@ -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);
if(ret <= 0)
{ret= 0; goto ex;}
ret= isoburn_igopt_set_untranslated_name_len(sopts,
xorriso->untranslated_name_len);
ret= Xorriso_make_iso_write_opts(xorriso, image, sopts, 0);
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) {

3
xorriso/write_run.h

@ -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 */

34
xorriso/xorriso.1

@ -9,7 +9,7 @@
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH XORRISO 1 "Version 1.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.

179
xorriso/xorriso.info

@ -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

34
xorriso/xorriso.texi

@ -50,7 +50,7 @@
@c man .\" First parameter, NAME, should be all caps
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
@c man .\" other parameters are allowed: see man(7), man(1)
@c man .TH XORRISO 1 "Version 1.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.

2
xorriso/xorriso_timestamp.h

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

Loading…
Cancel
Save