mirror of
https://code.blicky.net/yorhel/ncdu.git
synced 2026-01-13 01:08:41 -09:00
Added hard link indicator in browser and help window
This commit is contained in:
parent
757bdff7ed
commit
fd984e754c
4 changed files with 10 additions and 6 deletions
|
|
@ -176,6 +176,7 @@ void browse_draw_item(struct dir *n, int row, off_t max, int ispar) {
|
||||||
n->flags & FF_ERR ? '!' :
|
n->flags & FF_ERR ? '!' :
|
||||||
n->flags & FF_SERR ? '.' :
|
n->flags & FF_SERR ? '.' :
|
||||||
n->flags & FF_OTHFS ? '>' :
|
n->flags & FF_OTHFS ? '>' :
|
||||||
|
n->flags & FF_HLNK ? 'H' :
|
||||||
!(n->flags & FF_FILE
|
!(n->flags & FF_FILE
|
||||||
|| n->flags & FF_DIR) ? '@' :
|
|| n->flags & FF_DIR) ? '@' :
|
||||||
n->flags & FF_DIR
|
n->flags & FF_DIR
|
||||||
|
|
|
||||||
|
|
@ -143,9 +143,9 @@ int calc_item(struct dir *par, char *name) {
|
||||||
for(i=0; i<linkst; i++)
|
for(i=0; i<linkst; i++)
|
||||||
if(links[i].dev == fs.st_dev && links[i].ino == fs.st_ino)
|
if(links[i].dev == fs.st_dev && links[i].ino == fs.st_ino)
|
||||||
break;
|
break;
|
||||||
/* found in the list, set size = 0 */
|
/* found in the list, set link flag (so the size won't get counted) */
|
||||||
if(i != linkst)
|
if(i != linkst)
|
||||||
fs.st_blocks = fs.st_size = 0;
|
d->flags |= FF_HLNK;
|
||||||
/* not found, add to the list */
|
/* not found, add to the list */
|
||||||
else {
|
else {
|
||||||
if(++linkst > linksl) {
|
if(++linkst > linksl) {
|
||||||
|
|
@ -162,7 +162,7 @@ int calc_item(struct dir *par, char *name) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* count the size */
|
/* count the size */
|
||||||
if(!(d->flags & FF_EXL || d->flags & FF_OTHFS)) {
|
if(!(d->flags & FF_EXL || d->flags & FF_OTHFS || d->flags & FF_HLNK)) {
|
||||||
d->size = fs.st_blocks * S_BLKSIZE;
|
d->size = fs.st_blocks * S_BLKSIZE;
|
||||||
d->asize = fs.st_size;
|
d->asize = fs.st_size;
|
||||||
for(t=d->parent; t!=NULL; t=t->parent) {
|
for(t=d->parent; t!=NULL; t=t->parent) {
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,8 @@
|
||||||
#define FF_OTHFS 0x08 /* excluded because it was an other filesystem */
|
#define FF_OTHFS 0x08 /* excluded because it was an other filesystem */
|
||||||
#define FF_EXL 0x10 /* excluded using exlude patterns */
|
#define FF_EXL 0x10 /* excluded using exlude patterns */
|
||||||
#define FF_SERR 0x20 /* error in subdirectory */
|
#define FF_SERR 0x20 /* error in subdirectory */
|
||||||
#define FF_BSEL 0x40 /* selected */
|
#define FF_HLNK 0x40 /* hard link (same file already encountered before) */
|
||||||
|
#define FF_BSEL 0x80 /* selected */
|
||||||
|
|
||||||
/* Program states */
|
/* Program states */
|
||||||
#define ST_CALC 0
|
#define ST_CALC 0
|
||||||
|
|
|
||||||
|
|
@ -95,14 +95,16 @@ void help_draw() {
|
||||||
ncaddch( 7, 4, '<');
|
ncaddch( 7, 4, '<');
|
||||||
ncaddch( 8, 4, '>');
|
ncaddch( 8, 4, '>');
|
||||||
ncaddch( 9, 4, '@');
|
ncaddch( 9, 4, '@');
|
||||||
ncaddch(10, 4, 'e');
|
ncaddch(10, 4, 'H');
|
||||||
|
ncaddch(11, 4, 'e');
|
||||||
attroff(A_BOLD);
|
attroff(A_BOLD);
|
||||||
ncaddstr( 5, 7, "An error occured while reading this directory");
|
ncaddstr( 5, 7, "An error occured while reading this directory");
|
||||||
ncaddstr( 6, 7, "An error occured while reading a subdirectory");
|
ncaddstr( 6, 7, "An error occured while reading a subdirectory");
|
||||||
ncaddstr( 7, 7, "File or directory is excluded from the statistics");
|
ncaddstr( 7, 7, "File or directory is excluded from the statistics");
|
||||||
ncaddstr( 8, 7, "Directory was on an other filesystem");
|
ncaddstr( 8, 7, "Directory was on an other filesystem");
|
||||||
ncaddstr( 9, 7, "This is not a file nor a dir (symlink, socket, ...)");
|
ncaddstr( 9, 7, "This is not a file nor a dir (symlink, socket, ...)");
|
||||||
ncaddstr(10, 7, "Empty directory");
|
ncaddstr(10, 7, "Same file was already counted (hard link)");
|
||||||
|
ncaddstr(11, 7, "Empty directory");
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
/* Indeed, too much spare time */
|
/* Indeed, too much spare time */
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue