Displaying directory tree sizes with -update and -update_r

This commit is contained in:
2019-04-08 13:55:58 +02:00
parent 1ff09139d4
commit e9a424add1
6 changed files with 89 additions and 21 deletions

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2016 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2019 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -343,6 +343,7 @@ int Xorriso_hop_link(struct XorrisO *xorriso, char *link_path,
/* @param flag bit0= do not only sum up sizes but also print subdirs
bit1= this is a recursion
bit2= do not report result by Xorriso_result()
@return <=0 error , 1 ok , 2 could not open directory
*/
int Xorriso_show_dux_subs(struct XorrisO *xorriso,
@ -563,13 +564,15 @@ revoke_sorting:;
report_size= sub_size/1024;
if(report_size*1024<sub_size)
report_size++;
if(xorriso->sh_style_result)
sprintf(xorriso->result_line, "%-7.f ",(double) (report_size));
else
sprintf(xorriso->result_line, "%7.f ",(double) (report_size));
sprintf(xorriso->result_line+strlen(xorriso->result_line), "%s\n",
Xorriso_esc_filepath(xorriso,show_path, sfe, 0));
Xorriso_result(xorriso, 0);
if(!(flag & 4)) {
if(xorriso->sh_style_result)
sprintf(xorriso->result_line, "%-7.f ",(double) (report_size));
else
sprintf(xorriso->result_line, "%7.f ",(double) (report_size));
sprintf(xorriso->result_line+strlen(xorriso->result_line), "%s\n",
Xorriso_esc_filepath(xorriso,show_path, sfe, 0));
Xorriso_result(xorriso, 0);
}
}
ret= 1;
@ -902,7 +905,7 @@ int Xorriso_lsx_filev(struct XorrisO *xorriso, char *wd,
if(ret<=0)
link_target[0]= 0;
}
} else if(flag&4) { /* -du or -dus */
} else if(flag&4) { /* -dux or -dusx */
size= stbuf.st_size;
if(S_ISDIR(stbuf.st_mode)) {
ret= Xorriso_show_dux_subs(xorriso, path, filev[i], &size, boss_mem,