|
|
|
@ -7212,7 +7212,7 @@ int Xorriso_update_interpreter(struct XorrisO *xorriso, void *boss_iter, |
|
|
|
|
} else if(compare_result&(4|16|32|256|512|1024)) { |
|
|
|
|
/* access permissions, user id, group id, mtime, atime, ctime */ |
|
|
|
|
|
|
|
|
|
/* >>> SPLIT : differing content or size */ |
|
|
|
|
/* >>> SPLIT : differing attributes */ |
|
|
|
|
/* >>> renew attributes of all parts in the directory */ |
|
|
|
|
|
|
|
|
|
ret= Xorriso_copy_properties(xorriso, disk_path, iso_rr_path, 0);
|
|
|
|
@ -10143,7 +10143,7 @@ int Xorriso_option_uid(struct XorrisO *xorriso, char *uid, int flag) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Options -update and -update_r
|
|
|
|
|
@param flag bit0= issue summary message |
|
|
|
|
@param flag bit0= issue start and summary message |
|
|
|
|
bit1= do not reset pacifier, no final pacifier message |
|
|
|
|
bit2= do not issue pacifier messages at all |
|
|
|
|
bit3= recursive: -update_r |
|
|
|
@ -10153,7 +10153,7 @@ int Xorriso_option_update(struct XorrisO *xorriso, char *disk_path, |
|
|
|
|
{ |
|
|
|
|
int ret, mem_pci, zero= 0, result, uret, follow_links; |
|
|
|
|
double mem_lut= 0.0, start_time; |
|
|
|
|
char *ipth, *argv[6]; |
|
|
|
|
char *ipth, *argv[6], sfe[5*SfileadrL]; |
|
|
|
|
struct stat stbuf; |
|
|
|
|
|
|
|
|
|
start_time= Sfile_microtime(0); |
|
|
|
@ -10169,6 +10169,13 @@ int Xorriso_option_update(struct XorrisO *xorriso, char *disk_path, |
|
|
|
|
mem_pci= xorriso->pacifier_interval; |
|
|
|
|
xorriso->pacifier_interval= 5.0; |
|
|
|
|
|
|
|
|
|
if(flag&1) { |
|
|
|
|
sprintf(xorriso->info_text, "Updating %s to", |
|
|
|
|
Text_shellsafe(disk_path, sfe, 0)); |
|
|
|
|
sprintf(xorriso->info_text+strlen(xorriso->info_text), " %s\n", |
|
|
|
|
Text_shellsafe(ipth, sfe, 0)); |
|
|
|
|
Xorriso_info(xorriso,0); |
|
|
|
|
} |
|
|
|
|
if(flag&8) { |
|
|
|
|
xorriso->find_compare_result= 1; |
|
|
|
|
ret= Xorriso_iso_lstat(xorriso, ipth, &stbuf, 0); |
|
|
|
@ -10225,18 +10232,18 @@ int Xorriso_option_update(struct XorrisO *xorriso, char *disk_path, |
|
|
|
|
Xorriso_pacifier_callback(xorriso, "content bytes read", |
|
|
|
|
xorriso->pacifier_count, 0, "", 1); |
|
|
|
|
if(ret>0) { |
|
|
|
|
sprintf(xorriso->result_line, |
|
|
|
|
sprintf(xorriso->info_text, |
|
|
|
|
"No file object needed update."); |
|
|
|
|
} else if(ret==0) { |
|
|
|
|
sprintf(xorriso->result_line, "Differences detected and updated."); |
|
|
|
|
sprintf(xorriso->info_text, "Differences detected and updated."); |
|
|
|
|
} else { |
|
|
|
|
sprintf(xorriso->result_line, |
|
|
|
|
sprintf(xorriso->info_text, |
|
|
|
|
"Not ok. Comparison or update failed due to error."); |
|
|
|
|
} |
|
|
|
|
sprintf(xorriso->result_line+strlen(xorriso->result_line), |
|
|
|
|
sprintf(xorriso->info_text+strlen(xorriso->info_text), |
|
|
|
|
" (runtime %.1f s)\n", Sfile_microtime(0)-start_time); |
|
|
|
|
if(flag&1) |
|
|
|
|
Xorriso_result(xorriso,0); |
|
|
|
|
Xorriso_info(xorriso,0); |
|
|
|
|
if(ret<0) |
|
|
|
|
return(ret); |
|
|
|
|
return(1); |
|
|
|
|