New -as mkisofs option --set_all_file_dates
This commit is contained in:
@ -664,7 +664,7 @@ int Xorriso_genisofs_count_args(struct XorrisO *xorriso, int argc, char **argv,
|
||||
"-rr_reloc_dir", "-hfsplus-serial-no", "-prep-boot-part", "-efi-boot-part",
|
||||
"-hfsplus-block-size", "-apm-block-size", "--grub2-mbr",
|
||||
"--grub2-sparc-core", "--sort-weight-list", "--sort-weight-patterns",
|
||||
"-hppa-hdrversion","-file_name_limit",
|
||||
"-hppa-hdrversion", "-file_name_limit", "--set_all_file_dates",
|
||||
""
|
||||
};
|
||||
static char arg2_options[][41]= {
|
||||
@ -905,6 +905,7 @@ int Xorriso_genisofs_help(struct XorrisO *xorriso, int flag)
|
||||
" -appended_part_as_apm mark appended partitions in APM.",
|
||||
" --modification-date=YYYYMMDDhhmmsscc",
|
||||
" Override date of creation and modification",
|
||||
" --set_all_file_dates TIME Override mtime, atime, ctime in all files",
|
||||
" -isohybrid-mbr FILE Set SYSLINUX mbr/isohdp[fp]x*.bin for isohybrid",
|
||||
" --grub2-mbr FILE Set GRUB2 MBR for boot image address patching",
|
||||
#ifdef Xorriso_with_isohybriD
|
||||
@ -1281,6 +1282,7 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
|
||||
int *delay_opt_list= NULL, delay_opt_count= 0;
|
||||
char *sfe= NULL, *adr= NULL, ra_text[80], *pathspec= NULL, *sort_file= NULL;
|
||||
char *ept, *add_pt, *eff_path= NULL, *indev= NULL, msc[80], *cpt;
|
||||
char *all_file_dates= NULL;
|
||||
char *old_root= NULL, *argpt, *hargv[1];
|
||||
char *boot_path, partno_text[8], *iso_rr_pt, *disk_pt, *rpt, *wpt;
|
||||
char *rm_merge_args[3], *rr_reloc_dir_pt= NULL;
|
||||
@ -1918,6 +1920,16 @@ not_enough_args:;
|
||||
if(ret <= 0)
|
||||
goto problem_handler_2;
|
||||
|
||||
} else if(strcmp(argpt, "--set_all_file_dates") == 0) {
|
||||
if(i+1>=argc)
|
||||
goto not_enough_args;
|
||||
i++;
|
||||
if(all_file_dates != NULL)
|
||||
Xorriso_free_meM(all_file_dates);
|
||||
all_file_dates= NULL;
|
||||
Xorriso_alloc_meM(all_file_dates, char, strlen(argv[i]) + 1);
|
||||
strcpy(all_file_dates, argv[i]);
|
||||
|
||||
} else if(strcmp(argpt, "-input-charset")==0) {
|
||||
i++;
|
||||
/* was already handled in first argument scan */;
|
||||
@ -2610,6 +2622,21 @@ problem_handler_boot:;
|
||||
if(xorriso->no_emul_toc & 1)
|
||||
xorriso->do_padding_by_libisofs= 1;
|
||||
|
||||
if(all_file_dates != NULL) if(all_file_dates[0] != 0) {
|
||||
hargv[0]= "/";
|
||||
idx= 0;
|
||||
ret= Xorriso_option_alter_date(xorriso, "b", all_file_dates, 1, hargv,
|
||||
&idx, 1);
|
||||
if(ret <= 0)
|
||||
was_failure= 1;
|
||||
idx= 0;
|
||||
ret= Xorriso_option_alter_date(xorriso, "c", all_file_dates, 1, hargv,
|
||||
&idx, 1);
|
||||
if(ret <= 0)
|
||||
was_failure= 1;
|
||||
Xorriso_relax_compliance(xorriso, "always_gmt", 0);
|
||||
}
|
||||
|
||||
if(do_print_size) {
|
||||
ret= Xorriso_option_print_size(xorriso, 1);
|
||||
goto ex;
|
||||
@ -2626,6 +2653,7 @@ ex:;
|
||||
free(weight_list);
|
||||
if(delay_opt_list != NULL)
|
||||
free(delay_opt_list);
|
||||
Xorriso_free_meM(all_file_dates);
|
||||
Xorriso_free_meM(sort_file);
|
||||
Xorriso_free_meM(sfe);
|
||||
Xorriso_free_meM(adr);
|
||||
|
Reference in New Issue
Block a user