diff --git a/xorriso/xorriso.c b/xorriso/xorriso.c index 573c00c7..fc5d5847 100644 --- a/xorriso/xorriso.c +++ b/xorriso/xorriso.c @@ -4189,6 +4189,7 @@ much_too_long:; /* @param flag bit0= compare atime bit1= compare ctime + bit29= do not issue pacifier messages bit30= omit adr_common_tail in report messages bit31= do not issue result messages @return 1=files match properly , 0=difference detected , -1=error @@ -4207,7 +4208,7 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr, respt= xorriso->result_line; ret= lstat(disk_adr, &s1); if(ret==-1) { - sprintf(respt , "? %s : cannot lstat() : %s", + sprintf(respt , "? %s : cannot lstat() : %s\n", Text_shellsafe(disk_adr, sfe, 0), strerror(errno)); if(!(flag&(1<<31))) Xorriso_result(xorriso,0); @@ -4332,7 +4333,6 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr, /* Content */ done= 0; while(!done) { - /* fd1 is a regular file and should deliver full buffers */ r1= read(fd1, buf1, sizeof(buf1)); @@ -4399,6 +4399,11 @@ int Xorriso_compare_2_files(struct XorrisO *xorriso, char *disk_adr, diffcount++; } } + if(!(flag&(1<<29))) { + xorriso->pacifier_count+= r1; + Xorriso_pacifier_callback(xorriso, "content bytes read", + xorriso->pacifier_count, 0, "", 0); + } } if(diffcount>0 || r1count!=r2count) { if(first_diff<0) @@ -7624,18 +7629,32 @@ int Xorriso_option_commit_eject(struct XorrisO *xorriso, char *which, int flag) /* Option -compare @param flag bit0= issue summary message + bit1= do not reset pacifier, no final pacifier message + bit2= do not issue pacifier messages at all */ int Xorriso_option_compare(struct XorrisO *xorriso, char *disk_path, char *iso_path, int flag) { - int ret; + int ret, mem_pci; + double mem_lut; char *ipth; ipth= iso_path; if(ipth[0]==0) ipth= disk_path; - ret= Xorriso_compare_2_files(xorriso, disk_path, ipth, "", 2|(1<<30)); + if(!(flag&2)) { + Xorriso_pacifier_reset(xorriso, 0); + mem_lut= xorriso->last_update_time; + } + mem_pci= xorriso->pacifier_interval; + xorriso->pacifier_interval= 5.0; + ret= Xorriso_compare_2_files(xorriso, disk_path, ipth, "", + 2| (1<<30) | ((flag&4)<<27)); + xorriso->pacifier_interval= mem_pci; + if(mem_lut!=xorriso->last_update_time && !(flag&2)) + Xorriso_pacifier_callback(xorriso, "content bytes read", + xorriso->pacifier_count, 0, "", 1); if(ret>0) { sprintf(xorriso->result_line, "Ok. Both files match as far as expectable.\n"); diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 684f9ff2..d987fd5b 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2008.02.26.213437" +#define Xorriso_timestamP "2008.02.27.185744"